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接受这个的东西.
任何提示?
我能找到的最好的方法是将pylint传递给一个类列表来忽略这个检查.它仍将对这些类进行其他检查,您只需要在某处维护这些列表:
pylint --ignored-classes=MyModel1,MyModel2 myfile.py
我知道它并不理想,但有一些关于sqlalchemy设置混淆pylint的模型的方式.至少有了这个,你仍然可以检查非orm类.