call-layout
LayoutExplodes a keyword-expressible call carrying more than the inline-argument cap to one keyword argument per line.
The *-line-length caps are hard constraints, and every shaping rule resolves within them, so a call, collection, signature, or import that crosses its cap reshapes to one entry per line, and an alignment run reshapes an over-budget member before aligning. When no legal form satisfies the cap (a deep indent, a long identifier, a single-name import already at its narrowest, a cap set below what the statement needs), the narrowest form stands and
prose check and as a squiggle in the sandbox rather than as a knob that did nothing.A line inside an import statement answers to import-line-length, every other line to code-line-length. A line a layout rule could still split (an inline call carrying arguments, a multi-element collection, a multi-name from import, a signature carrying parameters, a single-statement match arm, a leading docstring) is left for that rule, so
| Key | Type | Default | Meaning |
|---|---|---|---|
enabled | bool | true | Toggle the rule on or off |
An attribute-target assignment carries no call, collection, import, or signature a layout rule could split, so once it crosses code-line-length no legal form brings it within the cap. line-overflow names the narrowest form that stands, turning an unsatisfiable cap into a finding rather than a knob that did nothing.
metrics.rolling.window.average = previous_value
Explodes a keyword-expressible call carrying more than the inline-argument cap to one keyword argument per line.
Normalizes function signatures to one line or one parameter per line, gated by line length and inline-parameter count.
Splits an over-budget from ... import ... into a run of repeated-prefix statements packed to the import budget.
For per-line opt-outs, the Suppression chapter covers the # prose: ignore[line-overflow] directive. The Lengths section of the configuration reference states the caps-are-hard-constraints contract this rule closes.