Etiquetas: , , ,

Introducción

Pylint Pylint es una herramienta de análisis estático de código fuente para el lenguaje de programación Python. Se utiliza para mejorar la calidad del código mediante la detección temprana de posibles errores y la aplicación de estándares de codificación.

Pylint analiza el código fuente de Python en busca de problemas comunes como variables no utilizadas, nombres de variables incorrectos, código duplicado, convenciones de estilo de código incorrectas, errores de sintaxis y otros problemas, además de verificar la conformidad con los estándares de codificación como PEP8, que es una guía de estilo de código de Python.

Utilizarlo es muy sencillo y te ayudará a mantener un nivel más alto de calidad en tu código, en este articulo te enseñamos a usarlo y configurarlo para que se convierta en una herrarmienta de tu día a día sin que suponga una carga adicional de trabajo.

Instalación

Lo primero para poder usar pylint es instalarlo, para ello solo tienes que ejecutar este comando:

pip install pylint

Con esto instalaremos pylint en nuestro equipo y estaremos listos para empezar a utilizarlo.

Usando Pylint

Y listo, ya lo tienes disponible, puedes escanear un proyecto completo usando:

python -m pylint .

Pylint nos devolverá un informe con todos los problemas que ha encontrado en cada uno de los ficheros. Y pondrá una nota sobre 10 al código

pylint

También podemos escanear unicamente un fichero, para ello solo tenemos que especificar su nombre al lanzar el comando:

python -m pylint app.py

Esto devolverá un resultado como este: pylint

También puedes ejecutarlo para todos los ficheros dentro de un directorio, basta con indicar el directorio que quieres escanear. Por ejemplo, si queremos que se ejecute sobre todos los ficheros del directorio workers, podemos ejecutar:

python -m pylint workers/

Cuando no detecta problemas, Pylint se limita a devolver la nota que le pone al código y si ha mejorado o empeorado respecto al anterior escaner:

pylint

Personalizando su comportamiento

La configuración de Pylint por defecto es bastante estricta y no siempre se ajusta a las necesidades de nuestros proyectos. Además, pese a que es todo lo que te va a indicar son buenas prácticas y esta establecido como “lo que debería ser”, cada programador tiene sus manias, comportamientos y estilo que hace que su código sea reconocible, y en mi opinión así debe ser.

Por suerte, Pylint se puede configurar fácilmente para adaptar lo que queremos que revele y lo que no. Pero cuidado, no caigas en la tentación de excepcionar cosas solo porque te resulten molestas para lograr una mejor nota en el escaner. Al final, ¡solo te engañas a ti mismo/a!

Configuración general para todo el proyecto

Puedes configurar excepciones generales para todo el proyecto. Para esto basta con crear un fichero llamado .pylintrc y añadir las configuraciones que quieras.

El fichero lo puedes crear usando el comando:

python -m pylint --generate-rcfile > .pylintrc

Que generará un .pylintrc con la estructura básica en el directorio en el que lo ejecutes, a partir de aquí puedes personalizarlo cómo quieras. Ya sea añadiendo excepciones, o aumentando las capacidades de Pylint mediante el uso de plugins.

Por poner un ejemplo que puede no ser una buena práctica, pero que yo suelo usar, es eliminar el error cuando usas parentesis en if. Es cierto que en determinadas ocasiones se pueden entender sin estos parantesis, pero para mi, ver las condiciones acotadas por parentesis siento que mejora la legibilidad del código, y por lo tanto no tenerlos me resulta molesto, por eso suelo irme a la sección disable del fichero .pylintrc y dejarlo de la siguiente forma:

disable=superfluous-parens

Puedes encontrar un ejemplo muy extenso de este fichero en Este enlace

Configurar excepciones para determinados ficheros

A veces nos interesa que en un fichero en concreto no se revise un determinado error. Pylint nos proporciona una forma sencilla de configurar esto, basta con indicarlo con un comentario en la parte superior. Por ejemplo, si no queremos que revise si las librerías están disponibles en nuestro equipo y pude importarlas, basta con indicarselo de la siguiente forma:

#pylint: disable=import-error

Integrarlo en Visual Studio Code

Pese a que solo necesitamos lanzar un comando para que Pylint haga un escaneo de todo nuestro código, a algunas personas les resulta más cómodo que este escaneo se vaya realizando a medida que escribe el código. Es por esto que existen plugins para Visual Studio Code que hace precisamente esto, como Pylint, que puedes instalar desde la pestaña de plugins del propio editor o mediante Este enlace.

En este mismo enlace puedes encontrar la documentación para configurar el plugin según tus necesidades

Bonus : Integrar Pylint en Github Actions

Otra opción que hará que tus repositorios de git tengan un plus de calidad es incluir este escaneo de Pylint en las github action de tu repositorio, de forma que cada vez que subas código, github ejecute un escaneo y te de feedback de su estado. Puedes hacerlo añadiendo esta acción con el siguiente yamel:

name: Pylint

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ["3.8", "3.9", "3.10"]
    steps:
    - uses: actions/checkout@v3
    - name: Set up Python $
      uses: actions/setup-python@v3
      with:
        python-version: $
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install pylint
    - name: Analysing the code with pylint
      run: |
        pylint $(git ls-files '*.py')

A partir de aquí, puedes complicarlo lo que quieras, existen opciones para poner un badge con el estado del escaneo, puedes evitar que se haga merge a ramas principales si no se ha superado, etc.

Espero que esta información te resulte útil y te ayude a ceñirte más a los estandares de codificación en tu día a día. ¡Hasta pronto!

/** Comentarios del post **/

# Todos los enlaces:

# Recursos usados:

Categorías: