summaryrefslogtreecommitdiffstats
path: root/tox.ini
blob: 8e37493ece64ff50b17c3db60e739847b2eb8fa8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
[tox]
minversion = 4.2.0
envlist = py{39,310,311,312,313}

[testenv]
usedevelop = True
passenv =
    https_proxy
    http_proxy
    no_proxy
    COLORTERM
    PERL
    PERL5LIB
    PYTEST_ADDOPTS
    DO_EPUBCHECK
    EPUBCHECK_PATH
    TERM
    CLEAN
    BUILDER
    READTHEDOCS
description =
    py{39,310,311,312,313}: Run unit tests against {envname}.
extras =
    test
setenv =
    PYTHONWARNINGS = error
    PYTEST_ADDOPTS = {env:PYTEST_ADDOPTS:} --color yes
commands=
    python -X dev -X warn_default_encoding -m pytest --durations 25 {posargs}

[testenv:lint]
description =
    Run linters.
extras =
    lint
# If you update any of these commands, don't forget to update the equivalent
# GitHub Workflow step
commands =
    ruff . --diff --format github
    flake8 .
    isort --check-only --diff .
    mypy sphinx/

[testenv:docs]
description =
    Build documentation.
extras =
    docs
commands =
    python -c "import shutil; shutil.rmtree('./build/sphinx', ignore_errors=True) if '{env:CLEAN:}' else None"
    sphinx-build -M {env:BUILDER:html} ./doc ./build/sphinx -nW --keep-going {posargs}

[testenv:docs-live]
description =
    Build documentation.
extras =
    docs
deps =
    sphinx-autobuild
commands =
    sphinx-autobuild ./doc ./build/sphinx/

[testenv:bindep]
description =
    Install binary dependencies.
deps =
    bindep
commands =
    bindep test

[testenv:ruff]
description =
    Run ruff formatting and linting.
extras =
    lint
commands =
    ruff format .
    ruff check --fix .

[testenv:mypy]
description =
    Run mypy type checking.
extras =
    lint
    test
commands =
    mypy {posargs}