Я пытался следовать руководству, Создание собственного плагина Flake8 \ | Dunderdo c, чтобы научиться создавать плагин Flake8.
После завершения урока я получил файлы установки и проверки, как показано ниже:
setup.py
import setuptools
setuptools.setup(
name='flake8-picky',
license='MIT',
version='0.0.1',
description='Plugin to comply with my picky standards',
author='Valdir Stumm Junior',
author_email='stummjr@gmail.com',
url='http://github.com/stummjr/flake8-picky',
py_modules=['flake8_picky'],
entry_points={
'flake8.extension': [
'PCK0 = picky_checker:PickyChecker',
],
},
install_requires=['flake8'],
classifiers=[
'Topic :: Software Development :: Quality Assurance',
],
)
picky_checker.py
import ast
class ForbiddenFunctionsFinder(ast.NodeVisitor):
forbidden = ['map', 'filter']
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.issues = []
def visit_Call(self, node):
if not isinstance(node.func, ast.Name):
return
if node.func.id in self.forbidden:
msg = "PCK01 Please don't use {}()".format(node.func.id)
self.issues.append((node.lineno, node.col_offset, msg))
class PickyChecker(object):
options = None
name = 'picky_checker'
version = '0.1'
def __init__(self, tree, filename):
self.tree = tree
self.filename = filename
def run(self):
parser = ForbiddenFunctionsFinder()
parser.visit(self.tree)
for lineno, column, msg in parser.issues:
yield (lineno, column, msg, PickyChecker)
example.py
data = list(range(100))
x = map(lambda x: 2 * x, data)
print(x)
y = filter(lambda x: x % 2 == 0, data)
print(y)
После завершения установки Плагин успешно, я выполнил команду flake8 example.py
и получил следующую ошибку:
flake8.exceptions.FailedToLoadPlugin: Flake8 failed to load plugin "PCK0" due to No module named picky_checker.
Что это за ошибка и как я могу это исправить? Спасибо