2016-06-03 10 views
0

Если я создаю файл test.py со следующим плохо отформатированным содержанием:flake8 не сообщает о линиях, которые слишком долго

import re 
long_string = "foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo" 
class Foo(): 
    pass 

и запустить flake8 на файл из командной строки, как это:

$ flake8 --max-line-length=79 test.py 

две ошибки сообщаются только:

test.py:1:1: F401 're' imported but unused 
test.py:3:1: E302 expected 2 blank lines, found 0 

max-line-length Нарушение на второй строке не сообщается.

совершенно случайно (я тестировал, если любой из опций команды будет соблюден), я обнаружил, что если я добавить игнорирования опции, как это:

$ flake8 --max-line-length=79 --ignore=E302 test.py 

Тогда нарушение длина линии сообщил:

test.py:1:1: F401 're' imported but unused 
test.py:2:80: E501 line too long (97 > 79 characters) 

Я на Ubuntu 16.04 и мой flake8 информация о версии является:

Когда я опубликовал a related questio n на сайте Exchange Emacs Stack (я думал, что проблема была с пакетом Emacs изначально), один из пользователей указал, что flake8 2.5.4 requires a lower version of pyflakes. Однако установка flake8 через apt или pip автоматически устанавливает эту конкретную версию pyflakes в качестве зависимости, и мне не удалось получить более старую версию pyflakes, чтобы узнать, разрешает ли она проблему (может быть, это другой вопрос вообще).

Я делаю что-то неправильно здесь, или это ошибка?

ответ

4

E501 где-то игнорируется. Это либо в ~/.config/flake8, либо в местном каталоге в tox.ini, setup.cfg, или .flake8. Где-то в одном из этих файлов вы, вероятно, найти что-то похожее на: (. Вы можете увидеть его среди других кодов ошибок тоже)

[flake8] 
ignore = E501 

Это не ошибка в Flake8, и почти конечно, что-то в вашей среде, вызывающее это. Причина, по которой вы видите E501, заключается в том, что вы переопределяете настройки файла конфигурации, предоставляя --ignore в командной строке.

+1

Ну, теперь я чувствую себя глупо. Я добавил 'ignore = E501' в мой' ~/.config/flake8' на моем предыдущем задании. Недавно я обновил свой конфиг, добавив 'max-line-length = 80', но сохранил строку' ignore', не понимая, что соответствует E501' ... Я предполагаю тогда, что когда я добавил '--ignore = E302 'как параметр командной строки, я был этим переопределением опций' ignore' в '~/.config/flake8'. Спасибо за помощь! – elethan

+0

Это именно то, что вы сделали. Я был в спешке, когда я ответил раньше и хотел бы упомянуть об этом. –

 Смежные вопросы

  • Нет связанных вопросов^_^