Files
bin/finance/app/reserved.py
T

25 lines
965 B
Python

"""Reservierte Namen (Ausbaustufe 12).
Alles, was mit SYSTEM_PREFIX beginnt, gehört dem Tool: synthetische Serien
wie „System-Ist" (v_projection) oder „System-Kreditraten" (Planungs-Panel).
Kategorien und Szenarien dürfen solche Namen nicht tragen, sonst verschmelzen
sie in Grafana mit den Tool-Serien.
"""
from fastapi import HTTPException
SYSTEM_PREFIX = "System-"
RESERVED_MESSAGE = (f"Namen, die mit »{SYSTEM_PREFIX}« beginnen, sind für "
"vom Tool erzeugte Einträge reserviert")
def is_reserved_name(name: str) -> bool:
"""True, wenn name (ohne Randleerzeichen, Groß/klein egal) mit dem
System-Präfix beginnt."""
return name.strip().casefold().startswith(SYSTEM_PREFIX.casefold())
def check_reserved_name(name: str | None) -> None:
"""None (Feld nicht gesetzt) -> keine Prüfung; reserviert -> 422."""
if name is not None and is_reserved_name(name):
raise HTTPException(422, RESERVED_MESSAGE)