[flake8]
max-line-length = 88
extend-ignore = 
    # E203: whitespace before ':' (conflicts with black)
    E203,
    # W503: line break before binary operator (conflicts with black)
    W503,
    # D100: Missing docstring in public module
    D100,
    # D101: Missing docstring in public class
    D101,
    # D102: Missing docstring in public method
    D102,
    # D103: Missing docstring in public function
    D103,
    # D104: Missing docstring in public package
    D104,
    # D105: Missing docstring in magic method
    D105

exclude = 
    .git,
    __pycache__,
    .venv,
    .eggs,
    *.egg,
    build,
    dist,
    .pytest_cache

per-file-ignores =
    # Tests can have longer lines and missing docstrings
    tests/*:E501,D100,D101,D102,D103,D104,D105
    # __init__.py files can have unused imports
    __init__.py:F401

max-complexity = 10
docstring-convention = google
