2

pylint -E作为 Python 项目测试的一部分运行,以确保错误不会蔓延到未经测试的代码中。一般来说,这工作得很好。但最近我遇到了voluptuous和 pylint 的问题。

问题是 pylint 认为 voluptuous Schemas 返回的值是列表,而事实并非如此。这是一个玩具程序:

import voluptuous

MyType = voluptuous.Schema({
    'q': str
})


def foo(bar):
    bar = MyType(bar)
    q = bar.get('q')
    print q


foo({'q': '1324'})

它运行得很好:

$ python toy.py
1234

但是,pylint 会标记.get()调用:

$ pylint -E toy.py
No config file found, using default configuration
************* Module toy
E: 11, 8: Instance of 'list' has no 'get' member (no-member)

我怎样才能让这个程序通过pylint -E

4

1 回答 1

1

一种选择是完全忽略该voluptuous模块,例如

$ pylint -E --ignored-modules=voluptuous toy.py
(passes)

不过,如果能更好地pylint理解就好voluptuous了。

于 2015-03-06T04:58:59.790 回答