Я настроил свои определения таблицы sqlalchemy в разных модулях в папке с именем schemas
. Например:
ls -1 schemas/*.py $
schemas/__init__.py
schemas/base.py
schemas/reference.py
schemas/warehouse.py
Однако, чтобы теперь использовать эти определения в рефлексивной манере, глядя на base._decl_class_registry
или base.metadata
, мне нужно импортировать модули схемы:
from schemas import base, reference, warehouse, reference
Затем это вызывает предупреждение unused import
, потому что я не ссылаюсь напрямую на определения таблиц в этих модулях, а вместо этого извлекаю информацию из базы.
Кажется, проблема заключается в том, что sqlalchemy регистрирует эти таблицы, просто выполняя импорт.
Я просмотрел документацию по sqlalchemy и не могу понять, можно ли выполнить эту регистрацию каким-то более питоническим способом.
Вот пример того, что я эффективно делаю.
# removing this means reference is no longer registered to the metadata
from schemas import base, reference
class SomeOtherClass:
def printMetadata():
print(base.Base.metadata)
Есть ли лучший способ импортировать эти модули и таблицы?
Я надеюсь, что смогу сделать это без предупреждения flake8, чтобы соответствовать стилю моего кода.