Я получаю это странное предупреждение "End of statement expected" внутри комментария, который функционирует как подсказка типа Python 2/3:
Любые идеи, что не так с этими типами подсказок и почему я получаю это предупреждение?
Я использую PyCharm Professional 2018.2.3 с Python 3.6 (Anaconda).
Вы можете использовать прямые ссылки в своих типах с помощью python> = 3.5.
def resolve_notehead_wrt_staffline(notehead: 'CropObject', staffline_or_ledger_line: 'CropObject') -> int:
"""blahh blah"""
from muscima.cropobject import CropObject
...
Но даже это не исправит typehint в вашем случае. Здесь я предлагаю не делать импорт из функции.
Редактирование: я немного тушил это и понял, что просто сказать "не делай этого", но не зная, почему это не очень полезно.
PEP8 говорит, что вы не должны импортировать нигде, кроме верхней части файла, но время от времени у нас есть "очень хорошая причина" для этого в другом месте.
В вашем случае функция ожидает, что модуль уже был импортирован, иначе объекты аргументов не будут существовать. В этом случае вы могли бы также поместить импорт где-то вне сферы действия этой функции.
compute_connected_components
неверны - вы, вероятно, хотели сделать# type: (blah) -> Tuple[a, b, c]
вместо# type: (blah) -> (a, b, c)
,