From cded317a4042550b41ebb87d0024fa927d09141c Mon Sep 17 00:00:00 2001 From: Michael Stangl Date: Mon, 27 Jul 2026 10:11:25 +0200 Subject: [PATCH] Doku: Farbprofile (--farben, cfg/farben.cfg, libs/Farben.py) CLAUDE.md dokumentiert das neue SVG-Farbprofil-Feature: den Schalter --farben, die Profile in cfg/farben.cfg (palette / kategorien) und das Modul libs/Farben.py. Co-Authored-By: Claude Opus 4.8 (1M context) --- CLAUDE.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index bbbbfbc..54574b8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -73,8 +73,9 @@ the same layout: The GA cycle and penalty scheme are read directly from `$PLATZ_CFG/zyklus.cfg` and `$PLATZ_CFG/strafen.cfg` (independent of `--indir`). There is no `platz.cfg` indirection any more — it was removed; `zyklus.cfg`/`strafen.cfg` are loaded straight from `$PLATZ_CFG`, the -GA profile is chosen by the `--zyklus-art ` switch (default `Adaptiv`), and the penalty -profile by the `--strafen ` switch (default `default`). +GA profile is chosen by the `--zyklus-art ` switch (default `Adaptiv`), the penalty +profile by the `--strafen ` switch (default `default`), and the SVG colour profile by +the `--farben ` switch (default `grosse_gruppen`). - `cfg/zyklus.cfg` — defines the GA profiles. Two flavours: **static** profiles (`Easy`, `Simple`) give an explicit sequence of actions (`e`=erzeugen/create, `s`=selektieren/ @@ -97,6 +98,18 @@ profile by the `--strafen ` switch (default `default`). between split-off parts; absent = distance not penalised). `Strafliste.laden(FileName, Sektion='default')` parses one section; the old `[Trennung]`/`[Globals]`/`[Abstand]` three-section layout is gone. +- `cfg/farben.cfg` — SVG colour profiles, chosen by `--farben
` (default + `grosse_gruppen`) / env `PLATZ_FARBENART`, parsed by `Farben.Farbschema.laden()` (in + `libs/Farben.py`) and passed into `Sitzplatzverteilung.alsSVG(..., Farbschema=...)`. Two + modes: `Modus = palette` (a `Palette` colour list cycled per group by sorted group id — the + `grosse_gruppen` profile) and `Modus = kategorien` (the `hochzeit` profile — splits groups + into **Familie** = members mostly share a surname, coloured along `FamilienVerlaeufe` + gradients blue→green / yellow→orange, one gradient bucket per surname; **Verein** = any + other named group, along `VereinVerlauf` violet→grey; **VIP** = fixed-table people with no + GA group, the start of `VIPVerlauf`, red). Gradient syntax `"start -> end"`. Anonymous bulk + bookings (all members identical, e.g. an `anzahl`-expanded "Gast Musikverein") are *not* + treated as a family. Absent/invalid config falls back to the built-in palette + (`Farbschema=None`), so the SVG always renders. `tische.ini`/`bestellung.json`/`TischePersonen.txt`/`PersonenTische.csv` are fixed filenames resolved as `os.path.join(indir, ...)` in `platz.py`.