在cython代码上运行pep8或pylint

Mic*_* WS 11 pep8 pylint cython flake8

有没有办法使用pep8与cython文件?

例如,pep8不适用于运营商.

getline(& line)
Run Code Online (Sandbox Code Playgroud)

产生错误:

E225 missing whitespace around operator
Run Code Online (Sandbox Code Playgroud)

现在,如果我尝试修复它并运行它:

getline( & line)
Run Code Online (Sandbox Code Playgroud)

产生错误:

 E201 whitespace after '('
Run Code Online (Sandbox Code Playgroud)

ksi*_*ndi 5

神经网络库Chainer有一个很方便flake8配置为用Cython:

[flake8]
filename = *.pyx,*.px*
exclude = .eggs,*.egg,build
ignore = E901,E225,E226,E227
Run Code Online (Sandbox Code Playgroud)


mar*_*lli 2

您可以使用cython-lint

安装

$ pip install cython-lint
Run Code Online (Sandbox Code Playgroud)

用作预提交挂钩

请参阅预提交以获取说明

样本.pre-commit-config.yaml

$ pip install cython-lint
Run Code Online (Sandbox Code Playgroud)

命令行示例

$ cython-lint my_file_1.pyx my_file_2.pyx
my_file_1.pyx:54:5: 'get_conversion_factor' imported but unused
my_file_2.pyx:1112:38: 'mod' defined but unused
my_file_3.pyx:4:9: dangerous default value!
my_file_3.pyx:5:9: comma after base type in definition
Run Code Online (Sandbox Code Playgroud)