Приложение FastAPI: динамически создавать Enum и использовать его в моделях SQLAlchemy без циклических зависимостей?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Приложение FastAPI: динамически создавать Enum и использовать его в моделях SQLAlchemy без циклических зависимостей?

Сообщение Anonymous »

Мое приложение структурировано, как показано ниже.

Код: Выделить всё

app/
├── backend/
│   └── main.py
├── models/
│   └── my_model.py
└── utils/
└── enums.py
создает экземпляр конфигурации, содержащий префикс ключа, из файла yaml, который необходим в enums.py для генерации имен схем во время выполнения.
utils/enums.py:

Код: Выделить всё

def create_schema_names(prefix: str) -> Type[Enum]:

class SchemaNames(str, Enum):
RAW = prefix + "_RAW"
STAGING = prefix + "_STAGING"
TRANSFORMED = prefix + "_TRANSFORMED"

return SchemaNames
Я хочу использовать SchemaNames в своих моделях SQLAlchemy в my_model.py, чтобы указать схему для каждой модели: __table_args__ = {"schema": SchemaNames.RAW .value.
Проблема:
Импорт имен схем в my_model.py< /код> приводит к циклическим зависимостям, поскольку конфигурация определена в main.py.
Я хочу избежать использования глобальных переменных путем глобального экспорта имен схем.
Как Могу ли я динамически создавать перечисление SchemaNames на основе конфигурации среды выполнения и использовать его в моделях SQLAlchemy, не вызывая циклических зависимостей и не полагаясь на глобальный экспорт? Какой передовой подход существует для этого?

Подробнее здесь: https://stackoverflow.com/questions/793 ... ls-without
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»