Skip to content

Latest commit

 

History

History
64 lines (47 loc) · 5.34 KB

Интеграция_mypy.md

File metadata and controls

64 lines (47 loc) · 5.34 KB

3.1 Интеграция mypy

Многие разработчики Python сталкиваются с необходимостью улучшения качества кода и повышения его устойчивости к ошибкам. Одним из эффективных способов достижения этих целей является статическая типизация. В данном контексте инструмент mypy становится незаменимым помощником. В этом разделе мы рассмотрим, как интегрировать mypy в ваш рабочий процесс, чтобы обеспечить надежность и понятность вашего кода.

Настройка mypy для проверки типов в проекте

Чтобы начать работу с mypy, первое, что нужно сделать, - это добавить его в ваш проект. Вы можете установить mypy с помощью пакетного менеджера pip:

pip install mypy

После установки рекомендуется создать файл конфигурации mypy. Хорошей практикой является создание файла под следующими названиями:

  • mypy.ini
  • .mypy.ini
  • pyproject.toml
  • setup.cfg

Вот пример файла конфигурации:

[mypy]
files = src/**/*.py # Путь к исходным файлам, которые будут проверяться mypy
ignore_missing_imports = True # Игнорировать ошибки отсутствия импортов
strict = True # Включить строгий режим проверки

disallow_untyped_defs=True # запрещает объявлять функции без аннотации типов
no_implicit_optional=True # без этой опции аргументы функции могут иметь тип None в качестве параметра по-умолчанию. С этой опцией такое неявное поведение запрещено, а гарантии типов сохранены
warn_return_any=True # С этой опцией mypy предупреждает, если в качестве возвращаемого типа было указано Any

check_untyped_defs=True # проверяет корректность типизации в функции без аннотаций. По-умолчанию mypy закрывает глаза на все, что происходит внутри таких функций. С этой опцией он проверяет корректность типизации всех операций и вызовов внутри;
warn_unreachable=True # сообщает, если какой-то кусок кода никогда не выполнается. Если так случилось, вероятно была допущена ошибка в проверке условий.

Интерпретация ошибок mypy и их исправление

После настройки mypy вы можете запускать его через командную строку, просто введя команду:

mypy .

Эта команда начнет проверку типов во всех ваших файлах Python и выведет результаты на экран. Если mypy обнаружит несоответствия, он предоставит полезную информацию о том, где именно в коде произошла ошибка. Вы увидите сообщение об ошибке, а также строку и номер файла, где эта ошибка возникла.

Ошибки могут быть очень разнообразными: от несоответствия ожидаемого и фактического типов до отсутствия аннотаций для функций и классов. Разработчики должны внимательно рассмотреть каждую ошибку и внести соответствующие изменения в код. Например, как только вы добавите аннотации типов в свои функции, mypy начнет распознавать, что ожидалось, и указывать на те случаи, когда фактический тип не совпадает.

Пример некорректной аннотации типов

def add_numbers(a: int, b: str) -> int:
    return a + b  # Ошибка: попытка сложить int и str

Запустив mypy, вы получите указание на ошибку, что позволит вам быстро посмотреть на функцию и внести необходимые изменения, чтобы гарантировать корректность работы.