Estamos usando pylint dentro de nuestro sistema de compilación. Tenemos un paquete de Python dentro de nuestra base de código que tiene un código desechable, y me gustaría desactivar todas las advertencias de un módulo temporalmente para que pueda dejar de molestar a los otros desarrolladores con estos mensajes superfluos. ¿Hay alguna manera fácil de pylint: disable
de todas las advertencias para un módulo?Pylint desactiva todas las advertencias para un archivo
Respuesta
Desde el PyLint FAQ
Con Pylint < 0,25, añadir
# pylint: disable-all
al inicio del módulo.
Pylint 0.26.1 y hasta han cambiado de nombre dicha Directiva a
# pylint: skip-file
(pero la primera versión se mantiene la compatibilidad hacia atrás).
Para facilitar la búsqueda de los módulos que se ignoran, se emite un mensaje de nivel de información I0013. Con las versiones recientes de Pylint, si usa la sintaxis anterior, se emite un mensaje I0014 adicional.
Otra opción es utilizar la opción de línea de comando --ignore
para omitir el análisis de algunos archivos.
Sí, puede especificar # pylint: skip-file
, pero es una mala práctica desactivar todas las advertencias de un archivo. El código de descarte no debería existir en una rama que se analiza mediante pylint.
Si desea deshabilitar solo advertencias específicas, puede hacerlo agregando un comentario como # pylint: disable=message-name
para deshabilitar el mensaje especificado para el resto del archivo, o al menos hasta # pylint: enable=message-name
.
Ejemplo:
# pylint: disable=no-member
class C123(object):
def __init__(self):
self.foo_x = self.bar_x
# pylint: enable=no-member
class C456(object):
def __init__(self):
self.foo_x = self.bar_x
Para evitar que se le diga que se ha inhabilitado una advertencia específica como esta, 'disable = local-disabled' se puede agregar a pylintrc. – ColonelFazackerley
@ColonelFazackerley Sí, pero en ese momento es importante tener un archivo 'pylintrc' para su proyecto. Un ejemplo es [aquí] (https://github.com/impredicative/pyskeleton/blob/master/pylintrc). –
pylint tiene five "categories" for messages (de los cuales soy consciente).
Estas categorías solían ser muy obvias, pero los mensajes Pylint numerados ahora han sido reemplazados por nombres. Por ejemplo, C0302
ahora es too-many-lines
. Pero la 'C' nos dice que too-many-lines
es un mensaje Convención. Esto es confuso, ya que los mensajes de la Convención suelen aparecer como una advertencia, ya que muchos sistemas (como Syntastic) parecen clasificar todo como una advertencia o un error. Sin embargo, el informe de PyLint aún divide las cosas en estas categorías, por lo que definitivamente es compatible.
Su pregunta se refiere específicamente a advertencias, y todos pylint Advertencia nombres de mensajes comienzan con 'W'.
Fue un poco difícil para mí rastrear esto, pero this answer finalmente me llevó a la respuesta. PyLint todavía admite la desactivación de categorías enteras de mensajes.Por lo tanto, para desactivar todas las Advertencias, puede hacer:
disable=W
Esto se puede utilizar en la línea de comandos:
$ pylint --disable=W myfile.py
O bien, puede ponerlo en su archivo pylintrc:
[MESSAGES CONTROL]
disable=W
Nota: es posible que ya tenga la opción disable
en su archivo rc, en cuyo caso debe agregar la 'W' a esta lista.
O bien, puede ponerlo en línea en su código, donde trabajará para el ámbito en el que se coloca:
# pylint: disable=W
Para desactivarlo para un archivo completo, lo mejor es ponerlo en la parte superior del archivo. Sin embargo, incluso en la parte superior del archivo, encontré que todavía recibía el mensaje de advertencia trailing-newlines
(técnicamente una advertencia de , pero estoy llegando a eso).
En mi caso, tuve una biblioteca escrita por alguien de hace mucho tiempo. Funcionó bien, así que realmente no había necesidad de preocuparse por la convención moderna de Python, etc. Todo lo que realmente me importaba eran los errores que probablemente romperían mi código.
Mi solución fue la de desactivar todo el Advertencia, Convención y refactoración mensajes para este archivo sólo colocando el siguiente comando pylint en la primera línea:
# pylint: disable=W,C,R
Aparte de la el mensaje antes mencionado para las nuevas líneas finales, esto hizo exactamente lo que necesitaba.
Mi caso de uso es ejecutar pylint *.py
para procesar todos los archivos en un directorio, excepto que quiero omitir un archivo en particular.
Al agregar #pylint: skip-file
, falló la falla de la pila con I: 8, 0: Ignoring entire file (file-ignored)
. Agregar #pylint: disable=file-ignored
no soluciona eso. Presumiblemente, es un error global en lugar de un archivo específico.
La solución era incluir --disable=file-ignored
en las opciones de comando de la pila. Tomó demasiado tiempo para resolver esto; no debería haber un error file-ignored
cuando ignora explícitamente un archivo.
Más idealmente, colóquelo en un archivo de configuración 'pylintrc', no en una opción de comando. –
- 1. ¿Cómo desactivo las advertencias de "falta de documentación" en un nivel de archivo en Pylint?
- 2. Python: evitando las advertencias de pylint sobre demasiados argumentos
- 3. Desactivar todas las advertencias gcc
- 4. Ocultar todas las advertencias en ipython
- 5. muestra todas las advertencias en IntelliJ
- 6. Deshabilitar todas las advertencias de Resharper con un comentario
- 7. R: cómo borrar todas las advertencias
- 8. Cómo suprimir todas las advertencias usando MSBuild
- 9. Ignorar todas las advertencias en un proyecto de Eclipse
- 10. Pylint de forma recursiva para un nombre de archivo dado
- 11. Cómo especificar un archivo de configuración para pylint en Windows?
- 12. Cómo suprimir advertencias para un archivo de ActionScript?
- 13. "Tratar todas las advertencias como errores, excepto ..." en Visual Studio
- 14. ¿Cómo ver todas las advertencias en SBT 0.11?
- 15. pylint ignorar por el directorio
- 16. ¿Cómo hacer que las advertencias de las pylint se marquen en el margen del editor de Eclipse de Pydev?
- 17. Mejores prácticas de PyLint?
- 18. C++ Deshabilitar las advertencias en un específico incluir
- 19. Ignorar permanentemente las advertencias
- 20. TYPO3: ¿cómo suprimir las advertencias obsoletas?
- 21. ¿Hay alguna forma de desactivar todas las advertencias con un pragma?
- 22. Vim: Detener las advertencias de "archivo de intercambio existente"
- 23. Pylint con Django
- 24. Desactiva IDENTITY_INSERT para Dataset insert
- 25. ¿Encontrar un archivo dentro de todas las carpetas posibles?
- 26. Python: obtener todas las imágenes de un archivo html
- 27. ¿Cómo puedo extraer todas las clases en un archivo separado?
- 28. Cómo suprimir las advertencias para el archivo incluido desde el encabezado
- 29. ¿Cómo puedo desactivar las advertencias del compilador en Eclipse en base a un archivo específico?
- 30. Entity framework - Todas las tablas en un solo archivo edmx
Nota: esto deshabilitará todas las advertencias y * todos los errores *. Si está buscando una forma de desactivar * solo * advertencias, consulte mi respuesta en esta página. – eatcrayons