2015-06-07 2 views
5

Я использую SublimePythonIDE, который использует pyflakes. Есть некоторые ошибки, которые я хотел бы, чтобы это игнорировать, как:Как пурпуры игнорировать некоторые ошибки?

(E501) line too long 
(E101) indentation contains mixed spaces and tabs 

, Что самый простой способ сделать это?

+1

Самый простой способ избежать этих ошибок. – ZdaR

+0

@ZdaR Мне нравится длинные строки – user3571278

+5

Do ** not ** ignore 'E101', так как вы почти наверняка получите ошибки при попытке запустить свой код. [PEP-8] (https://www.python.org/dev/peps/pep-0008/#indentation) настоятельно рекомендует использовать 4 пробела. – MattDMo

ответ

7

Настройка плагина в возвышенном почти всегда использует ту же процедуру: Нажмите на Preferences -> Package Settings -> Plugin Name -> Settings-Default, чтобы открыть (неожиданное удивление) настройки по умолчанию. Этот файл обычно содержит все возможные настройки для плагина, как правило, вместе с комментариями, объясняющими, что каждый делает. Этот файл не может быть изменен, поэтому для настройки любых настроек, которые вы открываете Preferences -> Package Settings -> Plugin Name -> Settings-User. Обычно я копирую все содержимое настроек по умолчанию в файл пользователя, затем настраиваю по желанию, а затем сохраняю и закрываю.

В случае данного конкретного плагина, в то время как он использует pyflakes (как рекламируется), он также использует pep8, стиль проверки, который использует то же руководство PEP-8 официального стиля Python я упомянул в комментариях. Это знание полезно, потому что pyflakes не использует конкретные коды ошибок, а pep8.

Итак, рассмотрев файл настроек плагина, мы найдем опцию "pep8_ignore", а также "pyflakes_ignore". Поскольку error codes приходят из pep8, мы будем использовать этот параметр:

"pep8_ignore": [ "E501", // line too long 
       "E303", // too many blank lines (3) 
       "E402" // module level import not at top of file 
       ] 

Пожалуйста, обратите внимание, что коды E121, E123, E126, E133, E226, E241, E242, E704 и игнорируются по умолчанию, потому что они не являются правила единогласно приняты, а PEP 8 не применяет их.


Относительно длинные строки:

Иногда длинные очереди неизбежны. PEP-8's recommendation из 79-символьных строк базируется в древней истории, когда терминальные мониторы имели только 80 широкоэкранных экранов, но по-прежнему продолжается по сей день по нескольким причинам: он обратно совместим со старым кодом, некоторое оборудование по-прежнему используется с эти ограничения выглядят хорошо, это упрощает работу на более широких дисплеях, чтобы несколько файлов открывались бок о бок, и это читаемо (то, что вы всегда должны иметь в виду при кодировании). Если вы предпочитаете ограничение на 90 или 100 символов, это нормально (если ваша команда/проект согласен с ним), но используйте его последовательно и помните, что другие могут использовать разные значения.Если вы хотите установить pep8 на большее значение, чем его значение по умолчанию 80, просто измените настройку "pep8_max_line_length".

Существует множество способов уменьшить количество символов линий, чтобы оставаться в пределах лимита, или разделить длинные строки на несколько более коротких. В случае вашего примера в комментариях:

flag, message = FacebookUserController.AddFBUserToDB(iOSUserId, fburl, fbsecret, code) 

вы можете сделать несколько вещей:

# shorten the module/class name 
fbuc = FacebookUserController 
# or 
import FacebookUserController as fbuc 
flag, message = fbuc.AddFBUserToDB(iOSUserId, fburl, fbsecret, code) 
# or eliminate it all together 
from FacebookUserController import AddFBUserToDB 
flag, message = AddFBUserToDB(iOSUserId, fburl, fbsecret, code) 
# split the function's arguments onto separate lines 
flag, message = FacebookUserController.AddFBUserToDB(iOSUserId, 
                fburl, 
                fbsecret, 
                code) 
# There are multiple ways of doing this, just make sure the subsequent 
# line(s) are indented. You don't need to escape newlines inside of 
# braces, brackets, and parentheses, but you do need to outside of them. 
1

Как и другие, возможно, прислушайтесь к предупреждениям. Но в этих случаях вы не можете добавить # NOQA в конец строки. Обратите внимание на два пробела перед #, поскольку это тоже вещь стиля, о которой будут жаловаться.

И если pyflakes завернут в flake8, что позволяет игнорировать определенные ошибки.

Например, в файле в проекте положить или добавить в tox.ini:

[flake8] 
exclude = .tox,./build 
filename = *.py 
ignore = E501,E101 

Это возможно дубликат с How do I get Pyflakes to ignore a statement?

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