PyCharm / Python docstring возвращает тип подсказки для локально импортированного класса - PullRequest
0 голосов
/ 26 сентября 2018

Я хочу определить rtype в строке документации, используя класс, который не импортируется глобально в модуль (потому что я не могу этого сделать из-за циклического импорта).

Т.е. так:

def get_engine():
   """
   :rtype: sisyphus.localengine.LocalEngine
   """
   from sisyphus.localengine import LocalEngine
   return LocalEngine()

sisyphus - это пакет, а sisyphus.localengine - модуль в этом пакете.Я зарегистрировал родительский каталог sisyphus в качестве исходного корневого каталога в PyCharm.

Это не похоже на работу.По крайней мере, PyCharm (2018.2.4) показывает подсказку типа () -> Any для этой функции.

Если я удаляю подсказку rtype, она показывает правильную подсказку () -> LocalEngine, поэтому обнаружение звука работает (если я не хочу явно указывать его).

Как правильно указать подсказку rtype, чтобы это работало?

1 Ответ

0 голосов
/ 27 сентября 2018

Предполагая, что вы находитесь на python> = 3.5, вы можете использовать прямые ссылки в подсказках типа.
См. Также этот jetbrains сообщение в блоге .

def foo() -> 'sisyphus.localengine.LocalEngine':
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...