[flake8]
max-line-length = 88
max-complexity = 15
ignore = 
    # E203: whitespace before ':' (conflicts with black)
    E203,
    # E501: line too long (handled by max-line-length)
    E501,
    # W503: line break before binary operator (PEP 8 recommends this)
    W503
exclude = 
    .git,
    __pycache__,
    build,
    dist,
    *.egg-info,
    .tox,
    .venv,
    venv,
    node_modules
per-file-ignores = 
    # Allow complexity in development tools
    src/dev/*:C901
    # Allow imports at top of __init__.py files
    */__init__.py:F401
