[flake8]
max-line-length = 100
max-complexity = 10
ignore = 
    E203,  # whitespace before ':'
    W503,  # line break before binary operator
    F401,  # imported but unused (common in __init__.py)
    E501,  # line too long (handled by black)
exclude = 
    .git,
    __pycache__,
    build,
    dist,
    .eggs,
    *.egg-info,
    .tox,
    .venv,
    venv,
    env,
    tests
per-file-ignores =
    test_*.py:F401,F811,E402
    conftest.py:F401,F811
    __init__.py:F401