Как мне заставить flake8 отловить эту ошибку? - PullRequest
0 голосов
/ 18 июня 2020

В этой тестовой программе:

def func():
    return 42

func(1, 2, 3)

pylint -E он говорит:

E1121: Too many positional arguments for function call (too-many-function-args)

Но flake8 не сообщает об ошибках или предупреждениях. Это огромная очевидная ошибка, почему flake8 не улавливает это? Нужны ли мне определенные флаги?

pylint 2.5.2

flake8 3.8.2 (pyflakes 2.2.0)

Python 3.8.1 на Ma c

1 Ответ

2 голосов
/ 19 июня 2020

PyFlakes (который использует flake8) не выполняет этот тип проверки.

Я подал проблему с проектом PyFlakes и получил быстрый ответ: «pyflakes работает полностью статически и не выполнять какой-либо анализ типов (он не следует за импортом или вызовом функций и т. д. c.). этот дизайн выбран для того, чтобы pyflakes оставался быстрым и простым ... Если вы ищете анализ типов, вам лучше всего использовать средство проверки типов, такое как mypy, или инструмент, такой как pylint ».

Я спросил, действительно ли количество аргументов является« анализом типов », и они сказали:« в python форма вызываемого объекта - это его тип (число параметров, kwonly, posonly, default, collecting, et c.) "

...