python - 如何在存储库级别禁用 PyCharm 中的特定 PEP8 警告?
问题描述
寻找一种方法,如果可能的话,在存储库级别为在 PyCharm 中加载的 Python 项目禁用特定的 PEP8 警告(即保存一个存储库提交的配置文件,该文件可以将 PEP8 配置提示应用于在 PyCharm 中加载项目的任何用户)。
在其他开发人员可能使用 PyCharm 为项目做出贡献的情况下。我个人自己不使用 PyCharm(只是一个文本编辑器),并且构建/linting 是通过各种 tox 环境执行的。有一些我特别不喜欢的选择PEP8规则,例如在代码的特定区域(例如E305)注入两个空行的推广。虽然 linter 可以配置为忽略特定的 PEP8 规则,并且开发人员可以调用具有tox
相同 linter 配置的命令(如 ),但使用 PyCharm 的开发人员仍将在其环境中看到这些警告。例如:
我遇到的问题是开发人员将对实现进行(不希望的)调整,并提交它们以更改拉取请求。虽然开发人员可以自行解除警告,但我不希望开发人员必须假设/解释项目遵循的 PEP8 规则(除了文档中可能提到的CONTRIBUTING
内容)。此外,虽然可以使用# noqa
注释修改源文件以提示 IDE 忽略该行的问题,但我正在寻找一种替代方法来忽略特定的 PEP8 规则,而不会# noqa
在整个实现过程中添加各种提示。
例如,寻找一种方法来禁用E305
理论文件中的所有警告,.pycharm
如下所示:
[pycharm]
ignore = E305
解决方案
经过一些额外的调查,似乎不支持(截至 2020 年 9 月 23 日;v2020.2)存储库特定的 PEP8 警告自定义。
IDEpycodestyle
用于 PEP8 处理。从pycodestyle 的配置中测试选项表明,用户特定的配置将禁用 IDE 中的各种 PEP8 提示;但是,目标是避免让用户在这种情况下配置任何内容。虽然 pycodestyle 表示它也会查看setup.cfg
and tox.ini
,但 IDE 不会以某种方式调用 pycodestyle 来使用它们。检查IDE 如何调用 pycodestyle表明它将提供源的内容stdin
以获取信息。pycodestyle 仅隐式加载支持的项目特定配置(即setup.cfg
或tox.ini
) 基于在现有工作目录上提供的输入文件(如果提供)的公共前缀 pycodestyle 被调用 -- 不幸的是,由于 PyCharm 在将 pycodestyle 调用到项目的根目录时不会更改工作目录,因此项目特定的配置不能隐含加载。
在他们的问题跟踪器上创建了一个问题:
PY-44684 | 支持 pycodestyle 项目特定的配置设置 (pep8) https://youtrack.jetbrains.com/issue/PY-44684
推荐阅读
- laravel - Laravel Fortify - 动态启用功能
- c - 如何为 UART 传输设置消息的开始字节
- json - powersehll JSON 解析以获取属性名称
- git - Github 上的项目架构
- amazon-web-services - 从 Terraform 中的模块集合中读取
- php - Wordpress wp_schedule_event 不会触发
- android - 在Android中写入文件时如何正确使用锁?
- javascript - 本地化日期-fns
- javascript - Vuex | 能够在突变之外进行更新
- c# - 当“SizeChanged”事件被激活时,矩形不会改变它的位置