Framework para gestionar y ejecutar hooks de pre-commit en varios lenguajes que revisan el código antes de cada commit de Git.
asottile/pyupgrade
Herramienta de línea de comandos y hook de pre-commit que reescribe automáticamente código Python para usar la sintaxis de una versión objetivo más reciente.
- Estrellas
- 4,126
- Forks
- 229
- Issues abiertos
- 21
- Último commit
- hace 3 días
¿Qué es?
pyupgrade reescribe archivos de código Python in situ para que usen la sintaxis y las convenciones de versiones más recientes de Python. Gestiona cambios como convertir formatos de cadenas antiguos en f-strings o en str.format, sustituir llamadas de compatibilidad de six por equivalentes nativos y simplificar comprensiones de conjuntos y diccionarios. Las reescrituras específicas de cada versión se activan con opciones como --py36-plus o --py310-plus, de modo que el resultado coincida con la versión mínima de Python que requiere el proyecto.
La herramienta se puede instalar con pip y ejecutar desde la línea de comandos con uno o varios archivos. También se puede integrar con pre-commit mediante un hook incluido, para que las reescrituras se ejecuten automáticamente en los archivos preparados antes de cada commit. Algunas reescrituras, como las que afectan a las anotaciones, solo se aplican cuando un archivo importa from __future__ import annotations; además, una opción permite mantener sin cambios el tipado en tiempo de ejecución cuando sea necesario.
Funciones clave
- 01Reescribe formatos de cadenas antiguos como f-strings, str.format y literales simplificados.
- 02Elimina six y el código de compatibilidad entre py2 y py3, incluidas las importaciones y las comprobaciones de versión.
- 03Permite elegir versiones específicas de Python con opciones como --py36-plus y --py315-plus.
- 04Moderniza anotaciones de tipos, como las formas de PEP 585 y PEP 604, cuando se activa.
- 05Se ejecuta como hook de pre-commit en archivos preparados.
Casos de uso
- Aumentar la versión mínima de Python de una base de código antigua sin editar cada archivo manualmente.
- Eliminar el código de compatibilidad con Python 2 y six después de una migración.
- Aplicar automáticamente sintaxis moderna mediante pre-commit en el repositorio de un equipo.
Inicio rápido
- 1
Instala pyupgrade con pip
pip install pyupgrade - 2
O añádelo como hook de pre-commit en .pre-commit-config.yaml usando la configuración de ejemplo del README
Antes de usarlo
- Muchas reescrituras solo se aplican si se pasa una opción de versión objetivo, como --py36-plus o --py39-plus.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es pyupgrade?
- Herramienta de línea de comandos y hook de pre-commit que reescribe automáticamente código Python para usar la sintaxis de una versión objetivo más reciente. pyupgrade reescribe archivos de código Python in situ para que usen la sintaxis y las convenciones de versiones más recientes de Python. Gestiona cambios como convertir formatos de cadenas antiguos en f-strings o en str.format, sustituir llamadas de compatibilidad de six por equivalentes nativos y simplificar comprensiones de conjuntos y diccionarios. Las reescrituras específicas de cada versión se activan con opciones como --py36-plus o --py310-plus, de modo que el resultado coincida con la versión mínima de Python que requiere el proyecto.
- ¿pyupgrade es gratuito? ¿Qué licencia tiene?
- pyupgrade es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿pyupgrade sigue mantenido?
- Mantenimiento activo. El último commit de pyupgrade fue el 4 nov 2026.
- ¿Para qué puedo usar pyupgrade?
- Aumentar la versión mínima de Python de una base de código antigua sin editar cada archivo manualmente. Eliminar el código de compatibilidad con Python 2 y six después de una migración. Aplicar automáticamente sintaxis moderna mediante pre-commit en el repositorio de un equipo.
- ¿Cómo se instala pyupgrade?
- Instala pyupgrade con pip: pip install pyupgrade O añádelo como hook de pre-commit en .pre-commit-config.yaml usando la configuración de ejemplo del README
- ¿Dónde consigo pyupgrade?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/asottile/pyupgrade
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Black es un formateador de código Python con opiniones definidas y resultados deterministas que reescribe los archivos in situ con diffs mínimos.
Utilidad y biblioteca de Python que ordena y agrupa automáticamente las sentencias de importación.
Herramienta de línea de comandos y plugin de flake8 que aplica ajustes de configuración compartidos en varios proyectos y puede corregir automáticamente los archivos de configuración.
Herramienta de Python y hook de pre-commit que añade automáticamente comas finales a llamadas, literales y definiciones multilínea.
Herramienta CLI que busca, analiza y reescribe código al comparar patrones de árboles de sintaxis abstracta, en lugar de texto plano.