如何以编程方式访问 Pep8 错误代码列表

How to get programatic access to list of Pep8 Error codes

我很难找到如何获取 pep8 错误代码列表和一些 table 或函数来查找它们的消息或属性。

这里有一个列表: https://gist.github.com/mjgreen/bda13692b696669cb3fcd5a0fb682958

我已经尝试过 pep8、pycodestyle、flake8 和 autoflake8,但我并不走运。无论以何种方式获取这些内容,都不会像我想象的那样存在。 (我期待一条硬编码消息 table)。我可能只是太笨了。我的想法是 flake8 必须有办法获取它们,它会打印出来。

如何 import flake8 然后生成一些将错误代码映射到错误消息/和/或属性的字典?

如果您正在寻找“可能从 flake8 插件发出的代码”,鉴于您当前的插件集,没有办法知道所有这些

插件注册的工作方式是将插件可能发出的错误代码的前缀交给flake8——然后插件可以自由发出该范围内的任何内容(并且消息的任意字符串)

该插件也可以在其前缀之外自由发出错误代码,但它们会被忽略(这可能会在未来出现错误,我还没有完全确定这里的正确行为是什么)

收集这些前缀相对简单(尽管您可能还想考虑 flake8:local-plugins):

for dist in importlib.metadata.distributions():
    for ep in dist.entry_points or ():
        if ep.group == 'flake8.extension':
            print(ep.name)

这里注意pycodestyle这里是特例(由于历史原因)


pycodestyle(以前命名为 pep8)- 实现“pep8”错误代码的工具也不提供对代码和消息的编程访问(它们内联在生成的函数中错误)

因此,任何此类代码和消息列表都是非官方的,并且可能已过时/不正确


免责声明:我是当前的 flake8 维护者,我是 pycodestyle 的维护者之一