This commit is contained in:
team3
2026-07-29 15:19:41 +02:00
parent 2e86d682eb
commit 5d42b4cfc5
155 changed files with 14482 additions and 1736 deletions

View File

@@ -4,6 +4,10 @@ import shutil
import config
# Die Arbeitskopie einer laufenden Planung. Liegt im Projektordner und beginnt mit
# einem Punkt — damit taucht sie im Listing nicht als eigenes Projekt auf.
PLANUNG = ".planung"
def _pruefe_name(name: str):
if not name or not name.strip():
@@ -51,9 +55,24 @@ def loeschen(name: str):
shutil.rmtree(ordner)
def wurzel(name: str):
"""Projektordner für Feature-Zugriffe; FileNotFoundError bei unbekanntem Projekt."""
def stand(name: str):
"""Der Projektordner selbst — was das Projekt heute kann.
Nur wer den umgesetzten Stand meint, ruft das. Alles andere nimmt `wurzel()`.
"""
ordner = _ordner(name)
if not ordner.is_dir():
raise FileNotFoundError(f"Projekt „{name}“ nicht gefunden")
return ordner
def wurzel(name: str):
"""Der Ordner, in dem gerade gearbeitet wird.
Ohne offene Planung ist das der Projektordner. Läuft eine Planung, ist es ihre
Arbeitskopie — und zwar für alles: Karten, Gespräch, Gedächtnis. Ein
Schalter statt einer Fallunterscheidung in jeder Schreibfunktion.
"""
ordner = stand(name)
kopie = ordner / PLANUNG
return kopie if kopie.is_dir() else ordner