pylint 1.4 informa E1101 (sin miembro) en todas las extensiones C

Hemos sido fanáticos de mucho tiempo depylint. Su análisis estático se ha convertido en una parte crítica de todos nuestros proyectos de Python y ha ahorrado toneladas de tiempo persiguiendo errores oscuros. Pero después de actualizar de 1.3 -> 1.4, casi todas las extensiones compiladas de c dan como resultado errores E1101 (sin miembros).

Proyectos que anteriormente se ejecutaban perfectamente limpiospylint 1.3 ahora se queja de casi todos los miembros de extensión C con E1101. Nos hemos visto obligados a deshabilitar los errores E1101, pero esto resta materialmente a la utilidad depylint.

Por ejemplo, este uso perfectamente válido dellxml paquete

r"""valid.py: demonstrate pylint 1.4 error"""
from lxml import etree
print etree.Element('mydoc')

Ejecute esto a través depylinte informa:

$ pylint -rn valid.py
No config file found, using default configuration
************* Module valid
E:  3, 6: Module 'lxml.etree' has no 'Element' member (no-member)

Pero es perfectamente válido:

$ python valid.py
<Element mydoc at 7fddf67b1ba8>

Aquí es donde se pone realmente raro. Un pequeño puñado de extensiones C parece funcionar bien a través depylint, p.ej.:

r"""valid2.py: this one works fine"""
import sqlite3
print sqlite3.version

$ pylint -rn valid2.py
No config file found, using default configuration

Mi pregunta es, ¿alguien más ha sido testigo de esto? Y si es así, ¿estaría dispuesto a compartir su solución / solución?

Hemos experimentado tratando de crear complementos para suprimir estas advertencias (http://docs.pylint.org/plugins.html#enter-plugin), pero tenemos dificultades para hacer cara o cruz de los documentos, y elastroid La clase base es súper compleja y ha desafiado nuestros intentos de asimilarla.

Para obtener puntos de bonificación reales (y nuestra gratitud eterna) nos encantaría entender qué cambió enpylint. Estaremos encantados de corregir el código (o al menos publicar un documento de mejores prácticas para autores de extensiones C) que satisfagapylint.

Detalles de la plataforma

$ pylint --version
No config file found, using default configuration
pylint 1.4.0,
astroid 1.3.2, common 0.63.2
Python 2.7.5 (default, Jul  1 2013, 18:09:11)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)]

Respuestas a la pregunta(4)

Su respuesta a la pregunta