[flake8]
ignore = D100,D101,D102,D103,D104,D105,D106,D107,D202,E501,RST301,RST304,W503,E203,C417,T202,S101
; extend-ignore = E203
exclude = .git,.*_cache,.eggs,*.egg-info,__pycache__,venv,.tox,gso/migrations,docs
enable-extensions = G
select = B,C,D,E,F,G,I,N,S,T,W,B902,B903,R
max-line-length = 120
ban-relative-imports = true
per-file-ignores =
	# Allow first argument to be cls instead of self for pydantic validators
	gso/*: B902

[testenv]
deps =
    coverage
    flake8
    black
    mypy
    ruff
    isort
    types-requests
    -r requirements.txt

commands =
    coverage erase
    coverage run --source gso -m pytest {posargs}
    coverage xml
    coverage html
    # coverage report --fail-under 80
    coverage report
    isort -c .
    ruff .
    black --check .
    mypy .
    flake8