Линтер | Python | CodeBasics
Мы уже научились писать простые программы, и поэтому можно немного поговорить о том, как писать их правильно.
Код нужно оформлять определенным образом, чтобы он был понятным и простым в поддержке. Существуют специальные наборы правил, которые описывают различные аспекты написания кода — их называют стандартами кодирования. В Python стандарт один — PEP8. Он отвечает практически на все вопросы о том, как оформлять ту или иную часть кода. Этот документ содержит все правила, которых нужно придерживаться. Новичкам мы советуем завести привычку заглядывать в стандарт PEP8 и писать код по нему.
Сегодня не нужно помнить все правила из стандарта, потому что существуют специальные программы, которые проверяют код автоматически и сообщают о нарушениях. Такие программы называются линтерами. Они проверяют код на соответствие стандартам. В Python их достаточно много, и наиболее популярный из них — flake8.
Взгляните на пример:
result = 1+ 3
Линтер будет ругаться на нарушение правила: E225 missing whitespace around operator. По стандарту, оператор +
всегда должен отделяться пробелами от операндов.
Выше мы увидели правило E225 — это одно из большого количества правил. Другие правила описывают отступы, названия, скобки, математические операции, длину строчек и множество иных аспектов. Каждое отдельное правило кажется неважным и мелким, но вместе они составляют основу хорошего кода. Список всех правил flake8 доступен в этой документации.
Вы уже знакомы с линтером, потому что в практических заданиях платформа Хекслета проверяет ваш код с помощью него. Скоро вы начнете использовать его и за пределами Хекслета, когда будете реализовывать учебные проекты. Вы настроите линтер, и он будет проверять код уже в реальной разработке и сообщать вам о нарушениях.
Задание
Выведите на экран результат следующего вычисления: «разница между пятью в квадрате и произведением трёх и семи». Напишите код так, чтобы каждый оператор отделялся от операндов пробелами.
Упражнение не проходит проверку — что делать? 😶Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя 🤔В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно 🙄Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Полезное
PEP8
flake8
←Предыдущий
Следующий→Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics
AUR (en) — python-pytest-pep8
العربية Asturianu Català Český Dansk Deutsch Ελληνικά English Español Español (Latinoamérica) Suomi Français עברית Hrvatski Magyar Italiano 日本語 Norsk Nederlands Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Srpski Türkçe Українська 简体中文 正體中文
- AUR Home
- Packages
- Register
- Login
Search Criteria
Enter search criteriaSearch by Name, DescriptionName OnlyPackage BaseExact NameExact Package BaseKeywordsMaintainerCo-maintainerMaintainer, Co-maintainerSubmitter
Keywords
Out of Date AllFlaggedNot Flagged
Sort by NameVotesPopularityVotedNotifyMaintainerLast modified
Sort order AscendingDescending
Per page 50100250
Package Details: python-pytest-pep8 1.
0.6-7Dependencies (3)
- python-pep8
- python-pytest-cache
- python-setuptools (make)
Required by (1)
- python-pytest-flakes (check)
Sources (1)
- https://pypi. org/packages/source/p/pytest-pep8/pytest-pep8-1.0.6.tar.gz
pep8 · PyPI
pep8 — проверка руководства по стилю Python
pep8 — это инструмент для проверки кода Python на соответствие некоторым стилям. соглашения в PEP 8.
Характеристики
Архитектура плагинов: добавление новых проверок очень просто.
Анализируемый вывод: Перейти к местоположению ошибки в вашем редакторе.
Маленький: всего один файл Python, требуется только stdlib. Вы можете использовать только файл pep8.py для этой цели.
Поставляется с комплексным набором тестов.
Установка
Вы можете установить, обновить и удалить pep8.py с помощью следующих команд:
$ pip установить pep8 $ pip установить --обновить pep8 $ pip удалить pep8
Также есть пакет для Debian/Ubuntu, но он не всегда Последняя версия.
Пример использования и вывода
$ pep8 --first optparse. py optparse.py:69:11: E401 множественный импорт в одной строке optparse.py:77:1: E302 ожидал 2 пустые строки, нашел 1 optparse.py:88:5: E301 ожидал 1 пустую строку, нашел 0 optparse.py:222:34: W602 устаревшая форма вызова исключения optparse.py:347:31: пробел E211 перед '(' optparse.py:357:17: пробел E201 после '{' optparse.py:472:29Импорт обычно должен быть на отдельных строках. Хорошо: импортировать os\nimport sys E401: импорт системы, ОС
Или вы можете отобразить, как часто обнаруживалась каждая ошибка:
$ pep8 --statistics -qq Python-2.5/Lib 232 E201 пробел после '[' 599 E202 пробел перед ')' 631 E203 пробел перед ',' 842 E211 пробел перед '(' 2531 E221 несколько пробелов перед оператором 4473 E301 ожидал 1 пустую строку, нашел 0 4006 E302 ожидал 2 пустые строки, нашел 1 165 E303 слишком много пустых строк (4) 325 E401 множественный импорт в одной строке 3615 Слишком длинная строка E501 (82 символа) 612 W601 .has_key() устарел, используйте 'in' 1188 W602 устаревшая форма вызова исключения
Ссылки
Читать документацию
Разветвите меня на GitHub
Список изменений
1.
7.1 (2017-10-22)Изменения:
1.7.0 (12 января 2016 г.)
Объявления:
Изменения:
Отменено исправление в #368, «параметры, передаваемые в командной строке, являются только принято». Это имеет много непредвиденных последствий в pep8 и flake8. и должен быть переработан, когда у меня будет больше времени.
Добавлена поддержка Python 3.5. (Выпуск № 420 и № 459)
Добавлена поддержка разбора многострочного параметра config_file. (выпуск № 429)
Улучшен разбор параметров. (выпуски № 420 и № 456)
Ошибки:
1.6.2 (15 февраля 2015 г.)
Изменения:
Ошибки:
1.6.1 (08.02.2015)
Изменения:
Ошибки:
1.6.0 (2015-02-06)
Новости:
Изменения:
Сообщите E731 о назначении лямбда. (выпуск № 277)
Сообщите E704 для однострочного определения вместо E701.
Заменить коды E111, E112 и E113 на коды E114, E115 и E116 за плохой отступ комментариев. (выпуск № 274)
Отчет E266 вместо E265, когда комментарий к блоку начинается с несколько #. (выпуск № 270)
Отчет E402 для операторов импорта не в начале файла. (выпуск № 264)
Не применять пробелы вокруг оператора **. (выпуск № 292)
Удаление пробелов вокруг путей во время нормализации. (Выпуск № 339 / № 343)
Обновить документацию —format. (Выпуск № 198 / запрос на включение № 310)
Добавить .tox/ к исключениям по умолчанию. (выпуск № 335)
Не сообщать E121 или E126 в конфигурации по умолчанию. (выпуски № 256 / № 316)
Разрешить пробелы вокруг знака равенства в аннотированной функции. (Выпуск №357)
Разрешить обратную косую черту во встроенном комментарии. (Выпуск №374)
Если используется —config, обрабатывается только эта конфигурация. В противном случае, merge пользовательская и локальная конфигурации объединяются. (Выпуск № 368 / № 369)
Исправление ошибок:
Не сбой, если Checker.build_tokens_line() возвращает None. (Выпуск №306)
Не аварийно завершать работу, если os.path.expanduser() выдает ошибку ImportError. (выпуск № 297)
Отсутствует пробел вокруг параметра ключевого слова, который не всегда сообщается, E251. (Выпуск №323)
Исправление ложных срабатываний E711/E712/E713. (выпуски №330 и №336)
Не пропускать физические проверки, если экранирована новая строка. (выпуск № 319)
Очистите sys.stdout, чтобы избежать состояния гонки при печати. См. ошибку flake8: https://gitlab.com/pycqa/flake8/issues/17 для более подробной информации. (Выпуск №363)
1.5.7 (2014-05-29)
Исправление ошибок:
Пропустить трассировку по сигналу «Borken pipe». (выпуск № 275)
Не выходить, если параметр в setup.cfg или tox.ini не признается.
Проверять последнюю строку, даже если она не заканчивается новой строкой. (выпуск № 286)
Всегда открывать файлы в универсальном режиме новой строки в Python 2. (Выпуск № 288)
1.5.6 (14.04.2014)
Исправление ошибок:
1.5.5 (10 апреля 2014 г.)
Исправление ошибок:
1.5.4 (07.04.2014)
Исправление ошибок:
1.5.3 (04.04.2014)
Исправление ошибок:
1.5.2 (04.04.2014)
Изменения:
Исправление ошибок:
Сообщите правильный номер строки для E303 с комментариями. (выпуск №60)
Не разрешать перевод строки после параметра equal. (выпуск № 252)
Исправлен номер строки, сообщаемый для многострочных строк. (Выпуск №220)
Исправление ложных срабатываний E121/E126 с многострочными строками. (выпуск № 265)
Исправление E501, не обнаруженное в комментариях с Python 2.5.
Исправить положение каретки с —show-source, когда строка содержит табуляцию.
1.5.1 (27.03.2014)
Исправление ошибок:
1,5 (2014-03-26)
Изменения:
Отчет E129 вместо E125 для визуально отступленной строки с тем же отступ в качестве следующей логической строки. (выпуск №126)
Сообщить E265 о пробеле перед комментарием к блоку. (выпуск №190)
Сообщить E713 и E714, когда операторов нет и нет рекомендуемые. (Выпуск № 236)
Разрешить длинные строки в многострочных строках и комментарии, если они не могут быть завернутым. (Выпуск № 224).
Опционально отключить проверку физических строк внутри многострочных строк, используя # noqa. (выпуск № 242)
Изменить текст для E121, чтобы сообщить «строка продолжения с отступом ниже для висячего отступа» вместо того, чтобы отступ не был кратно 4,
Сообщите E131 вместо E121/E126, если висячий отступ не согласованы в пределах одного и того же блока продолжения. Это помогает, когда ошибка E121 или E126 находится в списке игнорирования.
Отчет E126 вместо E121, когда висит строка продолжения с дополнительным отступом, даже если отступ не кратен 4.
Исправление ошибок:
Разрешить программам проверки сообщать об ошибках пустых файлов. (Выпуск № 240)
Исправлено игнорирование слишком большого количества проверок при использовании —select с кодами объявлено в расширении flake8. (выпуск № 216)
Исправление регрессии с несколькими скобками. (Выпуск № 214)
Исправить StyleGuide для разбора локальной конфигурации, если указаны пути аргументов ключевого слова. (выпуск № 246)
Исправление ложного срабатывания E124 для висячего отступа. (выпуск № 254)
Исправление ложноположительного результата E126 со встроенным двоеточием. (выпуск №144)
Исправление ложного срабатывания E126 при отступах с вкладками. (выпуск № 204)
Исправить поведение, когда исключение находится в файле конфигурации и текущий каталог не является каталогом проекта. (выпуск № 247)
Логические проверки могут возвращать None вместо пустого итератора. (выпуск № 250)
Не сообщать о нескольких E101, если начинается только первый отступ с вкладкой. (выпуск № 237)
Исправление редкого ложного срабатывания W602. (выпуск №34)
1.4.6 (2013-07-02)
Изменения:
Хонор #нока за ошибки Е711 и Е712. (выпуск №180)
Если в проекте присутствуют и tox.ini, и setup.cfg каталог, объединить их содержимое. Файл tox.ini занимает приоритет (такой же, как и раньше). (выпуск №182)
Дать приоритет —select над —ignore. (выпуск №188)
Сравнивать полный путь при исключении файла. (выпуск №186)
Новая опция —hang-closed для переключения на альтернативный стиль отступ закрывающей скобки для висячего отступа. Добавьте ошибку E133 для закрывающая скобка, в которой отсутствует отступ. (выпуск №103)
Принять оба стиля отступа закрывающей скобки для висячего отступа. Не сообщать об ошибке E123 в конфигурации по умолчанию. (выпуск №103)
Исправление ошибок:
Не происходит сбой при выполнении проверок AST, если документ содержит нулевые байты. (выпуск №184)
Правильно сообщать о других ошибках E12, когда E123 игнорируется. (выпуск №103)
Исправление ложных срабатываний E261/E262, когда файл содержит спецификацию. (выпуск №193)
Fix E701, E702 и E703 иногда не обнаруживаются. (выпуск №196)
Исправление E122 не обнаружено в некоторых случаях. (Выпуск № 201 и № 208)
Исправление ложноположительного результата E121 с помощью нескольких скобок. (выпуск № 203)
1.4.5 (06.03.2013)
Если путь не указан, не пытайтесь читать со стандартного ввода. Особенность был добавлен в версии 1.4.3, но не поддерживается в Windows. Использовать — Аргумент имени файла для чтения из стандартного ввода. Это использование поддерживается начиная с 1.3.4. (Выпуск №170)
Не требовать setuptools в setup.py. Он работает вокруг проблемы с pip и Python 3. (Выпуск № 172)
Добавить __pycache__ в список игнорирования.
Изменить вводящее в заблуждение сообщение для E251. (выпуск №171)
Не сообщать о ложном E302, если в исходном файле есть кодирующий файл cookie или комментарий к первой строке. (Выпуск №174)
Реорганизация тестов и добавление тестов для API и для командной строки использование и варианты. (выпуски №161 и №162)
Игнорировать все проверки, которые не выбраны явно при выборе передается конструктору StyleGuide.
1.4.4 (2013-02-24)
Сообщить E227 или E228 вместо E225 для пробелов вокруг побитового, сдвиг или по модулю операторов. (выпуск №166)
Изменить сообщение для E226, чтобы было ясно, что речь идет об арифметике операторы.
Исправление ложного срабатывания E128 для отступа линии продолжения с вкладками.
Исправление регрессии с помощью параметра —diff. (Выпуск №169)
Исправьте класс TestReport для печати неожиданных предупреждений и ошибки.
1.4.3 (2013-02-22)
Скрыть параметры —doctest и —testsuite при установке.
Исправлен сбой с помощью средств проверки AST, когда синтаксис неверен. (выпуск №160)
Чтение из стандартного ввода, если путь не указан.
Инициировать корректное завершение работы, нажав Control+C.
Разрешить изменение класса checker_class для StyleGuide.
1.4.2 (2013-02-10)
Поддержка средств проверки AST, предоставляемых сторонними приложениями.
Зарегистрируйте новые программы проверки с помощью register_check(func_or_cls, code).
Разрешить создание StyleGuide с пользовательским синтаксическим анализатором.
Принять визуальный отступ без круглых скобок после if заявление. (выпуск №151)
Исправить UnboundLocalError при использовании # noqa с продолжением строк. (выпуск №158)
Измените порядок строк для StandardReport.
Разверните вкладки при проверке строк продолжения E12. (выпуск №155)
Рефакторинг класса тестирования TestReport и конкретного теста функций в отдельный тестовый модуль.
1.4.1 (18.01.2013)
Разрешить синтаксис sphinx.ext.autodoc для комментариев. (выпуск №110)
Сообщите E703 вместо E702 для завершающей точки с запятой. (выпуск №117)
Почитай #noqa в дополнение к #nopep8. (выпуск №149)
Предоставьте доступ к фабрике OptionParser для лучшей расширяемости.
1.
4 (2012-12-22)Сообщить E226 вместо E225 для необязательных пробелов вокруг общего операторы (*, **, /, + и -). Эта новая ошибка код игнорируется в конфигурации по умолчанию, поскольку PEP 8 рекомендует «использовать собственное суждение». (выпуск №96)
Строки с # nopep8 в конце не будут выдавать ошибки в строке длина E501 или отступ линии продолжения E12*. (Выпуск №27)
Fix AssertionError, когда исходный файл содержит недопустимую строку окончание «\r\r\n». (выпуск №119)
Прочтите раздел [pep8] файла tox.ini или setup.cfg, если он есть. (Выпуск № 93 и № 141)
Добавьте документацию на основе Sphinx и опубликуйте ее на http://pep8.readthedocs.org/. (выпуск №105)
1.3.4 (2012-12-18)
Исправление ложных срабатываний E124 и E128 с комментариями. (выпуск №100)
Исправлена ошибка стандартного ввода при работе с bpython. (выпуск №101)
Исправление ложного срабатывания E401. (выпуск №104)
Сообщить E231 о вложенном словаре в списке. (выпуск №142)
Поймать E271 в начале линии. (выпуск №133)
Исправление ложного срабатывания E126 для многострочных комментариев. (выпуск №138)
Исправление ложного срабатывания E221, когда оператору предшествует запятая. (выпуск №135)
Исправлена ошибка —diff на однострочном фрагменте. (выпуск №137)
Исправьте переключатель —exclude для путей к каталогам. (выпуск №111)
Использование — имя файла для чтения из стандартного ввода. (выпуск №128)
1.3.3 (27.06.2012)
1.3.2 (2012-06-26)
Вернуться к предыдущему поведению для —show-pep8: не подразумевает —first. (Выпуск №89)
Добавьте E902 для ошибок ввода-вывода. (Выпуск №87)
Исправление ложных срабатываний для E121 и пропущенных E124. (выпуск №92)
Установите разумный путь по умолчанию для файла конфигурации в Windows. (Выпуск №95)
Разрешить подробное описание в файле конфигурации. (выпуск №91)
Показать принудительную максимальную длину строки в сообщении об ошибке. (Выпуск №86)
1.3.1 (2012-06-18)
Объясните, какие параметры конфигурации ожидаются. Принять и рекомендовать имена параметров с дефисом вместо подчеркивания. (Выпуск №82)
Не читать пользовательскую конфигурацию при использовании в качестве модуля (кроме случаев, когда config_file=True передается конструктору StyleGuide).
Исправление неправильных или отсутствующих регистров для серии E12.
Исправление случаев, когда E122 пропущен. (Выпуск №81)
1.3 (15.06.2012)
Предупреждение
Внутренний API обратно несовместим.
Удалить глобальную конфигурацию и провести рефакторинг библиотеки вокруг класс StyleGuide; добавить возможность настройки различных репортеры. (Выпуск №35 и №66)
Чтение конфигурации пользователя из ~/.config/pep8 и локальная конфигурация из ./.pep8. (Выпуск №22)
Исправьте E502 для обратной косой черты, встроенной в многострочную строку. (Выпуск №68)
Исправление E225 для итерируемой распаковки Python 3 (PEP 3132). (Выпуск №72)
Включить новые шашки из серии E12 по умолчанию конфигурация.
Предложите менее подверженные ошибкам альтернативы для ошибок E712.
Переписать программы проверки, чтобы они работали быстрее (E22, E251, E27).
Исправлен сбой, когда анализируемый код недействителен (слишком много закрывающие скобки).
Исправьте E127 и E128 для отступа линии продолжения. (Выпуск №74)
Новая опция —format для настройки формата ошибки. (Выпуск №23)
Новая опция —diff для проверки только измененного кода. Единый diff читается из STDIN. Пример: hg diff | pep8 —diff (Выпуск №39)
Правильно сообщить количество сбоев и установить код выхода на 1 когда —doctest или —testsuite терпит неудачу.
Правильно определить кодировку в Python 3. (Выпуск № 69)
Отказ от поддержки Python 2.3, 2.4 и 3.0. (Выпуск №78)
1.2 (01.06.2012)
Добавьте отступы от E121 до E128 для продолжения строки. Эти проверки отключены по умолчанию. Если вы хотите принудительно выполнить все проверки, используйте переключатель —select=E,W. Патч Сэма Вилена. (выпуск №64)
Добавьте E721 для прямого сравнения типов. (Выпуск №47)
Добавьте E711 и E712 для сравнения с одиночками. (Выпуск №46)
Исправить ложные E225 и E701 для аннотаций функций. (Выпуск №29)
Добавьте E502 для явного соединения строк между скобками.
Исправлена ошибка E901 при печати источника с —show-source.
Сообщать обо всех ошибках для каждой программы проверки вместо сообщения только первое вхождение для каждой строки.
Опция —show-pep8 подразумевает —first.
1.1 (2012-05-24)
Добавьте E901 для синтаксических ошибок. (выпуски №63 и №30)
Добавьте E271, E272, E273 и E274 для посторонних пробелов вокруг ключевые слова. (выпуск № 57)
Добавьте файл конфигурации tox.ini для тестов. (Выпуск №61)
Добавьте файл конфигурации .travis.yml для непрерывной интеграции. (Выпуск №62)
1.0.1 (2012-04-06)
1.0 (04.04.2012)
0.7.0 (26 марта 2012 г.)
Теперь —first печатает только первое появление каждой ошибки. Флаг —repeat устаревает, потому что он используется по умолчанию. поведение. (выпуск №6)
Разрешить указывать —max-line-length. (Выпуск №36)
Сделать шебанг более гибким. (Выпуск №26)
Добавить набор тестов в комплект. (Выпуск №25)
Исправления для Jython. (Выпуск №49)
Добавить классификаторы PyPI. (Выпуск №43)
Исправьте параметр —exclude. (Выпуск №48)
Исправить W602, принять повышение с 3 аргументами. (Выпуск №34)
Правильно выбрать все тесты, если DEFAULT_IGNORE == ».
0.6.1 (03.10.2010)
0.6.0 (2010-09-19)
Набор тестов реорганизован и расширен для проверки большего количества отказов с меньшим количеством тестовых файлов. Подробнее читайте в строке документации run_tests. о синтаксисе.
Исправление E225: принять печать >>sys.stderr, «…» синтаксис.
Исправление E501 для строк, содержащих многобайтовые закодированные символы. (выпуск №7)
Исправление E221, E222, E223, E224 не обнаружено в некоторых случаях. (выпуск №16)
Исправьте ошибку E211, чтобы отклонить v = dic[‘a’] [‘b’]. (выпуск №17)
Код выхода всегда равен 1 при обнаружении какой-либо ошибки или предупреждения. (выпуск №10)
—проверки игнорирования теперь действительно игнорируются, особенно в в сочетании с —count. (выпуск №8)
Пустые строки с пробелами дают W293 вместо W291: некоторые разработчики хотите проигнорировать это предупреждение и сделать отступ пустых строк, чтобы вставить их код легко в интерпретаторе Python.
Исправление E301: не требуется пустая строка перед блоком с отступом. (выпуск №14)
Исправить E203, чтобы принять обозначение среза NumPy a[0, :]. (выпуск №13)
Повышение производительности.
Исправление декодирования и проверки файлов, отличных от UTF8, в Python 3.
Исправление E225: отклонение True+False при работе на Python 3.
Исправить исключение, когда строка начинается с оператора.
Разрешить новую строку перед закрытием ), } или ]. (выпуск №5)
0.5.0 (17.02.2010)
Переключатель —count изменен для печати на sys.stderr и установлен код выхода на 1, если обнаружена какая-либо ошибка или предупреждение.
Е241 и Е242 исключены из стандартных проверок. Если вы хотите включите эти проверки, используйте переключатель —select=E,W. (выпуск №4)
Пустая строка не является обязательной перед методом первого класса или вложенным определение функции, даже если есть строка документации. (выпуск №1)
Добавьте переключатель —version.
Исправление ошибок декодирования в Python 3. (Выпуск № 13 [1])
Добавить опцию —select, которая является зеркалом —ignore.
Добавить проверки E261 и E262 на наличие пробелов перед встроенными комментариями.
Новая проверка W604 предупреждает об устаревшем использовании обратных кавычек.
Новая проверка W603 предупреждает об устаревшем операторе <>.
Повышение производительности за счет перезаписи E225.
E225 теперь принимает:
Зарезервируйте «2 пустые строки» для логических блоков на уровне модуля. (Е303)
Разрешить многострочные комментарии. (E302, выпуск №10 [1])
0.4.2 (2009-10-22)
0,4 (20.10.2009)
Поддержка всех версий Python от 2.3 до 3.1.
Новые и значительно расширенные самопроверки.
Добавлен параметр —count для печати общего количества ошибок и предупреждений.
Дальнейшие улучшения в обработке комментариев и пустых строк. (Выпуск №1 [1] и другие изменения.)
Проверять все файлы py в каталоге при передаче каталога (проблема № 2 [1]). Это также предотвращает исключение при обходе каталогов. с файлами, отличными от *.py.
E231 должен допускать запятую после ). (Выпуск №3 [1])
Больше не требуются пробелы вокруг знака равенства для ключевого слова аргументы или значения параметров по умолчанию.
Эти проблемы относятся к предыдущему средству отслеживания проблем.
0.3.1 (14 сентября 2009 г.)
0,2 (16.10.2007)
0,1 (01.10.2006)
Первый выпуск.
Проверка и форматирование кода Python с помощью стандартов PEP 8 | by George Studenko
Как проверить, отформатирован ли ваш код Python в соответствии со стандартами PEP 8?
Прежде всего, что такое PEP 8?
PEP означает Предложение по улучшению Python
Предложение по улучшению Python номер 8 (PEP 8) под названием Руководство по стилю для кода Python считается стандартным Руководством по стилю для кода Python.
Поэтому, если вы хотите писать код в соответствии со стандартами, рекомендуется следовать PEP 8.
Вы можете найти ссылку на предложение в конце этой статьи.
Как вы можете это сделать?
Вы можете автоматизировать часть процесса, чтобы проверить, соответствует ли ему ваш код, и даже автоматизировать большую часть переформатирования.
Итак, прежде чем мы сможем что-то исправить, нам нужно проверить, что нужно исправить, для этого вы можете использовать один из инструментов: pycodestyle
Установить pycodestyle с помощью pip
pip install pycodestyle
После установки вы можете проверьте свои файлы python, чтобы увидеть все, что необходимо исправить, чтобы соответствовать PEP 8
Использование pycodestyle
pycodestyle --first backend/test_flaskr.py
Запуск этого отобразит на экране все строки, которые необходимо исправить, и какое правило они нарушают в этом конкретном файле Python.
Или, чтобы запустить его для всех файлов, вы также можете сделать что-то вроде этого:
pycodestyle .
В конце статьи я оставлю ссылку на документацию по pycodestyle, где вы сможете найти все возможные варианты и дополнительные конфигурации, которые вы могли бы использовать, если хотите узнать о нем больше.
Итак, когда вы знаете, что можете перейти к коду и исправить его вручную, но есть более быстрый и простой способ сделать это (особенно если вам нужно исправить много строк!)
Установить autopep8
pip install autopep8
Когда это будет сделано, все, что вам нужно сделать, это указать на файл, который вы хотите отформатировать, и увидеть, как происходит волшебство.
Использование autopep8
autopep8 --in-place --aggressive --aggressive --recursive .
После этого, если вы используете pycodestyle для повторной проверки кода, большинство предупреждений должны исчезнуть, но, скорее всего, не все из них, некоторые вам, возможно, придется исправить вручную.
пикокодстиль .
Итак, ваш код теперь должен соответствовать PEP 8!
Если вам интересно, вы также можете проверить pylint , который идет дальше, чем просто проверка PEP 8, и также может обнаруживать некоторые возможные ошибки и запахи кода.
Хотите пойти дальше?
Если вы хотите пойти еще дальше и также соответствовать заголовку PEP 257 Docstring Conventions
Для этого вы можете использовать pydocstyle
Он не исправит для вас строку документации, но сообщит вам, где вы надо это исправить!
Чтобы установить его с помощью pip, просто запустите:
pip install pydocstyle
И использовать его очень просто:
pydocstyle имя_файла.