2010-08-10 9 views
10

Me gustaría callarme un poco de error cuando uso Django. Los dos que están causando la mayor irritación son cuando se derivan de django.db.models.Model y el acceso a los objetos, y django.test.TestCase. En el primero, pylint se queja de cualquier código que use el atributo 'objetos', diciendo que no es miembro. En el segundo, después de agregar siete pruebas a un caso de prueba, se queja de demasiados métodos públicos (supongo que TestCase tiene catorce)Quieting pylint falsos positivos cuando se usa django

Sé que la primera parte de esto es un duplicado de la pregunta 115977, pero que la pregunta es un poco antigua y ninguna de las soluciones es muy buena, así que pensé en abordar el problema.

No quiero simplemente suprimir las quejas en la lista, ya que me gustaría verlas en otras circunstancias.

Respuesta

6

Lo más fácil, siempre que su código problemático no esté fuera de su control (por ejemplo, generado automáticamente), es deshabilitar las quejas en las áreas que sabe que son espurias. Copiar un ejemplo sacado de the message that first introduced this solution:

1 class foo: 
2 # pylint: disable=W1234 
3 def bar(self): 
4  # pylint: disable=W4321 
5  pass 
6 def gnurz(self): 
7  pass
+0

Gracias por la respuesta, y sería genial si pudieran deshabilitarse una vez dentro de la clase, pero el error se informa cada vez que se usa el miembro y tiene que desactivarse en cada lugar en que se usa. No es realmente práctico. – JivanAmara

4

si no se preocupan de las advertencias de algunos pylint, como miembro de unexistent (E1101) y también muchos métodos públicos (R0904), puede cerrar fácilmente con:

pylint --disable=E1101,R0904 

si está interesado solamente con pocas damas, puede ejecutar pylint así:

pylint --enable=basic,variables,classes,design,imports,newstyle,exceptions,format,miscellaneous,metrics,similarities 
+4

El OP mencionó que no quiere suprimir estos errores globalmente. –

4

no me gusta repetirme, pero aquí es una respuesta que realmente funciona: https://stackoverflow.com/a/31000713/78234
De la respuesta: No deshabilite ni debilite la funcionalidad de Pylint agregando ignores o generated-members.
Utilice un complemento Pylint desarrollado activamente que comprende Django.
This Pylint plugin for Django funciona bastante bien:

pip install pylint-django 

y cuando pylint corriendo añadir el siguiente indicador para el comando:

--load-plugins pylint_django 

el blog detallada posterior here.

+1

Esta debería ser la respuesta, ajustar las opciones de la lista y desactivar los errores, es un instrumento poco claro ya que cualquier opción se aplica globalmente – Niyojan

Cuestiones relacionadas