Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将备用flake8规则应用于文件子集_Python_Tox_Flake8 - Fatal编程技术网

Python 将备用flake8规则应用于文件子集

Python 将备用flake8规则应用于文件子集,python,tox,flake8,Python,Tox,Flake8,我有一个项目,我使用tox进行测试,它运行8个测试。我想对我的tests目录应用不同于其他目录的flake8配置;我希望在测试中忽略E402,因为在导入要测试的模块之前,我正在处理sys.path flake8配置语法只允许将一个配置应用于包含/排除匹配的文件,因此我添加了/tests/.flake8,以添加仅应用于这些文件的配置 /tox.ini [tox] envlist = lint, py27, py36 [testenv] commands = coverage run --

我有一个项目,我使用tox进行测试,它运行8个测试。我想对我的tests目录应用不同于其他目录的flake8配置;我希望在测试中忽略E402,因为在导入要测试的模块之前,我正在处理
sys.path

flake8配置语法只允许将一个配置应用于包含/排除匹配的文件,因此我添加了
/tests/.flake8
,以添加仅应用于这些文件的配置

/tox.ini

[tox]
envlist = lint, py27, py36

[testenv]
commands =
    coverage run --source=myModule -a setup.py test

[testenv:lint]
basepython = python3
ignore_errors = True
deps =
    -r{toxinidir}/requirements_test.txt
commands =
    flake8
    pylint myModule
    pydocstyle myModule tests

[flake8]
count = true
statistics = True
/tests/.flake 8

[flake8]
ignore = E402
对于my
tox.ini
文件中的flake8选项,dotfile总是被忽略。在
tox.ini
文件中没有选项的情况下,flake8从命令行运行时使用该点文件,但在tox运行时忽略该点文件


似乎无法将不同的flake8配置应用于同一项目下的不同文件集。我是否在配置语法中遗漏了一些可以让我在这里做我想做的事情的东西?

您可以尝试运行
flake8
两次-一次使用不包括
tests/
的全局配置,第二次在
tests/
中运行:

commands =
    flake8 --exclude=tests
    cd tests && flake8

从3.7.0版开始,flake8将显示一个执行所需操作的标志:
每个文件忽略
。要在配置文件中使用它,请执行以下操作:

[flake8]
per-file-ignores =
    tests/*: E402
也可以在命令行上应用它,方法是在
flake8
调用中添加如下标志:

--per-file-ignores=tests/*.py:E402

点文件由从命令行运行的flake8使用。如何运行
flake8
?您是否通过tox中的lint环境执行cd测试。不,不是cd刻录到
测试中。。从项目的根开始。我们的想法是删除项目中的所有文件,但将稍微不同的规则应用于
测试
,而不是实际的解决方案