-
Notifications
You must be signed in to change notification settings - Fork 44
/
tox.ini
103 lines (93 loc) · 2.57 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
# SPDX-License-Identifier: Apache-2.0
[tox]
# py3-unit runs unit tests with 'python3'
# py311-unit runs the same tests with 'python3.11'
envlist = ruff, lint, mypy, spellcheck
minversion = 4.4
[testenv]
description = run tests
package = wheel
wheel_build_env = pkg
deps =
pytest
pytest-asyncio
pytest-cov
pytest-html
[testenv:py3]
basepython = python3.11
# format, check, and linting targets don't build and install the project to
# speed up testing.
[testenv:lint]
description = lint with pylint
basepython = {[testenv:py3]basepython}
skip_install = true
skipsdist = true
deps = -r requirements-dev.txt
commands =
{envpython} -m pylint --load-plugins pylint_pydantic src/instructlab/training/
[testenv:fastlint]
description = fast lint with pylint (without 3rd party modules)
basepython = {[testenv:py3]basepython}
skip_install = true
skipsdist = true
deps =
pylint
pylint-pydantic
commands =
{envpython} -m pylint --load-plugins pylint_pydantic {posargs:--disable=import-error src/instructlab/training/}
[testenv:ruff]
description = reformat and fix code with Ruff (and isort)
basepython = {[testenv:py3]basepython}
skip_install = True
skipsdist = true
# keep in sync with .pre-commit-config.yaml
deps =
ruff==0.3.4
isort==5.11.5
# supports 'fix', 'check', or abitrary args to 'ruff' command
commands =
./scripts/ruff.sh {posargs:fix}
allowlist_externals = ./scripts/ruff.sh
[testenv:tomllint]
description = lint and format pyproject.toml
skip_install = true
skipsdist = true
deps =
commands =
make toml-lint
make toml-fmt
sh -c 'git diff --exit-code || (echo "pyproject.toml formatting is incorrect. Please run \"make toml-fmt\" and commit the changes." && exit 1)'
allowlist_externals = make, sh
[testenv:spellcheck]
description = spell check (needs 'aspell' command)
basepython = {[testenv:py3]basepython}
skip_install = true
skipsdist = true
deps =
pyspelling
commands =
sh -c 'command -v aspell || (echo "aspell is not installed. Please install it." && exit 1)'
{envpython} -m pyspelling --config {toxinidir}/.spellcheck.yml --spellchecker aspell
allowlist_externals = sh
[testenv:mypy]
description = Python type checking with mypy
basepython = {[testenv:py3]basepython}
skip_install = true
skipsdist = true
deps =
mypy>=1.10.0,<2.0
types-tqdm
types-PyYAML
pytest
commands =
mypy {posargs:src}
[testenv:fix]
description = reformat and fix violations with ruff
basepython = {[testenv:py3]basepython}
skip_install = true
skipsdist = true
deps = {[testenv:ruff]deps}
commands =
ruff check {posargs:--fix}
ruff format .
isort .