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) <noreply@anthropic.com>
This commit is contained in:
Michael Stangl
2026-07-27 10:11:25 +02:00
parent c6e0b95d81
commit cded317a40
+15 -2
View File
@@ -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 <name>` switch (default `Adaptiv`), and the penalty
profile by the `--strafen <name>` switch (default `default`).
GA profile is chosen by the `--zyklus-art <name>` switch (default `Adaptiv`), the penalty
profile by the `--strafen <name>` switch (default `default`), and the SVG colour profile by
the `--farben <name>` 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 <name>` 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 <section>` (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`.