PyCharm 2016.3 настройки pep8

В последней версии Pycharm пропала подсветка некоторых предупреждений, а именно — когда между классами меньше двух строк — волнистой линией подсвечивалось что это не совсем хорошо, так же появлялось предупреждение, если строка содержала более 120 символов. Уже привык к этому и никак не могу понять как это включить? Включил все галочки, но результата нету.
- Между классами меньше двух строк,
- Строка более 120 символов
- Файл должен заканчиваться пустой строкой Ничего из вышеперечисленного не подсвечивается.
Повторюсь что это именно в последнем PyCharm 2016.3 на Mac os X
Отслеживать
задан 12 дек 2016 в 15:12
381 2 2 серебряных знака 15 15 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
File -> Settings (PEP 8 внизу справа):

Отслеживать
ответ дан 12 дек 2016 в 15:55
2,548 1 1 золотой знак 15 15 серебряных знаков 31 31 бронзовый знак
Вот в том то и дело что не помогает.. Включил все галочки, кроме одной (та что выводит уведомление что метод может быть статичным).
13 дек 2016 в 5:54
@wedoca, Только что обновился до 2016.3 и всё нормально работает. Попробуйте переименовать/удалить папку .idea в корне проекта.
Autopep8 – спасательный круг для «зеленых» питонистов

Недавно я готовил доклад на тему “ Autopep8” и подчерпнул для себя много полезной информации. Немного подумав, решил поделиться ею с вами.
В среде разработчиков на Python все знают, что PEP8 является главным документом по стандарту кодирования на языке Python. Этот документ рассказывает о том, как правильно писать код на Python. Основная мысль следующая: код читается большое количество раз, в отличие от того, когда он пишется. Соответственно, правила о стиле написания кода нужны для того, чтобы улучшить качество читаемости кода и сделать этот код максимально понятным и согласованным между всеми разработчиками, которые с этим кодом работают. Поэтому, весь код необходимо писать в одном стиле, чтобы любой разработчик мог с ним работать без каких либо затруднений. Autopep8 — это инструмент, который анализирует код Python и, используя документ PEP8, определяет, что нужно исправить в вашем коде. Autopep8 автоматически исправляет большинство ошибок и неточностей в коде, обнаруженных посредством PEP8.
Исходя из технической документации, autopep8 исправляет следующие ошибки, о которых сообщает pycodestyle, например:
— серия ошибок E100 – исправление визуальных отступов.
— серия ошибок E200 – прибавление отсутствующих пробелов или удаление лишних.
— серия ошибок E300 – исправления, связанные с отсутствием или присутствием лишних пустых строк.
— серия ошибок E400 – исправления, связанные с импортом модулей.
— серия ошибок W290 – удаление лишних завершающих пробелов в последней строке и добавление пустой завершающей строки, в случае ее отсутствия.
Для установки Autopep8 необходимо в терминале выполнить команду:
$ pip install autopep8 После установки открываю Pycharm, создаю новый файл Python, называю его, к примеру, main.py. Далее необходимо добавить в файл, рандомный код, который представлен на картинке ниже:

Этот код выглядят небрежно, элементы словаря расписаны в несколько строчек, смещены отступы в строчках словаря, в некоторых местах элементы словаря склеились, проставлены лишние пробелы после словаря, скобка, закрывающая словарь опущена на строчку ниже. В объявлении функции summa склеились аргументы, а в самой функции склеились элементы возвращаемой суммы. Импорт модулей расположен в конце написанного кода, и в целом по коду присутствуют разрывы и склеивания в виде присутствия большого количества пробелов или их отсутствия. Теперь необходимо воспользоваться модулем Autopep8. В терминале, находясь в директории с файлом проекта, ввожу следующую команду:
$ autopep8 —in-place —aggressive main.py
Получаю код следующего вида:

Теперь код выглядит более лаконичным и красивым. Все склейки устранены, отступы соблюдены, импорты модулей перенесены в начало кода. Но все равно структура кода еще не идеальна – элементы словаря не упорядочены по одному в каждой строке, закрывающая скобка словаря находится, через строку, ниже. Применяю усиливающее свойство нашей команды. В терминале, при вводе команды, дублирую «—aggressive»:
$ autopep8 —in-place —aggressive —aggressive main.py
Получаю код следующего вида:

Теперь код выглядит практически идеально =)
Снова возвращаюсь к начальному неисправленному коду.

Чтобы включить только часть исправлений, нужно использовать параметр – select. Например, чтобы исправить различные типы проблем с отступами, ввожу команду:
$ autopep8 —select=E1 —in-place —aggressive main.py
Получаю следующий вид кода:

