Flake8:
python -m pip install flake8
Чтобы начать использовать Flake8 , откройте интерактивную оболочку и запустите:
flake8 path/to/code/to/check.py
# or
flake8 path/to/code/
Если вы хотите видеть только экземпляры определенного предупреждения или ошибки, вы можете выбрать эту ошибку следующим образом:
flake8 --select E123,W503 path/to/code/
Если вы хотите игнорировать только одно конкретное предупреждение или ошибку:
flake8 --ignore E24,W504 path/to/code/
Показать версию Flake8
flake8 --version
Выведите общее количество ошибок.
flake8 --count dir/
Список игнорируемых кодов
flake8 --ignore=E121,E123 dir/
flake8 --ignore=E24,E704 dir/
flake8 --disable-noqa dir/
Добавив в файл# flake8: noqa
example = lambda: 'example' # noqa: E731
Подсчитайте количество появлений каждого кода ошибки / предупреждения и распечатайте отчет.
flake8 --statistics
E1 Отступ
E101 отступ содержит смешанные пробелы и табуляции
E111 отступ не кратен четырем
E112 ожидается блок с отступом
E113 неожиданный отступ
E114 отступ не кратен четырем (комментарий)
E115 ожидается блок с отступом (комментарий)
E116 неожиданный отступ (комментарий)
E117 с чрезмерным отступом
E121 (* ^) линия продолжения с нижним отступом для висячего отступа
E122 (^) Продолжение строки отсутствует или имеет отступ
E123 (*) закрывающая скобка не соответствует отступу строки открывающей скобки
E124 (^) закрывающая скобка не соответствует визуальному отступу
E125 (^) строка продолжения с тем же отступом, что и следующая логическая строка
E126 (* ^) линия продолжения с избыточным отступом для висячего отступа
E127 (^) линия продолжения с избыточным отступом для визуального отступа
E128 (^) линия продолжения с недостаточным отступом для визуального отступа
E129 (^) строка с визуальным отступом с тем же отступом, что и следующая логическая строка
E131 (^) линия продолжения не выровнена для висячего отступа
E133 (*) в закрывающей скобке отсутствует отступ
E2 Пробел
E201 пробел после '('
E202 пробел перед ')'
E203 пробел перед ':'
E211 пробел перед '('
E221 несколько пробелов перед оператором
E222 несколько пробелов после оператора
E223 вкладка перед оператором
E224 табуляция после оператора
E225 отсутствует пробел вокруг оператора
E226 (*) пропущенный пробел вокруг арифметического оператора
E227 отсутствие пробелов вокруг побитового оператора или оператора сдвига
E228 отсутствует пробел вокруг оператора по модулю
E231 пропущенные пробелы после ',', ';' или ':'
E241 (*) несколько пробелов после ','
E242 (*) табуляция после ','
E251 неожиданные пробелы вокруг ключевого слова / параметра равно
E261 не менее двух пробелов перед встроенным комментарием
E262 встроенный комментарий должен начинаться с символа '#'
E265 комментарий блока должен начинаться с символа '#'
E266 слишком много ведущих '#' для комментария блока
E271 несколько пробелов после ключевого слова
E272 несколько пробелов перед ключевым словом
E273 табуляция после ключевого слова
E274 табуляция перед ключевым словом
E275 отсутствует пробел после ключевого слова
E3 Пустая строка
E301 ожидается 1 пустая строка, найдено 0
E302 ожидается 2 пустые строки, найдено 0
E303 слишком много пустых строк (3)
E304 после декоратора функции найдены пустые строки
E305 ожидается 2 пустые строки после окончания функции или класса
E306 ожидалась 1 пустая строка перед вложенным определением
E4 Импортировать
E401 множественный импорт в одной строке
E402 импорт на уровне модуля не в верхней части файла
E5 Длина линии
E501 (^) строка слишком длинная (82> 79 символов)
E502 обратная косая черта между скобками повторяется
E7 Заявление
E701 несколько операторов в одной строке (двоеточие)
E702 несколько операторов в одной строке (точка с запятой)
E703 инструкция заканчивается точкой с запятой
E704 (*) несколько операторов в одной строке (по умолчанию)
E711 (^) сравнение с None должно быть 'if cond is None:'
E712 (^) сравнение с True должно быть 'if cond is True:' или 'if cond:'
E713 тест на членство должен быть "не в"
E714 проверка на идентичность объекта должна быть "не является"
E721 (^) не сравнивайте типы, используйте isinstance ()
E722 не используйте bare except, вместо этого укажите исключение
E731 не назначайте лямбда-выражение, используйте def
E741 не используйте переменные с именами 'l', 'O' или 'I'
E742 не определяйте классы с именами 'l', 'O' или 'I'
E743 не определяйте функции с именами 'l', 'O' или 'I'
E9 Время выполнения
E901 SyntaxError или IndentationError
E902 IOError
W1 Предупреждение об отступе
W191 отступ содержит табуляцию
W2 Предупреждение о пробеле
W291 конечный пробел
W292 нет новой строки в конце файла
W293 пустая строка содержит пробелы
W3 Предупреждение о пустой строке
W391 пустая строка в конце файла
W5 Предупреждение о разрыве строки
W503 (*) разрыв строки перед бинарным оператором
W504 (*) разрыв строки после бинарного оператора
W505 (* ^) строка документа слишком длинная (82> 79 символов)
W6 Предупреждение об устаревании
W601 .has_key () устарел, используйте 'in'
W602 устаревшая форма вызова исключения
W603 '<>' устарело, используйте '! ='
W604 обратные кавычки устарели, используйте 'repr ()'
W605 недопустимая escape-последовательность 'x'
W606 async и await - зарезервированные ключевые слова, начиная с Python 3.7.