-
Notifications
You must be signed in to change notification settings - Fork 3
/
tox.ini
141 lines (127 loc) · 3.79 KB
/
tox.ini
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# Tox configuration file
# Read more under https://tox.wiki/
[tox]
minversion = 3.24
envlist = default
isolated_build = True
[testenv]
description = Invoke pytest to run automated tests
deps =
pytest
coverage
pytest-cov
conda_channels =
conda-forge
conda_deps =
dials
setenv =
TOXINIDIR = {toxinidir}
passenv =
HOME
SETUPTOOLS_*
extras =
testing
commands =
pip install --upgrade pip
pip install -e . -r ./docs/requirements.txt
pytest {posargs:tests}
# To run `tox -e lint` you need to make sure you have a
# `.pre-commit-config.yaml` file. See https://pre-commit.com
[testenv:lint]
description = Perform static analysis and style checks
skip_install = True
deps = pre-commit
passenv =
HOMEPATH
PROGRAMDATA
SETUPTOOLS_*
commands =
pre-commit run --all-files {posargs:--show-diff-on-failure}
[testenv:{build,clean}]
description =
build: Build the package in isolation according to PEP517, see https://github.com/pypa/build
clean: Remove old distribution files and temporary build artifacts (./build and ./dist)
# https://setuptools.pypa.io/en/stable/build_meta.html#how-to-use-it
skip_install = True
changedir = {toxinidir}
deps =
build: build
conda_channels =
conda-forge
conda_deps =
dials
passenv =
SETUPTOOLS_*
commands =
clean: python -c 'import shutil; [shutil.rmtree(p, True) for p in ("build", "dist", "docs/_build")]'
clean: python -c 'import pathlib, shutil; [shutil.rmtree(p, True) for p in pathlib.Path("src").glob("*.egg-info")]'
build: python -m build {posargs}
# By default, both `sdist` and `wheel` are built. If your sdist is too big or you don't want
# to make it available, consider running: `tox -e build -- --wheel`
[testenv:dev_build]
description =
build: Build the package in isolation according to PEP517, see https://github.com/pypa/build using latest DIALS dev version
skip_install = True
changedir = {toxinidir}
deps =
dev_build: build
passenv =
SETUPTOOLS_*
commands =
pip install --upgrade pip
wget https://raw.githubusercontent.com/dials/dials/main/installer/bootstrap.py
python bootstrap.py
build: python -m build {posargs}
# By default, both `sdist` and `wheel` are built. If your sdist is too big or you don't want
# to make it available, consider running: `tox -e build -- --wheel`
[testenv:{docs,doctests,linkcheck}]
description =
docs: Invoke sphinx-build to build the docs
doctests: Invoke sphinx-build to run doctests
linkcheck: Check for broken links in the documentation
passenv =
SETUPTOOLS_*
setenv =
DOCSDIR = {toxinidir}/docs
BUILDDIR = {toxinidir}/docs/_build
docs: BUILD = html
doctests: BUILD = doctest
linkcheck: BUILD = linkcheck
deps =
-r {toxinidir}/docs/requirements.txt
conda_channels =
conda-forge
conda_deps =
dials
commands =
python -m pip install --upgrade pip
pip install -e . -r ./docs/requirements.txt
sphinx-build --color -b {env:BUILD} -d "{env:BUILDDIR}/doctrees" "{env:DOCSDIR}" "{env:BUILDDIR}/{env:BUILD}" {posargs}
[testenv:publish_test]
description =
Publish the package you have been developing to TestPyPI.
skip_install = True
changedir = {toxinidir}
passenv =
# See: https://twine.readthedocs.io/en/latest/
TWINE_USERNAME
TWINE_PASSWORD
TWINE_REPOSITORY
TWINE_REPOSITORY_URL
deps = twine
commands =
python -m twine check dist/*
python -m twine upload --repository testpypi dist/*
[testenv:publish]
description =
Publish the package you have been developing to PyPI.
skip_install = True
changedir = {toxinidir}
passenv =
# See: https://twine.readthedocs.io/en/latest/
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
deps = twine
commands =
python -m twine check dist/*
python -m twine upload --repository pypi dist/*