+38/050/370-3627
+38/067/502-3306
+38/044/257-2444
Новости

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

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

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 поддерживает вывод всплывающих подсказок с информацией о типе, переход к позиции с определением переменной и обеспечение обратной связи во время редактирования. 

Другие новости