Microsoft опубликовал Pyright, систему проверки типов для языка Python

24 марта 2019 года

Компания Microsoft открыла исходные тексты проекта Pyright, в рамках которого развивается система для применения статической типизации в приложениях на языке Python. Для разработчиков предлагается утилита командной строки для проверки типов и плагин для интегрированных сред разработки, поддерживающих протокол LSP (Language Server Protocol), таких как Visual Studio Code, Nuclide и Atom. Код написан на языке Typescript (диалект JavaScript со статической типизацией), использует Node.js и открыт под лицензией MIT.

Информация о типах может определяться в коде через добавление дополнительных аннотаций к переменным ( PEP 526, например "# type: List[int]"), TypeVar-подсказок в стиле mypy ( PEP 484, например "def greeting(name: str) - str:") или применения структурных подтипов ( PEP 544). Pyright поддерживает вывод типов для возвращаемых функциями значений, локальных переменных, переменных классов и глобальных переменных. Системой также применяются умные ограничители типов, учитывающие ветвления в коде с использованием операторов if/else.

Pyright работает примерно в пять раз быстрее mypy и других систем проверки типов, написанных на языке Python. Высокая производительность позволяет использовать Pyright для очень крупных кодовых баз, для работы в режиме непрерывного отслеживания при редактировании и для быстрого инкрементального обновления при изменении файлов. Для работы Pyright не требуется установка Python-окружения, но необходимо наличие Node.js.

Кроме инструментов для анализа и проверки кода в состав также входит подготовленный проектом Typeshed набор stub-файлов (".pyi"), содержащих информацию о типах для стандартных библиотек stdlib. Плагин для IDE поддерживает вывод всплывающих подсказок с информацией о типе, переход к позиции с определением переменной и обеспечение обратной связи во время редактирования.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Microsoft опубликовал Pyright, систему проверки типов для языка Python», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.