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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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