align-colons
AlignmentPads the space before : so consecutive dict entries, annotated assignments, signature annotations, and docstring entries share one column, with a docstring entry's parenthesized type in a column of its own.
An auto-fix rule rewrites source under prose format and reports each rewrite as a Severity::Format diagnostic under prose check. Each rule settles one layout question Prose can answer mechanically (an alignment column, an alphabetical order, a blank-line count, a collection layout, a trailing comma) and emits an Edit list the Pipeline applies between rules. An auto-fix rule never reports a change the binary will not itself write.
Pads the space before : so consecutive dict entries, annotated assignments, signature annotations, and docstring entries share one column, with a docstring entry's parenthesized type in a column of its own.
Pads the gap before each trailing comment in a run so every # sits at one shared column.
Pads the space before each comparison operator in a multi-line and or or chain so the operators share one column.
Pads the space before = so consecutive assignments, annotated parameter defaults, and an exploded call's keyword arguments share one column.
Pads the space before the import keyword across consecutive from imports, or before as across consecutive aliased imports, so the keywords share one column.
Folds each single-statement case arm onto one line and pads the space before its : so consecutive arms share one column.
Sorts sibling entries whose order carries no meaning, covering import names, dict keys, class-body members, keyword arguments, and docstring entries.
Moves module-level constants into a leading band below the imports and a trailing band below the definitions, and sorts each band.
Expands a single-line triple-quoted docstring so its opener, its body, and its closer each sit on a line of their own.
Rewrites a docstring's quotes to the triple-double-quote form and puts a multi-line docstring's opener and closer on their own lines.
Moves each import in a run into its section, __future__ first, then bare, then external from, then local-package.
Rewrites Optional[T], Union[X, Y], and the typing generics to the T | None, X | Y, and builtin forms the target runtime supports.
Puts one space after a comment's hash run and at least two spaces between code and a trailing comment.
Rewrites a comparison to state its check directly, using is against None, putting the variable side first, and folding a leading not into its operator.
Rewrites every string and numeric literal to one spelling of quote character, string prefix, and numeric case.
Converts printf-style % interpolation and str.format() calls to f-strings wherever both forms render the same text.
Removes an import that binds a name nothing references or repeats a binding an earlier import already made, and reports the unreferenced one in a package __init__.py instead of removing it.
Explodes a call to one keyword argument per line once its argument count passes max-args, its width passes code-line-length, or an argument spans rows, and rejoins a list broken anywhere else onto one row.
Expands a list, tuple, dict, or set literal across lines once it overflows code-line-length or a dict passes max-dict-entries, and rejoins a construct broken anywhere but an entry boundary.
Splits a from … import … that overflows import-line-length into repeated-prefix statements, breaks a comma-joined import a, b into one statement per module, and merges repeated from statements of one module into one line.
Removes a grouping parenthesis pair that changes nothing, and breaks one whose joined form overflows code-line-length into a row per operand.
Writes a function signature either on one line or one parameter per line, expanding it once it overflows code-line-length, passes max-params, or carries a parameter spanning rows.
Removes a trailing backslash and rejoins its statement, adding parentheses where the joined line would overflow the budget.
Removes an explicit object base and the empty parentheses on a class header with no bases.
Removes the class and instance arguments from a super(C, self) call, leaving the bare super() the interpreter resolves on its own.
Removes a collection constructor wrapped around a literal, comprehension, or generator that already builds that collection, and replaces a comprehension that copies its input unchanged with the constructor call.
Sets the blank-line count between module-level definitions, class members, import groups, and the __main__ guard to PEP 8's canonical values.
Breaks a run of implicitly concatenated string literals to one literal per line once the joined line overflows code-line-length.
Breaks a method chain to one link per line once it overflows code-line-length or carries more links than max-links, hanging each link beneath the head's dot.
Removes a bare -> None return annotation, since an omitted one already reads as returning nothing.
Removes padding that lines up with nothing, before the : of a one-member group and just inside a bracket, and settles the gap after a : to one space.
Removes the trailing comma from a collection, signature, call, class base list, or type-parameter list, leaving tuples alone.
Wraps a docstring's description prose to docstring-line-length and its Title-case-headed sections to the budget docstring-structured-policy selects.
The Pipeline Order reference lists the fixed order these rules run in, the Configuration reference lists the per-rule facets, and the Lint landing covers the rules that report a diagnostic without rewriting.