[flake8]
select = B,B9,C,D,DAR,E,F,N,RST,S,W
ignore = E203,E501,RST201,RST203,RST301,W503,S410,S320
max-line-length = 120
max-complexity = 30
docstring-convention = google
rst-roles = class,const,func,meth,mod,ref
rst-directives = deprecated

per-file-ignores =
    # prefer naming tests descriptively rather than forcing comments
    tests/*:S101,D103

    bin/keycloak_test_server.py:B950,D
    conftest.py:S105
    wsgi.py:S104

    # allow writing to /tmp for throwaway script output
    bin/get_bpmn_json_for_process_instance:S108

    # the exclude=./migrations option doesn't seem to work with pre-commit
    # migrations are autogenerated from "flask db migration" so ignore them
    migrations/*:D
    src/spiffworkflow_backend/config/testing.py:S105
    src/spiffworkflow_backend/load_database_models.py:F401

    # this file overwrites methods from the logging library so we can't change them
    # and ignore long comment line
    src/spiffworkflow_backend/services/logging_service.py:N802,B950