El equipo principal de Python ha lanzado Python 3.13.5, la quinta actualización de mantenimiento para la rama 3.13. Esta no es una versión con nuevas funcionalidades llamativas, sino un lanzamiento acelerado y crítico enfocado en corregir regresiones serias y bugs que afectaban la estabilidad.
El prefijo «.5» en la versión indica que se trata de un parche de «reparación», que busca rápidamente estabilizar la plataforma antes de que los problemas impacten a una base de usuarios más amplia, especialmente en entornos de desarrollo y producción.
Los Bugs Críticos que Impulsaron la Actualización
Python 3.13.5 se lanzó de manera urgente para abordar tres regresiones clave, principalmente relacionadas con la construcción de módulos y la coherencia del comportamiento del lenguaje:
- Fallo en la compilación de módulos de extensión en Windows (GH-135151): Este era el problema más apremiante. Se debía a que el header
pyconfig.h
activaba accidentalmente builds de hilos libres (free-threaded), lo que rompía la compilación de módulos de extensión en ciertas configuraciones de Windows. 3.13.5 soluciona esto. - Retraso en
TypeError
de expresiones generadoras (GH-135171): En 3.13.4, las expresiones generadoras no lanzabanTypeError
inmediatamente al recibir un objeto que no era iterable. En su lugar, el error se posponía hasta la primera iteración, creando confusión. La versión 3.13.5 restaura el comportamiento anterior. - Error en
random.getrandbits()
con tipos «similares a int» (GH-135326): Se rompió la compatibilidad con objetos que actúan como enteros (comonumpy.int64
) al pasarlos a la funciónrandom.getrandbits()
. Esta versión soluciona el bug.
Una plataforma más estable y moderna
A pesar de ser un parche, 3.13.5 también hereda y estabiliza todas las características ambiciosas introducidas en la línea 3.13, que definen la dirección futura del lenguaje:
- REPL Interactivo Mejorado: Continúa la mejora en el shell interactivo (REPL), ahora con edición multilínea y tracebacks coloreados por defecto, haciendo la experiencia de desarrollo más eficiente.
- Modo Experimental sin GIL: Mantiene el modo experimental para ejecutar CPython sin el Global Interpreter Lock (GIL), una de las mayores apuestas de la comunidad para permitir una ejecución multihilo más libre y paralela.
- JIT Compiler Protagonista: Continúa sentando las bases para el futuro compilador Just-In-Time (JIT), aunque sus ganancias de rendimiento actuales son modestas, es clave para futuras optimizaciones.
- Biblioteca Estándar más limpia: Consolida la eliminación de los módulos obsoletos (conocidos como los módulos de la «batería muerta») bajo la PEP 594 (e.g.,
cgi
,imghdr
,pipes
), lo que resulta en una biblioteca estándar más ligera y mantenible.
Seguridad y Recomendaciones de Actualización
Es importante destacar que Python 3.13.5 también incluye actualizaciones de seguridad vitales, especialmente en el paquete de documentación que corrige múltiples vulnerabilidades (como CVE-2024-12718). Aunque no siempre conducen a la ejecución de código, estas correcciones son esenciales para la confianza y la integridad del ecosistema.
Recomendación: Dado que 3.13.5 corrige bugs críticos de estabilidad y trae consigo importantes parches de seguridad, se recomienda encarecidamente la actualización. Como siempre, ejecuta tu suite de pruebas automatizadas en un entorno virtual aislado antes de desplegar en producción para asegurar la compatibilidad con todas tus dependencias de terceros.