Code: Select all
app/
├── backend/
│ └── main.py
├── models/
│ └── my_model.py
└── utils/
└── enums.py
Code: Select all
main.py
utils/enums.py:
Code: Select all
def create_schema_names(prefix: str) -> Type[Enum]:
class SchemaNames(str, Enum):
RAW = prefix + "_RAW"
STAGING = prefix + "_STAGING"
TRANSFORMED = prefix + "_TRANSFORMED"
return SchemaNames
Problem:
Importieren von SchemaNames in my_model.py< /code> führt zu einem Rundschreiben Abhängigkeiten, da die Konfiguration in main.py definiert ist.
Ich möchte die Verwendung globaler Variablen vermeiden, indem ich SchemaNames global exportiere.
Wie kann ich dynamisch die SchemaNames-Enumeration basierend auf der Laufzeitkonfiguration erstellen und in SQLAlchemy-Modellen verwenden, ohne zirkuläre Abhängigkeiten zu verursachen oder sich auf globale Exporte zu verlassen? Welchen Best-Practice-Ansatz gibt es dafür?