@@ -16,13 +16,28 @@ classifiers = [
1616 " Topic :: Internet :: WWW/HTTP :: WSGI :: Application" ,
1717 " Topic :: Software Development :: Libraries :: Application Frameworks" ,
1818]
19- requires-python = " >=3.9 "
19+ requires-python = " >=3.10 "
2020dependencies = [
2121 " WTForms>=3.1" ,
2222 " SQLAlchemy>=1.4" ,
2323]
2424dynamic = [" version" ]
2525
26+ [dependency-groups ]
27+ docs = [
28+ " Sphinx~=7.0.0" ,
29+ " Pallets-Sphinx-Themes~=2.2.0" ,
30+ " sphinx-issues~=4.0.0" ,
31+ " sphinxcontrib-log-cabinet~=1.0.1" ,
32+ " python-dateutil~=2.8.2" ,
33+ ]
34+ dev = [
35+ " coverage>=7.0" ,
36+ " pytest>=8.0" ,
37+ " prek>=0.1" ,
38+ " tox-uv>=1.28.1" ,
39+ ]
40+
2641[project .urls ]
2742Documentation = " https://wtforms-sqlalchemy.readthedocs.io/"
2843Changes = " https://wtforms-sqlalchemy.readthedocs.io/changes/"
@@ -46,7 +61,6 @@ include = [
4661 " docs/" ,
4762 " tests/" ,
4863 " CHANGES.rst" ,
49- " tox.ini" ,
5064]
5165exclude = [
5266 " docs/_build/" ,
@@ -58,6 +72,42 @@ filterwarnings = [
5872 " error" ,
5973]
6074
75+ [tool .tox ]
76+ env_list = [
77+ " py313" ,
78+ " py312" ,
79+ " py311" ,
80+ " py310" ,
81+ " pypy310" ,
82+ " style" ,
83+ " docs" ,
84+ " minversions" ,
85+ ]
86+
87+ [tool .tox .env_run_base ]
88+ runner = " uv-venv-runner"
89+ dependency_groups = [" dev" ]
90+ commands = [[" pytest" , " {posargs}" ]]
91+
92+ [tool .tox .env .style ]
93+ skip_install = true
94+ commands = [[" prek" , " run" , " --all-files" , " --show-diff-on-failure" ]]
95+
96+ [tool .tox .env .docs ]
97+ dependency_groups = [" docs" ]
98+ commands = [[" sphinx-build" , " -W" , " -b" , " html" , " -d" , " {env_tmp_dir}/doctrees" , " docs" , " {env_tmp_dir}/html" ]]
99+
100+ [tool .tox .env .coverage ]
101+ commands = [
102+ [" coverage" , " run" , " -m" , " pytest" , " --tb=short" , " --basetemp={env_tmp_dir}" , " {posargs}" ],
103+ [" coverage" , " html" ],
104+ [" coverage" , " report" ],
105+ ]
106+
107+ [tool .tox .env .minversions ]
108+ uv_resolution = " lowest-direct"
109+ commands = [[" pytest" , " --override-ini=filterwarnings=" , " {posargs}" ]]
110+
61111[tool .coverage .run ]
62112branch = true
63113source = [" wtforms_sqlalchemy" , " tests" ]
0 commit comments