如何在存储库级别禁用PyCharm中的特定PEP8警告?

2024-09-28 01:30:50 发布

您现在位置:Python中文网/ 问答频道 /正文

正在寻找一种方法,如果可能的话,在存储库级别禁用PyCharm中加载的Python项目的特定PEP8警告(即保存存储库提交的配置文件,该文件可以将PEP8配置提示应用于任何用户加载PyCharm中的项目)


在其他开发人员可能使用PyCharm为项目做出贡献的情况下。我个人不使用PyCharm(只是一个文本编辑器),构建/linting是通过各种tox环境执行的。有一些我特别不喜欢的selectPEP8规则,比如在代码的特定区域(例如E305)注入两个空行。虽然可以将linter配置为忽略特定的PEP8规则,并且开发人员可以使用相同的linter配置调用命令(如tox),但是使用PyCharm的开发人员仍然会在他们的环境中看到这些警告。例如:

PyCharm show E305 warning

根据我的经验,问题是开发人员将对实现进行(不希望的)调整,并提交它们以更改请求。虽然开发人员可以dismiss warnings themselves,但我不希望开发人员必须假设/解释项目遵循的PEP8规则(除了CONTRIBUTING文档中可能提到的规则)。此外,虽然可以使用# noqa注释修改源文件,以提示IDE忽略该行上的问题,但我正在寻找一种替代方法来忽略特定的PEP8规则,而不必在整个实现过程中插入各种# noqa提示

例如,正在寻找一种方法来禁用理论.pycharm文件中的所有E305警告,如下所示:

[pycharm]
ignore = E305

Tags: 文件项目方法tox警告环境开发人员规则
2条回答

经过一些额外的调查后,似乎不支持特定于存储库的PEP8警告定制(截至2020-09-23;2020.2版)

IDE使用pycodestyle进行PEP8处理。测试来自pycodestyle's configuration的选项表明,特定于用户的配置将禁用IDE中的各种PEP8提示;但是,目标是避免让用户在这种情况下配置任何东西。虽然pycodestyle表示它还将查看setup.cfgtox.ini,但IDE不会以使用它们的方式调用pycodestyle。检查how the IDE invokes pycodestyle表明它将通过stdin向源内容提供信息。pycodestyle仅基于现有工作目录上提供的输入文件(如果提供)的公共前缀隐式加载受支持的项目特定配置(即setup.cfgtox.ini),不幸的是,pycodestyle在调用项目根目录时不会更改工作目录,无法隐式加载特定于项目的配置

已在其问题跟踪器上创建问题:

PY-44684 | support pycodestyle project-specific configuration settings (pep8) https://youtrack.jetbrains.com/issue/PY-44684

有办法做到这一点,但目前需要在VCS中保留相应的PyCharm项目设置。对于每个报告的pycodestyle.py错误,都有一个专用的快速修复程序“忽略类似于此的错误”,该程序在“PEP 8编码样式冲突”检查的设置中包含相应的错误代码(然后通过其 ignore选项将这些代码直接传递给pycodestyle.py)

Ignore errors like this quickfix

然后,您可以在检查设置中查找和编辑这些代码

Inspection settings

如果配置了每个项目的检查配置文件,这些设置将保存在.idea/inspectionProfiles/Your_Profile_Name.xml中,并且可以通过这种方式与团队或外部参与者共享

显然,如果您不想在存储库中公开特定于IDE的配置文件,尤其是在有更好的、与工具无关的地方提供这些首选项时,这是行不通的。我同意,所报道的PY-44684是一个合法的问题

相关问题 更多 >

    热门问题