无法获取pylint以在pylons/SA模型中查找继承的方法

Ric*_*ick 12 python pylons sqlalchemy pylint

我有一个Pylons应用程序,我正在使用SqlAlchemy声明模型.为了使代码更清晰,我将一个.query添加到SA Base并继承我的所有模型.

所以在我的app.model.meta中我有

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

Base.query = Session.query_property(Query)
Run Code Online (Sandbox Code Playgroud)

我认为将其继承到app.model.mymodel并将其声明为meta.Base的子代.这让我可以把我的查询写成

mymodel.query.filter(mymodel.id == 3).all()
Run Code Online (Sandbox Code Playgroud)

问题是pylint没有看到.query作为我模型的有效属性.

E:102:JobCounter.reset_count: Class 'JobCounter' has no 'query' member
Run Code Online (Sandbox Code Playgroud)

显然,这个错误遍布整个地方,因为它发生在任何进行任何查询的模型上.我不想只是跳过错误,因为它可能会指出非orm类的一些事情,但我必须错过pylint接受这个的东西.

任何提示?

Ada*_*ner 8

我能找到的最好的方法是将pylint传递给一个类列表来忽略这个检查.它仍将对这些类进行其他检查,您只需要在某处维护这些列表:

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

我知道它并不理想,但有一些关于sqlalchemy设置混淆pylint的模型的方式.至少有了这个,你仍然可以检查非orm类.

  • 我得出了相同的结论,但我所做的是将generated-members标志用于pylint.我最终创建了一个pylintrc,它与每个项目一起检入git并添加如下:generated-members = commit,query,add,delete (2认同)