В итоге autopep8 исправил отступы внутри словаря.
Выполнить команду без написания ее в консоли немного проблематично, но в Pycharm это можно настроить, процесс настройки выглядит следующим образом:
1: File —> Settings —> Tools —> External Tools
После открытия можно увидеть знак + в верхнем левом углу формы, щелкнув на него, можно добавить новый инструмент. Ввожу данные ниже в соответствующие окна:

После завершения вышеуказанной конфигурации нажимаю OK, чтобы сохранить. Теперь я имею быстрый доступ к инструменту autopep8, достаточно выполнить следующие действия:
Tools —> External Tools —> pep8. И просто щелкнуть мышью.

Теперь, что хочется сказать в заключении… Инструмент Autopep8 прост в установке, гибок в использовании и автоматически приводит ваш код к стандарту PEP8. А какие линтеры, автоформатеры знаете Вы? =) Делитесь в комментариях.
Как в PyCharm по клику привести код к PEP8?
Всем привет.
Можно ли как нибудь в PyCharm по нажатию конопки или комбинации, полностью весь код в файле привестии к PEP8 стандарту. То есть что бы удалились лишние энтеры, перенос строки, импорты лишние убрались и всё в этом духе.
Есть комбинация alt + ctrl + o, но она только импорты лишние дропает.
- Вопрос задан более трёх лет назад
- 16649 просмотров
1 комментарий
Простой 1 комментарий
PEP8: руководство по написанию чистого и читаемого кода на Python

