我有一个Pylons应用程序,我正在使用SqlAlchemy声明性模型。为了使代码更清晰,我将一个.query添加到SA Base并继承我的所有模型。
所以在我的app.model.meta中我有
Base = declarative_base()
metadata = Base.metadata
Session = scoped_session(sessionmaker())
Base.query = Session.query_property(Query)
我认为将其继承到app.model.mymodel并将其声明为meta.Base的子代。这让我可以将查询编写为
mymodel.query.filter(mymodel.id == 3).all()
问题是pylint没有看到.query作为我模型的有效属性。
E:102:JobCounter.reset_count: Class 'JobCounter' has no 'query' member
显然,这个错误遍布整个地方,因为它发生在任何进行任何查询的模型上。我不想只是跳过错误,因为它可能会指出非orm类的一些事情,但我必须错过pylint接受这个的东西。
任何提示?
答案 0 :(得分:9)
我能找到的最好的方法是将pylint传递给类列表以忽略此检查。它仍然会对这些类进行其他检查,你只需要在某个地方维护这些列表:
pylint --ignored-classes=MyModel1,MyModel2 myfile.py
我知道这不是理想的,但有一些关于sqlalchemy设置混淆pylint的模型的方式。至少有了这个,你仍然可以检查非orm类。