Як вимкнути помилку pep8 у певному файлі?


77

Я пробував з

#:PEP8 -E223

або

# pep8: disable=E223

Я думав, що другий буде працювати, але, здається, не працює.

Ви уявляєте, як я можу з цим впоратися?

Відповіді:


96

Наскільки я знаю, ти не можеш. Ви можете вимкнути помилки або попередження для кожного користувача або для кожного проекту. Дивіться документацію .

Натомість ви можете використати # noqaкоментар у кінці рядка, щоб пропустити цей рядок (див. Патч 136 ). Звичайно, це пропустило б усі помилки PEP8.

Основний автор аргументує проти шуму вихідних файлів , тому запропонував # pep8коментарі не включати.


Зверніть увагу, що існує також nopep8, що є еквівалентом. noqa(що означає « Забезпечення якості» було додано у версії 1.4.1 для підтримки людей, які працюють pyflakesпоруч ізpep8 .


8
Дякую. Але в моєму випадку я не хочу пропускати певний рядок :-( На мою думку, менше забруднення додавати щось на кшталт "# pep8: відключити E221" на початку файлу, ніж вказувати кожен рядок, який потрібно ігнорувати. Але це моя думка! Дякую за відповідь.
Потік

40

Спробуйте поставити # nopep8в кінці рядка (після двох пробілів). Отже, якщо рядок коду:

h=1+2+3+4+5+6+func( "hello","world")

тоді ігнорувати великі помилки pep8 для цього рядка стає:

h=1+2+3+4+5+6+func( "hello","world")  # nopep8

24

Ви можете використовувати --ignoreпрапор, щоб вимкнути згадану вище помилку

pep8 --ignore=E223 file_name.py

за множинні помилки

pep8 --ignore=E223,E501 file_name.py

Для більш глибокого знання інших прапорів ви можете просканувати через http://pep8.readthedocs.org/en/latest/intro.html


1
Це не дає відповіді на запитання (хоча може бути корисним).
Джеппе,

17

Дозвольте додати щось, що, мабуть, було введено після розміщення всіх попередніх відповідей.

Якщо ви використовуєте Flake8, ви можете ігнорувати конкретне порушення, порушене у певному рядку, додавши

# noqa: F401

в кінці рядка, де F401ось приклад коду помилки. Список усіх кодів порушень див. На веб-сайті http://flake8.pycqa.org/en/3.5.0/user/error-codes.html та веб-сторінці https://pycodestyle.readthedocs.io/en/latest/intro.html # коди помилок

Ви також можете ігнорувати всі порушення у цілому файлі, додавши

# flake8: noqa

в будь-якому місці файлу.

Посилання: http://flake8.pycqa.org/en/3.5.0/user/violations.html


3

Ви можете зробити це за допомогою Flake8 разом із https://github.com/jayvdb/flake8-putty


flake8-puttyбезумовно найкращий підхід в цілому - оскільки він дозволяє набагато детальніше контролювати, які речі вимикати для яких файлів.
alecxe

На жаль, не сумісний з flake8 версії 3 і не планує виправляти: github.com/jayvdb/flake8-putty/issues/14
Карл

2

Якщо ви використовуєте Flake8 3.7.0+, ви можете ігнорувати конкретні попередження для цілих файлів, використовуючи цю --per-file-ignoresопцію.

Використання командного рядка:

flake8 --per-file-ignores='project/__init__.py:F401,F403 setup.py:E121'

Це також можна вказати у файлі конфігурації :

[flake8]
per-file-ignores =
    __init__.py: F401,F403
    setup.py: E121
    other/*: W9

0

Це можна зробити, наприклад, за допомогою файлу конфігурації налаштування ( setup.cfg):

[tool:pytest]
pep8ignore =
    *.py E501 W503
    api.py E402                <=============== HERE
    doc/* ALL
pep8maxlinelength = 120
flakes-ignore =
    UnusedImport
filterwarnings =
  ignore::DeprecationWarning
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.