[flake8]
max-line-length = 150
extend-ignore =
    # Intentional aligned assignments (project style)
    E221,
    E272,
    # Continuation line indent (black manages this)
    E128,
    # Inline comment spacing (minor)
    E261,
    # Multiple statements on one line (minor)
    E701,
    # Missing whitespace around operator in annotations
    E225,
    # Line break before binary operator (black preference)
    W503,
per-file-ignores =
    # Conditional import at bottom of watcher.py main guard
    cda/pipeline/watcher.py:E402
    # HTML/SVG template strings are inherently long
    cda/ui/templates.py:E501
