PyCharm процедурная __all__ генерация и подсветка синтаксиса - PullRequest
0 голосов
/ 30 января 2019

Я использую этот декоратор для управления __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 источник, жизнеспособно, но не хорошо.
  • Этот метод, вероятно, не самый лучшийпоэтому предложить другой удобный способ работы с экспортом тоже хорошо.
...