Предположим, что следующий модуль и файл сценария:
mymodule.py
# Module to be annotated by MonkeyType
def add(a, b):
return a + b
myscript.py
from mymodule import add
add(2, 3)
add('x', 'y')
Автоматически комментируйте модуль с помощью Модуль MonkeyType , использующий терминал Ubuntu.
$ monkeytype run myscript.py
$ monkeytype apply mymodule
mymodule.py
теперь изменяется с добавленными аннотациями.
# Module annotated by monkeytype
from typing import Union
def add(a: Union[int, str], b: Union[int, str]) -> Union[int, str]:
return a + b
Но если я запускаю mypy, проверка типа stati c, выполнение завершается с 2 ошибками. Почему это происходит?
$ mypy mymodule.py
mymodule.py:4: error: Unsupported operand types for + ("int" and "str")
mymodule.py:4: error: Unsupported operand types for + ("str" and "int")
mymodule.py:4: note: Both left and right operands are unions
Found 2 errors in 1 file (checked 1 source file)
Кстати, я использую arch Python 3.8.