update
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user