Не разобрался, каким образом в PyCharm (python2) сделать тайп хинтинг для функции, которая принимает в качестве аргумента класс, или подклассы этого класса. Экземпляры классов хинтятся замечательно, но как хинтить сами классы?
Пробовал делать вот так:
class Base(object):
field = 0
class Sub1(Base):
field1 = 1
class Sub2(Base):
field2 = 2
class NotSubclass(object):
field3 = 3
def some_func(SomeClass):
# type: (T <= Base) -> None
print SomeClass # если тут сделать "SomeClass." (поставить точку),
# то выпадающее меню после точки не предлагает список атрибутов нужных классов
Кроме того, если вызвать функцию, и передать туда явно не класс, а например число, то pycharm не подсвечивает ошибку. Хотя при хинтинге всего остального, подсвечивает.
Либо я не так понял документацию и плохо гуглил, либо PyCharm пока не умеет хинтить классы.