Можно ли загрузить определения таблиц SqlAlchemy из отдельных модулей, не вызывая «Неиспользуемый оператор импорта»? - PullRequest
0 голосов
/ 12 апреля 2019

Я установил определения таблиц 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, чтобы соответствовать моему стилю кода.

...