[flake8]
max-line-length = 88
extend-ignore = E203, W503, S101, G001, G002
exclude =
    # vendored third-party code (unmodified htcondor.dags; see tests/stubs)
    tests/stubs,
    .git,
    __pycache__,
    build,
    dist,
    .eggs,
    *.egg-info,
    .pytest_cache,
    .mypy_cache,
    # generated by setuptools-scm, not black-formatted
    src/sgn_manifold/_version.py
per-file-ignores =
    # snr_optimizer runs environment/backend setup before its imports
    src/sgn_manifold/snr_optimizer.py:E402
    # Allow long lines inside embedded HTML/CSS/JS templates
    src/sgn_manifold/bin/manifold_report.py:E501
    # Allow assert, test passwords, and intentional chmod (permission-branch
    # test setup) in tests
    tests/*:S101,S105,S110,S103
    # Allow long lines in docstrings
    */examples/*:E501
