Un linter de Python que reúne PyFlakes, pycodestyle y McCabe en un solo comando y admite plugins de terceros.
adamchainz/flake8-comprehensions
Un plugin de flake8 que señala patrones innecesarios o poco eficientes con comprensiones de listas, conjuntos, diccionarios y generadores, así como llamadas a funciones integradas.
- Estrellas
- 466
- Forks
- 25
- Issues abiertos
- 11
- Último commit
- anteayer
¿Qué es?
flake8-comprehensions es un plugin para flake8, el linter de Python, que detecta patrones en los que las comprensiones, las expresiones generadoras o las llamadas a list(), set(), dict() y tuple() son redundantes o pueden escribirse de forma más directa. Por ejemplo, envolver un generador en list() cuando bastaría con una comprensión de lista, o llamar a dict() sobre un literal de diccionario.
Cada comprobación es una regla numerada de la familia C4, como C400 para generadores innecesarios y C419 para comprensiones de listas dentro de any() o all() que impiden la evaluación de cortocircuito. Las reglas se pueden activar en flake8 mediante la opción select, añadiendo el prefijo C4. El plugin requiere Python 3.11 o posterior y se instala con pip.
Funciones clave
- 01Señala llamadas redundantes a list(), set(), dict() y tuple() aplicadas a generadores, comprensiones y literales.
- 02Detecta comprensiones de listas en any() y all() que impiden la evaluación de cortocircuito.
- 03Sugiere dict.fromkeys() para comprensiones de diccionarios que asignan un único valor constante.
- 04Recomienda sustituir las llamadas a map() basadas en lambda por comprensiones o expresiones generadoras.
- 05Se integra con flake8 y está activado de forma predeterminada, salvo que se personalice la opción select.
Casos de uso
- Mantener limpio un código base de Python en una canalización de CI que ya ejecuta flake8.
- Revisar el código en busca de listas intermedias innecesarias o conversiones duplicadas durante una refactorización.
- Enseñar al equipo un estilo idiomático de comprensiones mediante comentarios automatizados del linter.
Inicio rápido
- 1
Instala el complemento con pip
python -m pip install flake8-comprehensions - 2
Si configuras la opción select de Flake8, añade el prefijo C4; de lo contrario, el complemento está activo de forma predeterminada
Antes de usarlo
- Requiere Python 3.11 a 3.15.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es flake8-comprehensions?
- Un plugin de flake8 que señala patrones innecesarios o poco eficientes con comprensiones de listas, conjuntos, diccionarios y generadores, así como llamadas a funciones integradas. flake8-comprehensions es un plugin para flake8, el linter de Python, que detecta patrones en los que las comprensiones, las expresiones generadoras o las llamadas a list(), set(), dict() y tuple() son redundantes o pueden escribirse de forma más directa. Por ejemplo, envolver un generador en list() cuando bastaría con una comprensión de lista, o llamar a dict() sobre un literal de diccionario.
- ¿flake8-comprehensions es gratuito? ¿Qué licencia tiene?
- flake8-comprehensions es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿flake8-comprehensions sigue mantenido?
- Mantenimiento activo. El último commit de flake8-comprehensions fue el 4 nov 2026.
- ¿Para qué puedo usar flake8-comprehensions?
- Mantener limpio un código base de Python en una canalización de CI que ya ejecuta flake8. Revisar el código en busca de listas intermedias innecesarias o conversiones duplicadas durante una refactorización. Enseñar al equipo un estilo idiomático de comprensiones mediante comentarios automatizados del linter.
- ¿Cómo se instala flake8-comprehensions?
- Instala el complemento con pip: python -m pip install flake8-comprehensions Si configuras la opción select de Flake8, añade el prefijo C4; de lo contrario, el complemento está activo de forma predeterminada
- ¿Dónde consigo flake8-comprehensions?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/adamchainz/flake8-comprehensions
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Un plugin estricto y con criterios definidos para flake8 que aplica un estilo de Python coherente y sencillo, y señala patrones de código complejos.
Un plugin de Flake8 que señala posibles errores y patrones de diseño cuestionables que pyflakes y pycodestyle no detectan.
Herramienta de Python que calcula la complejidad ciclomática de McCabe de las funciones y funciona como plugin de flake8 para señalar código demasiado complejo.
Plugin de flake8 que detecta código Python que puede simplificarse, por ejemplo, combinando llamadas a isinstance o sustituyendo bloques if por expresiones ternarias.
Plugin de flake8 que detecta patrones inseguros y malas prácticas de Python, como el uso de exec o la deserialización insegura.