и не будет беспокоить вас от неиспользованного импорта. Это то, что заставляет меня думать, что это правильный подход.

оложим, у меня есть проект с такой структурой папок.

/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?

Ответы на вопрос(1)

Ваш ответ на вопрос