Skip to content

Commit 1f79f3e

Browse files
committed
Update minimum supported Python versions to 3.10 and add tox configuration for full test suite.
1 parent 6cf4d7f commit 1f79f3e

2 files changed

Lines changed: 76 additions & 6 deletions

File tree

pyproject.toml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ readme = "README.md"
66
authors = [
77
{ name = "Johann Schopplich", email = "hello@johannschopplich.com" }
88
]
9-
requires-python = ">=3.8"
9+
requires-python = ">=3.10"
1010
dependencies = [
11-
"typing-extensions>=4.0.0; python_version < '3.10'",
11+
"tox>=4.25.0",
12+
"tox-uv>=1.13.1",
1213
]
1314
license = { text = "MIT" }
1415
keywords = ["toon", "serialization", "llm", "data-format", "token-efficient"]
@@ -17,8 +18,6 @@ classifiers = [
1718
"Intended Audience :: Developers",
1819
"License :: OSI Approved :: MIT License",
1920
"Programming Language :: Python :: 3",
20-
"Programming Language :: Python :: 3.8",
21-
"Programming Language :: Python :: 3.9",
2221
"Programming Language :: Python :: 3.10",
2322
"Programming Language :: Python :: 3.11",
2423
"Programming Language :: Python :: 3.12",
@@ -65,7 +64,7 @@ show_missing = true
6564
skip_covered = false
6665

6766
[tool.ruff]
68-
target-version = "py38"
67+
target-version = "py310"
6968
line-length = 100
7069

7170
[tool.ruff.lint]
@@ -83,7 +82,7 @@ quote-style = "double"
8382
indent-style = "space"
8483

8584
[tool.mypy]
86-
python_version = "3.9"
85+
python_version = "3.10"
8786
warn_return_any = false
8887
warn_unused_configs = true
8988
disallow_untyped_defs = false

tox.ini

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
[tox]
2+
requires =
3+
tox>=4
4+
envlist = py310, py311, py312, py313, py314, py314t, coverage
5+
skip_missing_interpreters =
6+
True
7+
8+
[testenv]
9+
deps =
10+
pytest>=8.4.2
11+
pytest-cov>=6.3.0
12+
pytest-asyncio>=1.1.0
13+
pytest-mock>=3.15.0
14+
pytest-timeout>=2.4.0
15+
pytest-xdist>=3.8.0
16+
commands =
17+
pytest
18+
19+
[testenv:py]
20+
description = run tests with the current interpreter (used by CI)
21+
commands =
22+
pytest
23+
24+
[testenv:fix]
25+
description = run code formatter and linter (auto-fix)
26+
skip_install = true
27+
deps =
28+
pre-commit-uv>=4.1.1
29+
commands =
30+
pre-commit run --all-files --show-diff-on-failure
31+
32+
[testenv:lint]
33+
description = run linter via ruff
34+
skip_install = true
35+
deps =
36+
ruff>=0.14.2
37+
commands =
38+
ruff check {posargs:src tests}
39+
40+
[testenv:format]
41+
description = run formatter via ruff
42+
skip_install = true
43+
deps =
44+
ruff>=0.14.2
45+
commands =
46+
ruff format {posargs:src tests}
47+
48+
[testenv:format-check]
49+
description = check code formatting via ruff
50+
skip_install = true
51+
deps =
52+
ruff>=0.14.2
53+
commands =
54+
ruff format --check {posargs:src tests}
55+
56+
[testenv:type]
57+
description = run type checker via mypy
58+
deps =
59+
mypy
60+
commands =
61+
mypy {posargs:src}
62+
63+
[testenv:dev]
64+
runner = uv-venv-lock-runner
65+
description = dev environment
66+
extras =
67+
dev
68+
test
69+
type
70+
commands =
71+
uv pip tree

0 commit comments

Comments
 (0)