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

时间:2010-10-31 03:28:01

标签: python sqlalchemy pylons 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)

我认为将其继承到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接受这个的东西。

任何提示?

1 个答案:

答案 0 :(得分:9)

我能找到的最好的方法是将pylint传递给类列表以忽略此检查。它仍然会对这些类进行其他检查,你只需要在某个地方维护这些列表:

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

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