Можно ли загружать определения таблиц SqlAlchemy из отдельных модулей, не вызывая неиспользуемого оператора импорта?

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


person SortingHat    schedule 12.04.2019    source источник
comment
Вам просто нужно сказать линтеру, что то, что он считает проблемой, не является проблемой. stackoverflow.com/a/45346791/6560549   -  person SuperShoot    schedule 13.04.2019
comment
Мне кажется неинтуитивным иметь эти импорты, на которые напрямую не ссылаются в файле. Так что это часть того, что я спрашиваю: есть ли лучший способ сделать это? Более питонический способ?   -  person SortingHat    schedule 15.04.2019