Repolode
adamchainz

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. 1

    Instala el complemento con pip

    python -m pip install flake8-comprehensions
  2. 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