и не будет беспокоить вас от неиспользованного импорта. Это то, что заставляет меня думать, что это правильный подход.
оложим, у меня есть проект с такой структурой папок.
/project
__init__.py
main.py
/__helpers
__init__.py
helpers.py
...
Модульhelpers.py
определяет некоторое исключение и содержит некоторый метод, который вызывает это исключение.
# /project/__helpers/helpers.py
class HelperException(Exception):
pass
def some_function_that_raises():
raise HelperException
С другой стороны, мойmain.py
Модуль определяет свои собственные исключения и импортирует методы, которые могут вызвать исключение изhelpers.py
.
# /projects/main.py
from project.__helpers.helpers import some_function_that_raises
class MainException(Exception):
pass
Теперь я не хочу, чтобы пользователи должны были сделатьfrom project.__helpers.helpers import HelperException
если они хотят поймать это исключение. Было бы более целесообразно импортировать исключение из открытого модуля, который его вызывает.
Но я не могу просто двигатьсяHelperException
вmain.py
, что создаст круговой импорт.
Как лучше всего разрешить пользователям импортировать все исключения изmain.py
в то время как те, кто воспитывается в/__helpers
?