Python es uno de los lenguajes fundamentales dentro de Google, utilizado en áreas que van desde la investigación en aprendizaje automático hasta la infraestructura de desarrollo y las canalizaciones de datos. Debido a esto, el chequeo estático rápido y fiable de tipos es esencial para mantener la seguridad del código y la velocidad de los desarrolladores.
Recientemente, Google ha implementado Pyrefly como su nuevo verificador de tipos en Python. Desarrollado como proyecto de código abierto por Meta, Pyrefly reemplaza al sistema anterior, Pytype, aportando mejoras significativas en velocidad y reduciendo el uso de recursos computacionales en los sistemas de compilación.
Durante más de una década, Google utilizó Pytype, un verificador de tipos muy innovador en su tiempo. Sin embargo, con la evolución rápida del sistema de tipos de Python, Pytype comenzó a enfrentar retos importantes, particularmente porque analizaba bytecode compilado en lugar de Abstract Syntax Trees (AST) de código fuente. Este enfoque generaba dificultades de mantenimiento, especialmente con la inestabilidad del bytecode a través de diferentes versiones de Python, y no lograba proporcionar los tiempos de respuesta rápidos necesarios hoy en día.
Tomando en cuenta estas limitaciones, y al ver que la versión 3.12 de Python sería la última soportada por Pytype, Google evaluó alternativas modernas. Pyrefly se destacó debido a su rendimiento, conformidad con las especificaciones de tipos y diagnóstico de errores accionable.
Escrito en Rust, Pyrefly está diseñado para evaluar de manera perezosa y paralela, mostrando velocidades significativamente superiores a las de Pytype. Su elevada conformidad con el test de verificación de tipos oficial, junto con su mantenimiento activo, asegura una fluida actualización de versiones de Python en el monorepositorio de Google. Pyrefly también proporciona verificaciones estrictas de seguridad de tipos, algo que Pytype trataba con mayor permisividad, como se ve en la gestión de uniones de tipos.
En cuanto al diagnóstico de errores, Pyrefly ofrece mensajes al estilo de compiladores en Rust, que destacan el fragmento de código problemático con anotaciones que señalan directamente la raíz del problema, a menudo sugiriendo soluciones.
El impacto de Pyrefly en la infraestructura de Google ha sido notable. Ofrece tiempos de reconstrucción incremental hasta un 98% más rápidos y una reducción de más del 90% en la ruta crítica de las compilaciones limpias, además de reducir en más del 80% el uso en picos diarios de hardware de cómputo para verificación de tipos en Python.
Desarrolladores y agentes de codificación de inteligencia artificial de Google han reportado mejoras en su flujo de trabajo diario, permitiendo identificar errores más rápidamente y manteniendo a Pyrefly como una herramienta superior para las revisiones experimentales rápidas.
La implementación de Pyrefly evidencia el valor de unirse en torno a herramientas de desarrollo de código abierto compartidas, y Google anticipa seguir colaborando y contribuyendo a esta comunidad, destacando su agradecimiento al equipo de Pyrefly por su colaboración durante esta transición. Pyrefly está disponible para ser utilizado en proyectos propios a través de su sitio web y su repositorio en GitHub.
vÃa: Google Blog Open Source









