Saltar al contenido
ES EN

Cómo evaluar Pyrefly en tu proyecto Python antes de dejar Pytype o mypy

Guía práctica para probar Pyrefly en tu propio código, medir tiempos en frío y en caliente y juzgar la calidad de los diagnósticos antes de migrar.

Ingeniería de software

Google ha anunciado que sustituye su veterano verificador de tipos Pytype por Pyrefly, una herramienta de código abierto que nació en Meta. Según el blog de código abierto de Google, los motivos son más velocidad, más precisión y menos coste de infraestructura.

Ahora bien, los números de un monorepo ajeno no son los tuyos. En esta guía proponemos un método sencillo para comparar Pyrefly con lo que uses hoy en tu propio árbol de código, sin fiarnos de benchmarks de terceros.

Pantalla de un editor de código Python con anotaciones de tipos y marcas de error en línea
Los diagnósticos en línea son parte de lo que conviene comparar, además de la velocidad.

Por qué merece la pena probarlo

Pytype analizaba el bytecode compilado en lugar de los árboles sintácticos del código fuente. Eso, explica Google, hacía cada vez más costoso seguir las novedades de los PEP de tipado, porque el bytecode cambia entre versiones de Python.

Pyrefly, escrito en Rust, según Google es unas diez veces más rápido que Pytype, reduce hasta un 98 % la latencia de las reconstrucciones incrementales y recorta más de un 80 % el coste máximo de cómputo. Además supera aproximadamente el 97 % de las pruebas de la suite de conformidad del tipado de Python. Son cifras internas de Google: tómalas como hipótesis que verificar, no como garantía.

Lo que necesitas

  • Un proyecto Python con anotaciones de tipos, aunque sean parciales.
  • Un entorno virtual aislado para no tocar las dependencias del proyecto.
  • El verificador que usas ahora (mypy, Pyright o Pytype) para comparar en igualdad de condiciones.
  • Una rama de pruebas y un cronómetro, por ejemplo el comando time de tu shell.

El código y la documentación están en el repositorio oficial. Consulta allí la instalación y las opciones vigentes, porque las órdenes concretas pueden variar entre versiones.

Pasos para la comparación

  1. Crea una rama de pruebas y un entorno virtual limpio.
  2. Instala Pyrefly siguiendo la documentación oficial y comprueba que arranca.
  3. Ejecuta tu verificador actual con la caché vacía y anota el tiempo en frío.
  4. Repite la ejecución sin cambios para medir el tiempo en caliente.
  5. Haz lo mismo con Pyrefly, en frío y en caliente, sobre exactamente el mismo árbol.
  6. Modifica un solo archivo y mide la comprobación incremental con cada herramienta.
  7. Revisa los diagnósticos: cuántos son errores reales, cuántos ruido y qué tan claro es el origen del fallo.
# Esquema orientativo; adapta las órdenes a tu herramienta y versión
rm -rf .mypy_cache
time <tu-verificador-actual>   # en frío
time <tu-verificador-actual>   # en caliente

Qué esperar y qué vigilar

No esperes que todas las herramientas coincidan en los mismos errores: cada una interpreta algunos casos límite de forma distinta, así que una migración puede destapar avisos nuevos o hacer desaparecer otros. En los comentarios de la noticia hubo debate con Ty y con mypy; un lector señalaba que mypy sigue siendo muy competitivo en la comprobación incremental, y otro, que Ty aún no estaba tan maduro como Pyrefly.

Truco Mide en frío y en caliente sobre TU árbol de código, y puntúa la calidad de los diagnósticos junto al rendimiento. Un verificador veloz que te inunda de ruido cuesta más tiempo que uno más lento que señala el fallo real. Meta afirma que Pyrefly puede comprobar 1,8 millones de líneas por segundo, lo que permitiría verificar en cada pulsación; míralo en este vídeo y comprueba si eso se nota en tu editor.
Gráfico de barras comparando tiempos de comprobación de tipos en frío y en caliente entre varias herramientas
Tus propias medidas, en frío y en caliente, valen más que cualquier benchmark ajeno.

Cuando tengas los resultados, decide con criterios que importen a tu equipo: tiempo de espera al editar, coste en integración continua y claridad de los mensajes. No hay un atajo universal; para un proyecto pequeño la diferencia puede no compensar el cambio.

Fuente original: infoq.com

Artículo generado mediante AI.larebelion

Kernel

· Dirección de tecnología · España

«Un verificador rápido que te ahoga en ruido sigue costando más que uno lento que señala el fallo real.»

Comentarios

Publicar un comentario