line-too-long (E501)#
Derived from the pycodestyle linter.
What it does#
Checks for lines that exceed the specified maximum character length.
Why is this bad?#
Overlong lines can hurt readability. PEP 8, for example, recommends
limiting lines to 79 characters. By default, this rule enforces a limit
of 88 characters for compatibility with Black, though that limit is
configurable via the line-length
setting.
In the interest of pragmatism, this rule makes a few exceptions when determining whether a line is overlong. Namely, it:
- Ignores lines that consist of a single "word" (i.e., without any whitespace between its characters).
- Ignores lines that end with a URL, as long as the URL starts before the line-length threshold.
- Ignores line that end with a pragma comment (e.g.,
# type: ignore
or# noqa
), as long as the pragma comment starts before the line-length threshold. That is, a line will not be flagged as overlong if a pragma comment causes it to exceed the line length. (This behavior aligns with that of the Ruff formatter.) - Ignores SPDX license identifiers and copyright notices
(e.g.,
# SPDX-License-Identifier: MIT
), which are machine-readable and should not wrap over multiple lines.
If lint.pycodestyle.ignore-overlong-task-comments
is true
, this rule will
also ignore comments that start with any of the specified lint.task-tags
(e.g., # TODO:
).
Example#
Use instead:
Error suppression#
Hint: when suppressing E501
errors within multi-line strings (like
docstrings), the noqa
directive should come at the end of the string
(after the closing triple quote), and will apply to the entire string, like
so:
"""Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.
""" # noqa: E501