Mypy не обнаруживает ошибок при неправильном использовании функции, импортированной из внешнего пакета.Python

Программы на Python
Anonymous
Mypy не обнаруживает ошибок при неправильном использовании функции, импортированной из внешнего пакета.

Сообщение Anonymous »

Я провел простой эксперимент, создав очень простой пакет Python, содержащий следующие файлы:

В папке my_package:

Код: Выделить всё

# example.py
def foo(number: int, text: str) -> None:
print(number)
print(text)
Пустой __init__.py
В корневой папке файл setup.py:

Код: Выделить всё

from setuptools import setup

setup(
name='ExamplePackage',
version='0.1.0',
author='An Awesome Coder',
author_email='aac@example.com',
packages=['my_package'],
description='An awesome package that does something',
)
После сборки пакета с использованием Python ./setup.py bdist_wheel я скопировал файл .whl в другой проект Python и запустил pip install examplePackage-0.1 .0-py3-none-any.whl и создал следующий файл main.py:

Код: Выделить всё

from my_package.example import foo

# No mypy errors at all!
x = foo()

def internal_foo(number: int, text: str) -> None:
print(number)
print(text)

# Missing positional arguments "number", "text" in call to "internal_foo"  [call-arg]
# "internal_foo" does not return a value  [func-returns-value]
y = internal_foo()
Мой файл mypy.ini выглядит следующим образом:

Код: Выделить всё

[mypy]
ignore_missing_imports = True
show_error_codes = True
strict = True
check_untyped_defs = True
raise_exceptions = True
Я изо всех сил пытаюсь понять, почему mypy, который может легко определить подпись импортированной функции foo, не показывает никаких ошибок, связанных с неправильным использованием
Любая помощь будет очень признательна

Подробнее здесь: https://stackoverflow.com/questions/741 ... m-an-exter

Вернуться в «Python»