Ruff line-too-long (E501)

line-too-long в Ruff проверяет строки, превышающие установленную максимальную длину символов.

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

Слишком длинные строки ухудшают читаемость кода. PEP 8 рекомендует ограничивать строки 79 символами. По умолчанию это правило в Ruff использует лимит 88 символов для совместимости с Black и Ruff Formatter, но этот лимит можно настроить через параметр line-length.

В некоторых случаях правило делает исключения:

  • Игнорируются строки, состоящие из одного "слова" (без пробелов).
  • Игнорируются строки, оканчивающиеся URL, если URL начинается до установленного лимита.
  • Игнорируются строки с pragma-комментариями (например, # type: ignore или # noqa), если комментарий начинается до лимита.
  • Игнорируются идентификаторы лицензий SPDX и уведомления об авторских правах (# SPDX-License-Identifier: MIT).
  • Если lint.pycodestyle.ignore-overlong-task-comments включен, игнорируются комментарии с TODO и другими тегами задач.

Пример ошибки

my_function(param1, param2, param3, param4, param5, param6, param7, param8, param9, param10)

Как правильно

my_function(
    param1, param2, param3, param4, param5,
    param6, param7, param8, param9, param10
)

Подавление ошибки

При подавлении ошибки E501 в многострочных строках (например, docstring) директива # noqa должна стоять после закрывающих тройных кавычек:

"""Lorem ipsum dolor sit amet.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.
"""  # noqa: E501