
Comprobaci贸n de tipos de alto rendimiento para Python.
[!WARNING]
Este repositorio está archivado
Este repositorio ya no se mantiene y ha sido archivado.
- Type checking: Pyre ha sido reemplazado por Pyrefly, nuestro verificador de tipos y servidor de lenguaje de próxima generación para Python.
- Análisis de seguridad (Pysa): Pysa se ha trasladado a su propio repositorio en github.com/facebook/Pysa. Si buscas Pysa, dirígete allí.
Pyre es un verificador de tipos de alto rendimiento para Python compatible con PEP 484. Pyre puede analizar bases de código con millones de líneas de código de forma incremental, proporcionando retroalimentación instantánea a los desarrolladores mientras escriben código. Consulta nuestra documentación para comenzar.
Pyre incluye Pysa, una herramienta de análisis estático centrada en la seguridad que hemos construido sobre Pyre y que razona sobre los flujos de datos en aplicaciones Python. — dirígete allí para la última versión y comenzar con nuestro análisis de seguridad.
Pysa también está disponible en el GitHub Marketplace como una Github Action
Para empezar, necesitas Python 3.9 o posterior y watchman funcionando en tu sistema. En MacOS puedes obtener todo con homebrew:
$ brew install python3 watchman
En Ubuntu, Mint o Debian; usa apt-get y homebrew:
$ sudo apt-get install python3 python3-pip python3-venv
$ brew install watchman
Probamos Pyre en Ubuntu 18.04.5 LTS, CentOS 7, así como en OSX 10.11 y posteriores.
Comenzamos creando un directorio de proyecto vacío y configurando un entorno virtual:
$ mkdir my_project && cd my_project
$ python3 -m venv ~/.venvs/venv
$ source ~/.venvs/venv/bin/activate
(venv) $ pip install pyre-check
A continuación, enseñamos a Pyre sobre nuestro nuevo proyecto:
(venv) $ pyre init
Este comando configurará una configuración para Pyre (.pyre_configuration) así como watchman (.watchmanconfig) en el directorio de tu proyecto. Acepta los valores predeterminados por ahora; puedes cambiarlos más tarde si es necesario.
Ahora estamos listos para ejecutar 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`.
Esta primera invocación iniciará un demonio que escucha cambios en el sistema de archivos, verificando tipos de tu proyecto de forma incremental mientras haces ediciones en el código. Notarás que las invocaciones posteriores de pyre serán más rápidas que la primera.
Para documentación más detallada, consulta https://pyre-check.org.
Consulta CONTRIBUTING.md para saber cómo ayudar.
Pyre está licenciado bajo la licencia MIT.