Я подошел к этому, чтобы каждый файл schema.py определил функцию, которая принимает базовую , а затем использует это в качестве родителя для наследства класса:
Код: Выделить всё
# path/to/my/module/schema.py
def schema(Base):
class File(Base):
__tablename__ = "files"
id: Mapped[str] = mapped_column(String(36))
return (File,)
< /code>
Затем, в моем приложении с более высоким уровнем, я могу динамически загрузить его в: < /p>
# main.py
Base = declarative_base()
for schema in schemas:
schema(Base)
< /code>
Это работает нормально. Проблема в том, что потому, что я возвращаю класс из функции, он больше не отображается для проверки статического типа Pylance. < /P>
Например: < /p>
# path/to/my/module/Files.py
from .schema import schema
class Files():
files: List[File] = [] #
Подробнее здесь: [url]https://stackoverflow.com/questions/79400538/import-module-that-defines-sqlalchemy-orm-models-dynamically-injecting-a-base-c[/url]