gpt4 book ai didi

python - Flake8 无法在自定义格式化程序上加载插件 "N8"

转载 作者:太空宇宙 更新时间:2023-11-03 15:37:36 24 4
gpt4 key购买 nike

我想为类和函数名称构建自定义格式化程序。

根据这个doc它表示命名约定属于 N8** 警告代码。

关注 this 后教程 sublink 的帮助下这是结果代码

setup.py

from __future__ import with_statement
import setuptools

requires = [
"flake8 > 3.0.0",
]

setuptools.setup(
name="flake8_example",
license="MIT",
version="0.1.0",
description="our extension to flake8",
author="Me",
author_email="example@example.com",
url="https://gitlab.com/me/flake8_example",
packages=[
"flake8_example",
],
install_requires=requires,
entry_points={
'flake8.extension': [
'N8 = flake8_example:Example',
],
},
classifiers=[
"Framework :: Flake8",
"Environment :: Console",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 3",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Software Development :: Quality Assurance",
],
)

flake8_example.py

from flake8.formatting import base

class Example(base.BaseFormatter):
"""Flake8's example formatter."""

def format(self, error):
return 'Example formatter: {0!r}'.format(error)

我通过运行pip install --editable 来设置它。

然后为了测试它,我运行了 flake8 --format=example main.py

它抛出此错误:

flake8.exceptions.FailedToLoadPlugin: Flake8 failed to load plugin "N8" due to 'module' object has no attribute 'Example'.

最佳答案

因此,如果您尝试编写格式化程序,您需要更仔细地阅读文档。在 registering文档的一部分说:

Flake8 presently looks at three groups:

  • flake8.extension
  • flake8.listen
  • flake8.report

If your plugin is one that adds checks to Flake8, you will use flake8.extension. If your plugin automatically fixes errors in code, you will use flake8.listen. Finally, if your plugin performs extra report handling (formatting, filtering, etc.) it will use flake8.report.

(强调我的。)

这意味着您的setup.py应该如下所示:

entry_points = {
'flake8.report': [
'example = flake8_example:Example',
],
}

如果您的setup.py正确安装了您的软件包,然后运行

flake8 --format=example ...

应该可以正常工作。然而,您看到的异常是由于该模块没有名为 Example 的类。您应该调查packages是否会选择单个文件模块,或者是否需要重组您的插件,使其看起来像:

flake8_example/
__init__.py
...

这可能就是您的 setup.py 无法正常工作的原因。

关于python - Flake8 无法在自定义格式化程序上加载插件 "N8",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42415838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com