Limpie su base de código con esta herramienta de línea de comandos fácil de usar.
Una herramienta de linting es un recurso valioso que puede ayudarlo a detectar errores e inconsistencias en su código.
Flake8 es una de las herramientas de pelusa más populares para Python. Identifica errores de sintaxis y formato en su código, junto con otros problemas como importaciones no utilizadas. Es muy flexible porque, aunque tiene reglas predeterminadas, puede cambiarlas o agregarlas para que se ajusten a sus requisitos.
También puede configurar Flake8 para que se ejecute cuando guarde las actualizaciones de su código usando VS Code. Todas estas características lo convierten en una herramienta valiosa para escribir programas en Python.
Instalación de Flake8
Siga los pasos a continuación para instalar Flake8 en su entorno de desarrollo. Es posible que necesite instala Pip en tu máquina primero.
- Ejecute el siguiente comando en su terminal para instalar Flake8:
pip instalar flake8
- Verifique que Flake8 esté instalado ejecutando el siguiente comando:
flake8 --versión
- Si Flake8 está instalado correctamente, debería ver un resultado similar al siguiente:
4.0.1 (mccabe: 0.6.1, pycodestyle: 2.8.0, hojuelas: 2.4.0) CPython 3.9.13en
linux
Una vez que haya instalado correctamente Flake8, puede comenzar a usarlo.
Uso de Flake8 para analizar el código de Python
Para comprender cómo usar Flake8, comience con el siguiente código. Tiene un par de errores intencionales. Cópielo en un archivo llamado saludo.py.
definitivamentesaludo(nombre):
imprimir("Hola, " + nombre)
saludo("Alicia")
saludo("Beto")
Ejecutar Flake8 en un solo archivo
La sintaxis para ejecutar Flake8 en un solo archivo es la siguiente.
flake8 ruta/al/archivo.py
En este ejemplo, navegue hasta el directorio que contiene el archivo greting.py y ejecute el siguiente comando.
flake8 saludo.py
Flake8 debería devolver el siguiente mensaje que muestra que hubo un error de sangría.
saludo.py:5:1: E999Error de sangría: inesperadosangrar
Esta salida indica que la línea 5 está sangrada innecesariamente. A corregir este error de sangría, debe eliminar el espacio desde el principio de esta línea.
definitivamentesaludo(nombre):
imprimir("Hola, " + nombre)
saludo("Alicia")
saludo("Beto")
Ahora, cuando ejecute Flake8, recibirá las siguientes advertencias.
saludo.py:4:1: E305esperado 2 blancolíneasdespuésclaseofuncióndefinición, encontró 1
saludo.py:5:16: W292Nonueva líneaenfindearchivo
Esta salida indica los siguientes problemas:
- En la línea 4, debe haber dos líneas en blanco después de la definición de la función de saludo, pero solo hay una.
- En la línea 5, debe haber una nueva línea al final del archivo.
Una vez que solucione estos problemas, flake8 no debería devolver ningún mensaje.
Hasta ahora, hemos analizado solo un archivo, pero en la mayoría de los casos, querrá analizar varios archivos.
Ejecutar Flake8 en varios archivos
Di que tienes otra llamada prueba_saludo.py que contiene el siguiente código:
de saludo importar saludo
definitivamenteprueba_saludo():
afirmar saludo("Alicia") == "¡Hola, Alicia!"
Para analizar estos dos archivos, ejecute el siguiente comando.
flake8 saludo.py test_saludo.py
Este método funciona, pero si tiene más de dos archivos, escribir los nombres de los archivos puede ser agotador y propenso a errores.
Es más eficiente usar el siguiente comando para analizar todos los archivos en el directorio actual:
escama8 .
Comprender los errores y advertencias de Flake8
Flake8 informa de dos tipos de problemas:
- Errores: un error indica una sintaxis o un problema estructural que impide que su código se ejecute como el error de sangría del ejemplo greeting.py.
- Advertencias: una advertencia indica un problema potencial o una violación de las pautas de estilo de PEP 8, como la advertencia "sin línea nueva al final del archivo" del ejemplo greeting.py.
Algunos de los errores y advertencias comunes son:
- E101: la sangría contiene espacios y tabulaciones mixtos.
- E302: se esperaban 2 líneas en blanco, se encontraron 0.
- E999 Error de sangría: sangría inesperada.
- W291: espacio en blanco final.
- E501: línea demasiado larga (máximo 79 caracteres).
- F401: módulo importado pero sin usar.
Cuando ejecute Flake8, generará un mensaje como el que se muestra arriba y el número de línea, y la ubicación del código al que hace referencia el mensaje. Esto le ayuda a saber exactamente dónde tiene problemas su código, lo que le ahorra tiempo de depuración.
Configuración de Flake8
Para algunos proyectos, las reglas de Flake8 pueden ser demasiado rígidas. En estos casos, Flake8 le permite configurarlo y adaptar su comportamiento para que se ajuste a sus requisitos.
Puede proporcionar opciones de configuración como:
- Ignorar errores o advertencias específicas.
- Configuración de la longitud máxima de la línea.
- Especificación de reglas adicionales.
Para demostrarlo, cree un archivo de configuración llamado setup.cfg. También puede agregar las opciones de configuración a un archivo llamado tox.ini o .flake8.
En este archivo, comience creando una sección flake8 de la siguiente manera:
[flake8]
Luego agregue las opciones que desea configurar:
[flake8]
max-line-longitud = 100
ignorar = F401
En este ejemplo, max-line-length = 100 le dice a Flake8 que emita advertencias para cualquier línea en sus archivos de código fuente que exceda los 100 caracteres de longitud. ignore = F401 le dice a Flake8 que ignore los errores relacionados con las importaciones no utilizadas.
No necesita agregar estas opciones a un archivo de configuración, ya que puede especificarlas en la línea de comando de esta manera:
flake8 --ignorar E203 --max-line-length 100
Usar un archivo de configuración es el mejor enfoque ya que no necesita especificar las mismas opciones cada vez que usa flake8.
Usando Flake8 en VS Code
Si usa VS Code para escribir su aplicación de Python, puede usar la extensión flake8 para borrar sus archivos de Python mientras escribe.
Primero, debe instalar la extensión flake8 del mercado de VS Code. Luego, para configurarlo, abra la configuración de VS Code, luego busque "python.linting.flake8Enabled" y habilite el linting con flake8.
Ahora debería ver los errores y advertencias resaltados en su código con una línea ondulada mientras lo escribe. Al pasar el cursor sobre el texto resaltado, se mostrará un mensaje que explica el problema y sugiere posibles soluciones.
Otro IDE de Python como Pycharm también tienen extensiones Flake8 que puede configurar para simplificar el proceso de pelusa.
¿Por qué debería usar un linter?
A medida que escribe código, puede introducir errores e inconsistencias que hacen que su aplicación falle o tenga problemas de rendimiento. Un linter como Flake8 le permite detectar algunos de estos problemas con anticipación, lo que lo ayuda a escribir un código más limpio. Es muy importante integrarlo en su flujo de trabajo de desarrollo.
Puede hacer esto usándolo dentro de su editor de texto o IDE e integrándolo en su continuo tubería de integración para verificar automáticamente su código en busca de errores y advertencias antes de fusionarlo con su rama principal.