Может ли mypy проверить строки документов?
У меня есть строки документов в стиле numpydoc:
def foobar(filename, copy, dtype, iterable, shape, files):
"""
foobar is 42.
Parameters
----------
filename : str
copy : bool
dtype : data-type
iterable : iterable object
shape : int or tuple of int
files : list of str
Returns
-------
foobarfoo : int
"""
pass
Можно ли проверить, могут ли типы документов быть правильными?
(дополнительный вопрос: может ли numpy возвращать / печатать сигнатуры функций, которые он обнаружил?)
Например, я ожидаю, что следующее не получится:
Типы возврата
def foobar():
"""
Returns
-------
blub : int
"""
return "foo"
или же
def foobar(a, b):
"""
Parameters
----------
a : number
b : number
Returns
-------
blub : int
"""
if a > b:
return "foo"
return 42
Типы параметров
def foobar(a, b):
"""
Parameters
----------
a : str
b : int
Returns
-------
blub : int
"""
return a * b
1 ответ
Нет, mypy понимает только официальную нотацию Python. Смотрите документы Mypy. И это хорошо, нам не нужно много альтернативных способов ввода аннотации, так как
Должен быть один - и желательно только один - очевидный способ сделать это.