Як вимкнути помилку 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.