Pregunta

Tengo una aplicación Torres de alta tensión que estoy usando modelos declarativos SQLAlchemy. Con el fin de hacer que el código un poco más limpia agrego un .query en la Base SA y heredar todos mis modelos a partir de eso.

Así que en mi app.model.meta TENGO

Base = declarative_base()
metadata = Base.metadata
Session = scoped_session(sessionmaker())

Base.query = Session.query_property(Query)

creo que heredan esta en app.model.mymodel y la declara como un hijo de meta.Base. Esto me permite escribir mis consultas como

mymodel.query.filter(mymodel.id == 3).all()

El problema es que no está viendo pylint .query como un atributo válido de mis modelos.

E:102:JobCounter.reset_count: Class 'JobCounter' has no 'query' member

Es evidente que este error es por todo el lugar, ya que se produce en cualquier modelo de hacer cualquier consulta. No quiero que acaba de saltar el error, ya que podría señalar algo por el camino de clases no ORM, pero debo estar perdiendo algo de pylint a aceptar esto.

¿Alguna pista?

¿Fue útil?

Solución

mejor que pude encontrar para esto es para pasar pylint una lista de clases de ignorar esta comprobación en. Todavía va a hacer otras comprobaciones para estas clases, que sólo tendrá que mantener una lista de éstos en alguna parte:

pylint --ignored-classes=MyModel1,MyModel2 myfile.py

Yo sé que no es lo ideal, pero hay algo en la forma en que los conjuntos SQLAlchemy hasta los modelos que confunde pylint. Al menos con este sigue recibiendo el cheque de clases no ORM.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top