
Производительная проверка типов для python.
[!WARNING]
Этот репозиторий архивирован
Этот репозиторий больше не поддерживается и был архивирован.
- Проверка типов: Pyre заменён на Pyrefly — наш инструмент следующего поколения для проверки типов Python и языковой сервер.
- Анализ безопасности (Pysa): Pysa перемещён в собственный репозиторий по адресу github.com/facebook/Pysa. Если вы ищете Pysa, пожалуйста, перейдите туда.
Pyre — это производительный проверяльщик типов для Python, совместимый с PEP 484. Pyre может инкрементально анализировать кодовые базы с миллионами строк кода, предоставляя разработчикам мгновенную обратную связь по мере написания кода. Обратитесь к нашей документации, чтобы начать работу.
Pyre поставляется с Pysa — инструментом статического анализа, ориентированным на безопасность, который мы создали на основе Pyre и который анализирует потоки данных в Python-приложениях. Pysa теперь находится в собственном репозитории по адресу github.com/facebook/Pysa — пожалуйста, перейдите туда за последней версией и чтобы начать работу с нашим анализом безопасности.
Pysa также доступен на GitHub Marketplace в качестве GitHub Action
Чтобы начать, вам понадобится Python 3.9 или новее и watchman, работающие в вашей системе. На MacOS всё можно получить с помощью homebrew:
$ brew install python3 watchman
На Ubuntu, Mint или Debian используйте apt-get и homebrew:
$ sudo apt-get install python3 python3-pip python3-venv
$ brew install watchman
Мы тестировали Pyre на Ubuntu 18.04.5 LTS, CentOS 7, а также OSX 10.11 и новее.
Начнём с создания пустой директории проекта и настройки виртуального окружения:
$ mkdir my_project && cd my_project
$ python3 -m venv ~/.venvs/venv
$ source ~/.venvs/venv/bin/activate
(venv) $ pip install pyre-check
Затем знакомим Pyre с нашим новым проектом:
(venv) $ pyre init
Эта команда настроит конфигурацию для Pyre (.pyre_configuration), а также watchman (.watchmanconfig) в директории вашего проекта. Пока примите значения по умолчанию — при необходимости вы сможете изменить их позже.
Теперь мы готовы запустить Pyre:
(venv) $ echo "i: int = 'string'" > test.py
(venv) $ pyre
ƛ Found 1 type error!
test.py:1:0 Incompatible variable type [9]: i is declared to have type `int` but is used as type `str`.
Первый запуск запустит демон, отслеживающий изменения в файловой системе — он будет инкрементально проверять типы в вашем проекте по мере внесения правок в код. Вы заметите, что последующие вызовы pyre будут быстрее первого.
Более подробную документацию см. на https://pyre-check.org.
См. CONTRIBUTING.md, чтобы узнать, как помочь.
Pyre распространяется по лицензии MIT.