vscode visual studio run linter how code python static-analysis pylint

python - visual - Mejores Prácticas de PyLint?



run pylint visual studio code (5)

pyLint parece una buena herramienta para ejecutar el análisis de código python. Sin embargo, nuestro principal objetivo es detectar cualquier error potencial y no la convención de codificación. Habilitar todas las verificaciones de pyLint parece generar mucho ruido. ¿Alguna sugerencia sobre un conjunto de características de pyLint que usa y es efectiva?


-E solo marcará lo que pylint piense que es un error (es decir, no hay advertencias, no hay convenciones ...)


Para deshabilitar de forma persistente las advertencias y convenciones:

  1. Cree un archivo ~/.pylintrc ejecutando pylint --generate-rcfile > ~/.pylintrc
  2. Editar ~/.pylintrc
  3. Descomentar disable= y cambiar esa línea para disable=W,C

Puede bloquear cualquier advertencia / error que no le guste, a través de:

pylint --disable = [error, error]

He bloqueado estos (descripción de http://www.logilab.org/card/pylintfeatures

W0511: se utiliza cuando se detecta una nota de advertencia como FIXME o XXX

W0142: Se usa * o * magic * Se usa cuando se llama a una función o método usando * args o ** kwargs para enviar argumentos. Esto no mejora la legibilidad y debe usarse con cuidado.

W0141: Función incorporada usada% r Se usa cuando se usa una función incorporada incluida en la lista negra (vea la opción de función defectuosa). Las funciones habituales de la lista negra son aquellas como el mapa o filtro, donde Python ofrece ahora una alternativa más clara como la comprensión de la lista.

R0912: demasiadas ramas (% s /% s) Se usa cuando una función o método tiene demasiadas ramas, lo que dificulta su seguimiento.

R0913: Demasiados argumentos (% s /% s) Se usa cuando una función o método toma demasiados argumentos.

R0914: Demasiadas variables locales (% s /% s) Se usan cuando una función o método tiene demasiadas variables locales.

R0903: Muy pocos métodos públicos (% s /% s) Se usan cuando la clase tiene muy pocos métodos públicos, así que asegúrese de que realmente valga la pena.

W0212: acceso a un miembro protegido% s de una clase de cliente Se utiliza cuando un miembro protegido (es decir, un miembro de clase con un nombre que comienza con un guión bajo) es un acceso fuera de la clase o un descendiente de la clase donde está definido.

W0312: sangría encontrada con% ss en lugar de% ss Se usa cuando hay algunas pestañas y espacios mixtos en un módulo.

C0111: Cadena de documentación faltante Se utiliza cuando un módulo, función, clase o método no tiene cadena de documentación. Algunos métodos especiales como init no requieren una cadena de documentación.

C0103: Nombre no válido "% s" (debe coincidir con% s) Se usa cuando el nombre no coincide con la expresión regular asociada a su tipo (constante, variable, clase ...).


usando grep como:

pylint my_file.py | grep -v "^C"


Pyflakes debe servir su propósito bien.