Я использую этот декоратор для управления __all__
в СУХОЙ манере:
def export(obj):
mod = sys.modules[obj.__module__]
if hasattr(mod, '__all__'):
mod.__all__.append(obj.__name__)
else:
mod.__all__ = [obj.__name__]
return obj
Для имен, импортированных с import *
PyCharm выдает ошибку unresolved reference
, что понятно, так какне запускайте код перед анализом.Но это очевидное неудобство.
Как бы вы решили (или, возможно, уже решили)?
Мои предположения :
- Добавлениенекоторый автоматический плагин для линтера или изменение существующего кода проверки PyCharm было бы хорошо.
- То, что фактически редактирует
.py
источник, жизнеспособно, но не хорошо. - Этот метод, вероятно, не самый лучшийпоэтому предложить другой удобный способ работы с экспортом тоже хорошо.