Когда дело доходит до написания крупных проектов или поддержки существующего кода, становится очень важным следовать определенным стандартам кодирования, чтобы обеспечить читаемость, понятность и поддерживаемость кода.
Один из таких стандартов — PEP8, который устанавливает рекомендации по стилю и форматированию кода на языке Python.
Введение
PEP8 — это документ, описывающий стандарты, которые разработчики должны следовать при написании кода на Python. Следование этим рекомендациям может значительно улучшить качество вашего кода, сделать его более читаемым и понятным для других разработчиков.
В этой статье мы рассмотрим основные правила, описанные в PEP8, и объясним, как их следовать, чтобы написать чистый, читаемый и поддерживаемый код на Python.
Причины использовать
PEP8 — это руководство по стилю кода для языка программирования Python. Он описывает рекомендации и правила для написания читаемого, понятного и консистентного кода на Python.
PEP8 важен для написания качественного кода на Python по нескольким причинам. Во-первых, он помогает сделать код более читаемым и понятным для других программистов, которые могут работать с вашим кодом. Это особенно важно, если вы работаете в команде или если ваш код будет использоваться другими людьми.
Во-вторых, соблюдение стандартов PEP8 может помочь сделать ваш код более консистентным. Это означает, что ваш код будет выглядеть более единообразно и просто, что упрощает его понимание и обслуживание.
В-третьих, соблюдение стандартов PEP8 может помочь обнаружить ошибки и потенциальные проблемы в вашем коде. Например, если вы используете нестандартное именование переменных или не соблюдаете правила отступов, это может привести к ошибкам или проблемам при чтении вашего кода.
Кроме того, многие инструменты разработки поддерживают стандарты PEP8 и могут помочь вам автоматически проверять соответствие вашего кода этим стандартам.
В целом, соблюдение стандартов PEP8 является важной практикой для написания качественного кода на Python. Он помогает сделать ваш код более читаемым, консистентным и устойчивым к ошибкам.
Основные правила
Основные правила PEP8 — это набор рекомендаций по оформлению кода на Python, который помогает сделать код более читаемым и понятным. Ниже я перечислю несколько основных правил PEP8:
Отступы
Используйте 4 пробела для каждого уровня отступа. Это правило помогает визуально выделить блоки кода и упрощает чтение кода. Использование символов табуляции или пробелов для отступов не рекомендуется, так как это может вызывать проблемы с отображением в разных текстовых редакторах.
Например:
# Правильно: if x == 1: print("x is 1") # Неправильно: if x == 1: print("x is 1")
Максимальная длина строки
Ограничьте длину строки не более чем 79 символами. Если строка длиннее, разбейте ее на несколько строк. Длинные строки могут быть трудны для чтения, особенно когда они выходят за границы окна редактора. Разбиение длинных строк на несколько строк с помощью продолжения строки с помощью символа обратной косой черты \ является хорошей практикой.
Например:
# Правильно: long_string = "This is a really long string that "\ "spans multiple lines." # Неправильно: long_string = "This is a really long string that spans multiple lines."
Пробелы
Используйте один пробел между операторами и операндами. Не используйте пробелы для выделения скобок вокруг аргументов функций. Это правило помогает упростить код и сделать его более читабельным.
Например:
# Правильно: x = 2 + 3 y = (1 + 2) * 3 # Неправильно: x=2+3 y = ( 1 + 2 ) * 3
Именование
Используйте понятные и описательные имена переменных, функций и методов. Для имени переменных используйте строчные буквы, а для имен функций и методов — заглавные буквы. Это правило помогает делать ваш код более читаемым и понятным для других программистов.
Например:
# Правильно: age = 25 name = "John" def calculate_sum(numbers): return sum(numbers) # Неправильно: a = 25 b = "John" def calc_sum(nums): return sum(nums)
Комментарии
Добавляйте комментарии к вашему коду, чтобы объяснить сложные участки кода.
Комментарии должны быть короткими, лаконичными и описательными, они должны помогать другим программистам понимать ваш код. Не используйте комментарии для описания очевидных вещей, таких как присваивание переменной значения, и избегайте комментариев в конце строки.
Например:
# Правильно: # Получаем текущую дату и время current_time = datetime.datetime.now() # Неправильно: current_time = datetime.datetime.now() # Получаем текущую дату и время
Импорты
Импортируйте модули в алфавитном порядке, разделяйте группы импортов пустой строкой и избегайте использования символа * . Это правило помогает упростить импорты и улучшить читабельность кода.
# Правильно: import datetime import os from math import sqrt import requests # Неправильно: import requests, os, datetime from math import * import my_module
Пробелы вокруг операторов
Используйте пустые строки для разделения логически связанных частей кода. Не используйте несколько операторов на одной строке.
Используйте пробелы вокруг операторов (=, +, -, *, /, //, %, и т. д.), но не используйте пробелы вокруг символа индексирования или среза.
Например:
# Правильно: x = 2 + 3 y = x * 4 z = list[0] # Неправильно: x=2+3 y = x*4 z = list [0]
Названия функций и методов
Используйте глаголы в названиях функций и методов, используйте нижнее подчеркивание для разделения слов. Это правило помогает делать код более понятным и легче читаемым.
Например:
# Правильно: def calculate_sum(numbers): return sum(numbers) def get_user_name(user): return user.name # Неправильно: def numbersSum(nums): return sum(nums) def user(user): return user.name
Название переменных
Используйте понятные и описательные названия для переменных, избегайте использования одиночных символов в качестве названий переменных, используйте нижнее подчеркивание для разделения слов.
Например:
# Правильно: total_sum = 0 list_of_numbers = [1, 2, 3, 4] user_name = "John" # Неправильно: t = 0 n = [1, 2, 3, 4] un = "John"
Расположение функций и классов
Располагайте функции и классы логически в вашем коде. Разделяйте функции и классы пустыми строками, чтобы улучшить читабельность кода. Функции должны быть определены перед их использованием.
Например:
# Правильно: def calculate_sum(numbers): return sum(numbers) def main(): list_of_numbers = [1, 2, 3, 4] total_sum = calculate_sum(list_of_numbers) print(f"The total sum is: ") if __name__ == "__main__": main() # Неправильно: def main(): list_of_numbers = [1, 2, 3, 4] total_sum = calculate_sum(list_of_numbers) print(f"The total sum is: ") def calculate_sum(numbers): return sum(numbers) if __name__ == "__main__": main()
Длина строки
Строки не должны быть длиннее 79 символов. Если строка слишком длинная, ее можно разбить на несколько строк, используя скобки, запятые или операторы конкатенации.
Например:
# Правильно: message = "This is a very long message that should be split " \ "into multiple lines for better readability." total_sum = (100 + 200 + 300 + 400 + 500 + 600) # Неправильно: message = "This is a very long message that should be split into multiple lines for better readability." total_sum = 100 + 200 + 300 + 400 + 500 + 600
Тройные кавычки
Используйте тройные кавычки для документации вашего кода. Это помогает другим программистам понимать ваш код и использовать его в своих проектах.
Например:
# Правильно: def calculate_sum(numbers): """ This function calculates the sum of the numbers in the given list. Parameters: numbers (list): A list of numbers to calculate the sum of. Returns: float: The sum of the numbers in the list. """ return sum(numbers) # Неправильно: def calculate_sum(numbers): # This function calculates the sum of the numbers in the given list. return sum(numbers)
Полезные инструменты
Действительно, существует множество инструментов, которые помогают разработчикам Python следовать стандартам PEP8. Эти инструменты включают линтеры и автоматические форматировщики.
Линтеры — это инструменты, которые анализируют код и проверяют его соответствие стандартам PEP8. Они предупреждают разработчиков о нарушениях стандартов PEP8 и других проблемах в их коде. Некоторые из наиболее популярных линтеров для Python включают:
- pylint — это линтер для Python, который проверяет соответствие кода стандартам PEP8. Он также обнаруживает другие проблемы в коде, такие как синтаксические ошибки, неиспользуемые переменные и дублирование кода.
- flake8 — это линтер, который проверяет соответствие кода стандартам PEP8, а также обнаруживает другие проблемы в коде, такие как неиспользуемые импорты и неправильное форматирование строк.
- PyCharm — это IDE для Python, которая включает встроенный линтер, который проверяет соответствие кода стандартам PEP8 и другие проблемы в коде. Он также предлагает рекомендации по исправлению нарушений стандартов PEP8.
Автоматические форматировщики — это инструменты, которые автоматически форматируют код в соответствии со стандартами PEP8. Они упрощают процесс форматирования кода и позволяют разработчикам сосредоточиться на его содержимом. Некоторые из наиболее популярных автоматических форматировщиков для Python включают:
- Black — это автоматический форматировщик кода на Python, который форматирует код в соответствии со стандартами PEP8. Он удаляет неоднозначность в коде и делает его более понятным.
- autopep8 — это инструмент, который автоматически форматирует код в соответствии со стандартами PEP8. Он также может исправлять другие проблемы в коде, такие как синтаксические ошибки.
- YAPF — это автоматический форматировщик кода на Python, который форматирует код в соответствии со стандартами PEP8 и другими рекомендациями по стилю кодирования.
Использование линтеров и автоматических форматировщиков может значительно упростить процесс следования стандартам PEP8 и улучшить качество кода. Например, линтеры могут предупреждать о нарушениях стандартов PEP8 до того, как код будет отправлен на ревью, что помогает избежать ошибок, связанных со стилем кода. Автоматические форматировщики позволяют быстро и легко отформатировать код в соответствии со стандартами PEP8.
Кроме того, многие инструменты интегрируются с популярными средами разработки, такими как PyCharm и VS Code, что упрощает их использование и интеграцию в рабочий процесс разработки.
Важно отметить, что линтеры и автоматические форматировщики не могут полностью заменить ручное форматирование и проверку кода на соответствие стандартам PEP8. Иногда они могут допустить ошибки или предложить неоптимальные решения. Поэтому важно использовать эти инструменты в сочетании с ручной проверкой кода и соблюдением наилучших практик при написании кода на Python.
Дополнительные источники
Существует множество ресурсов и инструментов для дополнительного изучения PEP8 и его реализации в проектах.
Некоторые из них перечислены ниже:
- Официальный документ PEP8: Документ PEP8 можно найти на официальном сайте Python. Он содержит все основные правила и рекомендации по написанию чистого и понятного кода на Python.
- Flake8: Flake8 — это инструмент статического анализа кода на Python, который проверяет соответствие кода стандартам PEP8. Он также проверяет синтаксические ошибки, использование необъявленных переменных и другие нарушения.
- PyCharm: PyCharm — это интегрированная среда разработки (IDE) для Python, которая имеет встроенный инструмент PEP8. Он предупреждает вас, если ваш код нарушает стандарты PEP8, и предлагает исправления.
- Black: Black — это автоматический форматтер кода на Python, который следует стандартам PEP8. Он автоматически форматирует ваш код, чтобы он соответствовал стандартам PEP8, и также может использоваться для автоматического форматирования кода в больших проектах.
- pylint: pylint — это еще один инструмент статического анализа кода на Python, который проверяет соответствие кода стандартам PEP8. Он также предупреждает вас об использовании устаревших или небезопасных конструкций в вашем коде.
- Real Python: Real Python — это онлайн-платформа для изучения Python, которая содержит множество статей, учебных пособий и видеоуроков. Они предлагают руководства по написанию чистого и понятного кода на Python в соответствии с PEP8.
- Python Code Quality Authority: Python Code Quality Authority — это организация, которая управляет несколькими инструментами для проверки качества кода на Python, включая Flake8 и pylint. Они также поддерживают ряд стандартов и рекомендаций для написания чистого и понятного кода на Python.
Заключение
Следование правилам PEP8 поможет вам написать более чистый, понятный и поддерживаемый код на Python. Однако, не стоит забывать, что эти правила не являются абсолютными и всегда могут быть нарушены в некоторых случаях. Важно следить за своим стилем и придерживаться общепринятых стандартов в сообществе Python.