Llegamos a ustedes gracias a:



Noticias

Microsoft presenta un comprobador rápido de tipos para Python

[29/03/2019] Microsoft ha presentado Pyright, un sistema de comprobación de tipo estático de código abierto para Python que apunta a ser más rápido que las soluciones de comprobación de tipos existentes para Python como Mypy.

Escrito en TypeScript, y con ejecución en Node.js, Pyright no requiere un tiempo de ejecución Python existente. Está diseñado principalmente para ser utilizado como un complemento de Visual Studio Code, pero también puede ejecutarse como una herramienta de línea de comandos independiente.

Microsoft afirma en el archivo Léame para el proyecto que Pyright es "típicamente cinco veces más rápido que otros comprobadores de Python que están escritos en Python, como Mypy, Pytype y Pyre. Escribir esas herramientas en Python es conveniente, pero solo pueden ejecutarse tan rápido como Python, y el tiempo de ejecución predeterminado de Python no enfatiza el rendimiento. Dicho esto, el desempeño de estas herramientas no es absoluto; depende principalmente de los sistemas en los que se ejecutan y de las bases de código que analizan.

Pyright soporta todas las sugerencias de tipo principales y la sintaxis relacionada con el tipo actualmente disponibles en Python -sugerencias de tipo, sintaxis de notación variable, y subtipos estructurales. También soporta la inferencia de tipos en muchas circunstancias. El proyecto se basa en el propio tipo de información de código auxiliar de Python para realizar sus análisis, por lo que se puede mantener sincronizado con Python incluso aunque no esté escrito en el lenguaje.

Cuando se ejecuta como un complemento de Visual Studio Code, ofrece retroalimentación en vivo sobre el código: información del tipo que se muestra con información sobre las herramientas, enlaces de definición de símbolos, etc. Una parte de lo que Pyright ofrece a este respecto se superpone ligeramente con Python Language Server de Microsoft, pero el enfoque principal de Pyright es la comprobación de tipos y no otras funciones de codificación de código.

El proyecto aún se considera un trabajo en desarrollo, con muchas de sus características enumeradas como inacabadas o pendientes, como la inferencia de tipos para los generadores o la validación para declaraciones asincrónicas/de espera. Una característica explícitamente no planeada es el soporte para Python 2; Microsoft no tiene la intención de ofrecerlo. Por el contrario, Mypy, y muchas otras herramientas de codificación de tipos y de comprobación de tipos para Python, sí lo ofrecen.

Los sistemas de verificación de tipos para Python son principalmente para garantizar la corrección de un programa en el tiempo de ejecución, no para acelerar las aplicaciones de Python. Sin embargo, existen algunos proyectos que intentan compilar Python con anotaciones de tipo en un lenguaje más eficaz. Mypyc, por ejemplo, compila Python con anotaciones de tipo a C. Pyright podría ser utilizada como base para un proyecto similar.