Правила Ruff, связанные с pep8-naming (N)

Правила Ruff, связанные с pep8-naming. Подробнее об этом плагине на его странице PyPI

Часть категории Правила проверок кода в Ruff.

Ruff camelcase-imported-as-lowercase (N813)

camelcase-imported-as-lowercase в Ruff проверяет, что импорты, записанные в стиле CamelCase, не переименовываются в имена, использующие нижний регистр.

Почему это неправильно

PEP 8 рекомендует использовать согласованные соглашения именования для классов, функций, констант и других объектов. Если импортированный элемент в стиле CamelCase получает алиас в нижнем регистре, это может ввести в заблуждение …

Ruff lowercase-imported-as-non-lowercase (N812)

lowercase-imported-as-non-lowercase в Ruff проверяет, что импорты, записанные в нижнем регистре, не переименовываются (алиасируются) в имена, использующие другой регистр.

Почему это неправильно

PEP 8 рекомендует использовать согласованные соглашения именования для классов, функций, констант и других объектов. Если импортированный элемент в нижнем регистре получает алиас в другом стиле, это может ввести в …

Ruff invalid-class-name (N801)

invalid-class-name в Ruff проверяет, соответствуют ли имена классов соглашению CamelCase.

Почему это неправильно

PEP 8 рекомендует использовать стиль CapWords (или CamelCase) для именования классов:

  • Имена классов обычно должны использовать соглашение CapWords.
  • Исключением являются случаи, когда интерфейс документирован и используется в основном как вызываемый объект — тогда может применяться стиль функций.
  • Встроенные …

Ruff invalid-function-name (N802)

invalid-function-name в Ruff проверяет, соответствуют ли имена функций соглашению snake_case.

Почему это неправильно

PEP 8 рекомендует использовать стиль snake_case для именования функций:

  • Имена функций должны быть написаны в нижнем регистре с разделением слов символом подчеркивания для улучшения читаемости.
  • Стиль mixedCase разрешён только в тех случаях, когда он уже является преобладающим …

Ruff invalid-argument-name (N803)

invalid-argument-name в Ruff проверяет, соответствуют ли имена аргументов соглашению snake_case.

Почему это неправильно

PEP 8 рекомендует использовать стиль snake_case для имен переменных и аргументов:

  • Имена аргументов должны быть написаны в нижнем регистре с разделением слов символом подчеркивания для улучшения читаемости.
  • Стиль mixedCase разрешён только в тех случаях, когда он уже …

Ruff invalid-first-argument-name-for-class-method (N804)

invalid-first-argument-name-for-class-method в Ruff проверяет, что первый аргумент метода класса называется cls.

Почему это неправильно

PEP 8 рекомендует всегда использовать cls в качестве первого аргумента для методов класса:

  • Всегда используйте cls как имя первого аргумента в методах класса.
  • Если имя аргумента функции конфликтует с зарезервированным словом, лучше добавить к нему завершающее …

Ruff invalid-first-argument-name-for-method (N805)

invalid-first-argument-name-for-method в Ruff проверяет, что первый аргумент метода экземпляра класса называется self.

Почему это неправильно

PEP 8 рекомендует использовать self в качестве имени первого аргумента для методов экземпляров класса:

  • Методы экземпляров должны получать первым аргументом self.
  • Если имя аргумента конфликтует с зарезервированным словом, рекомендуется добавлять к нему завершающее подчеркивание (например …

Ruff non-lowercase-variable-in-function (N806)

non-lowercase-variable-in-function в Ruff проверяет, что переменные внутри функций используют стиль snake_case (нижний регистр).

Почему это неправильно

PEP 8 рекомендует, чтобы все переменные внутри функций использовали только строчные буквы:

  • Имена переменных должны быть написаны в snake_case (слова разделяются нижним подчеркиванием).
  • Исключение составляют случаи, когда используется устоявшийся стиль (например, threading.py допускает …

Ruff dunder-function-name (N807)

dunder-function-name в Ruff проверяет, что функции с "dunder" именами (то есть с двумя подчеркиваниями в начале и в конце) используются только, если они документированы в Python.

Почему это неправильно

PEP 8 рекомендует использовать "dunder" имена только в случаях, когда они официально задокументированы:

  • "Магические" (dunder) объекты или атрибуты, такие как __init__ …

Ruff constant-imported-as-non-constant (N811)

constant-imported-as-non-constant в Ruff проверяет импорт констант с алиасами, которые не соответствуют стилю именования констант.

Почему это неправильно

PEP 8 рекомендует определённые соглашения для именования классов, функций, констант и других сущностей. Использование алиасов с несовместимым стилем может ввести читателя в заблуждение (например, принять константу за класс или наоборот).

Алиасы импортируемых констант …

Ruff camelcase-imported-as-constant (N814)

camelcase-imported-as-constant в Ruff проверяет случаи, когда идентификаторы в стиле CamelCase импортируются с алиасами, оформленными в виде имен констант (ALL_CAPS_SNAKE_CASE).

Почему это неправильно

PEP 8 рекомендует определенные соглашения о наименовании классов, функций, констант и других сущностей. Использование несоответствующих стилей именования между импортируемым объектом и его алиасом может ввести читателя в заблуждение …

Ruff mixed-case-variable-in-class-scope (N815)

mixed-case-variable-in-class-scope в Ruff проверяет случаи, когда переменные класса именуются в стиле mixedCase.

Почему это неправильно

PEP 8 рекомендует именовать переменные строчными буквами, разделяя слова подчеркиваниями (так называемый snake_case).

Имена функций должны быть написаны в нижнем регистре, слова разделяются подчеркиваниями, если это необходимо для улучшения читаемости.

Имена переменных следуют тем же …

Ruff mixed-case-variable-in-global-scope (N816)

mixed-case-variable-in-global-scope в Ruff проверяет случаи, когда глобальные переменные именуются в стиле mixedCase.

Почему это неправильно

PEP 8 рекомендует именовать глобальные переменные строчными буквами, разделяя слова подчеркиваниями (так называемый snake_case).

Глобальные переменные (будем надеяться, что они предназначены для использования только внутри одного модуля) должны следовать тем же соглашениям, что и функции …

Ruff camelcase-imported-as-acronym (N817)

camelcase-imported-as-acronym в Ruff проверяет случаи, когда идентификаторы в стиле CamelCase импортируются с алиасами в виде акронимов (аббревиатур).

Почему это неправильно

PEP 8 рекомендует определенные соглашения о наименовании классов, функций, констант и других сущностей. Использование несоответствующих стилей именования между импортируемым объектом и его алиасом может ввести читателя в заблуждение, заставив ожидать …

Ruff error-suffix-on-exception-name (N818)

error-suffix-on-exception-name в Ruff проверяет случаи, когда пользовательские исключения не содержат суффикс Error.

Почему это неправильно

PEP 8 рекомендует использовать суффикс Error в названиях исключений:

Поскольку исключения должны быть классами, к ним применяется соглашение о наименовании классов. Однако в названиях исключений следует использовать суффикс "Error" (если исключение действительно является ошибкой).

Пример …

Ruff invalid-module-name (N999)

invalid-module-name в Ruff проверяет случаи, когда имена модулей не соответствуют соглашению snake_case или являются недопустимыми.

Почему это неправильно

PEP 8 рекомендует использовать snake_case для имен модулей:

Модули должны иметь короткие имена, написанные в нижнем регистре. Подчеркивания допускаются, если это улучшает читаемость. Python-пакеты также должны иметь короткие имена в нижнем регистре …