me gustaría mucho para integrar pylint en el proceso de construcción de mis proyectos Python, pero se han topado con un show-tapón: Uno de los tipos de error que me parece extremadamente useful--: E1101: *%s %r has no %r member*
--constantly informes de errores al usar campos Django comunes, por ejemplo: Pylint con Django
E1101:125:get_user_tags: Class 'Tag' has no 'objects' member
que es causada por este código:
def get_user_tags(username):
"""
Gets all the tags that username has used.
Returns a query set.
"""
return Tag.objects.filter( ## This line triggers the error.
tagownership__users__username__exact=username).distinct()
# Here is the Tag class, models.Model is provided by Django:
class Tag(models.Model):
"""
Model for user-defined strings that help categorize Events on
on a per-user basis.
"""
name = models.CharField(max_length=500, null=False, unique=True)
def __unicode__(self):
return self.name
¿Cómo puedo sintonizar a Pylint tomar apropiadamente campos como objetos en cuenta? (También investigué el origen de Django y no he podido encontrar la implementación de objects
, así que sospecho que no es "solo" un campo de clase. Por otro lado, soy bastante nuevo en python, por lo que yo puedo muy bien haber pasado por alto algo)
Editar:. la única forma que he encontrado para contar pylint a no advertir acerca de estas advertencias es mediante el bloqueo de todos los errores del tipo (E1101), que no es una solución aceptable , ya que eso es (en mi opinión) un error extremadamente útil. Si hay otra manera, sin aumentar la fuente pylint, por favor que me señale detalles :)
Ver here para un resumen de los problemas que he tenido con pychecker
y pyflakes
- que han demostrado ser muy inestable a para uso general. (En el caso de pychecker, los bloqueos se originaron en el código pychecker, no en el origen que estaba cargando/invocando)
ver el post de @ talweiss por respuesta-actualizada! – Brendan
Se encontró una buena solución en http://stackoverflow.com/a/31000713/78234 – shahjapan
¿Puede aceptar la respuesta de @talweiss? Es la solución más actualizada y correcta. –