1
1
[build-system ]
2
- requires = [" poetry-core>=1.0.0 " ]
3
- build-backend = " poetry.core.masonry.api "
2
+ requires = [" hatchling " ]
3
+ build-backend = " hatchling.build "
4
4
5
- [tool ]
6
- [tool .poetry ]
5
+ [project ]
7
6
name = " slapd"
8
7
version = " 0.1.5"
9
8
description = " Controls a slapd process in a pythonic way"
@@ -20,33 +19,41 @@ classifiers = [
20
19
" License :: OSI Approved :: MIT License" ,
21
20
" Topic :: Software Development :: Libraries :: Python Modules" ,
22
21
]
23
- authors = [" python-ldap team <python-ldap@python.org>" ]
24
- maintainers = [
25
- " Éloi Rivard <eloi.rivard@aquilenet.fr>" ,
26
- ]
27
- homepage = " https://slapd.readthedocs.io/en/latest/"
28
- documentation = " https://slapd.readthedocs.io/en/latest/"
29
- repository = " https://gitlab.com/python-ldap/python-slapd"
22
+ authors = [{name =" python-ldap team" , email =" python-ldap@python.org" }]
23
+ maintainers = [{name =" Éloi Rivard" , email =" eloi.rivard@aquilenet.fr" }]
30
24
readme = " README.md"
25
+ requires-python = " >=3.9"
31
26
32
- [tool .poetry .dependencies ]
33
- python = " ^3.8"
27
+ [project .urls ]
28
+ homepage = " https://slapd.readthedocs.io/en/latest"
29
+ documentation = " https://slapd.readthedocs.io/en/latest"
30
+ repository = " https://gitlab.com/python-ldap/python-slapd"
34
31
35
- [tool .poetry .group .dev .dependencies ]
36
- coverage = " *"
37
- pytest = " *"
38
- pytest-cov = " *"
39
- tox = " *"
40
- mock = " *"
32
+ [dependency-groups ]
33
+ dev = [
34
+ " coverage" ,
35
+ " pytest" ,
36
+ " pytest-cov" ,
37
+ " tox" ,
38
+ " mock" ,
39
+ ]
41
40
42
- [tool .poetry .group .doc ]
43
- optional = true
41
+ doc = [
42
+ " recommonmark" ,
43
+ " sphinx" ,
44
+ " sphinx-rtd-theme" ,
45
+ " sphinx-issues" ,
46
+ ]
44
47
45
- [tool .poetry .group .doc .dependencies ]
46
- recommonmark = " *"
47
- sphinx = " *"
48
- sphinx-rtd-theme = " *"
49
- sphinx-issues = " *"
48
+ [tool .hatch .build ]
49
+ include = [
50
+ " slapd/" ,
51
+ " doc/" ,
52
+ " tests/" ,
53
+ " CHANGES.rst" ,
54
+ " LICENSE.md" ,
55
+ " README.md" ,
56
+ ]
50
57
51
58
[tool .coverage .run ]
52
59
source = [
@@ -94,30 +101,31 @@ norecursedirs = ".tox tests/perf .eggs .git build doc"
94
101
doctest_optionflags = " ALLOW_UNICODE IGNORE_EXCEPTION_DETAIL ELLIPSIS"
95
102
96
103
[tool .tox ]
97
- legacy_tox_ini = """
98
- [tox]
99
- isolated_build = true
100
- envlist = doc,py38,py39,py310,py311,py312,coverage
101
- skipsdist=true
104
+ env_list = [
105
+ " style" ,
106
+ " py39" ,
107
+ " py310" ,
108
+ " py311" ,
109
+ " py312" ,
110
+ " py313" ,
111
+ " doc" ,
112
+ " coverage" ,
113
+ ]
102
114
103
- [testenv]
104
- whitelist_externals = poetry
105
- commands =
106
- pip install poetry
107
- poetry install
108
- poetry run pytest {posargs}
115
+ [tool .tox .env_run_base ]
116
+ dependency_groups = [" dev" ]
117
+ commands = [
118
+ [" pytest" , " {posargs}" ],
119
+ ]
109
120
110
- [testenv: doc]
111
- commands =
112
- pip install poetry
113
- poetry install --only doc
114
- poetry run sphinx-build doc build/sphinx/html
121
+ [tool . tox . env . doc ]
122
+ dependency_groups = [ " doc " ]
123
+ commands = [
124
+ [ " sphinx-build " , " --builder " , " html " , " --fail-on-warning " , " doc" , " build/sphinx/html " ],
125
+ ]
115
126
116
- [testenv:coverage]
117
- commands =
118
- pip install poetry
119
- poetry install
120
- poetry run coverage erase
121
- poetry run pytest --cov {posargs}
122
- poetry run coverage html
123
- """
127
+ [tool .tox .env .coverage ]
128
+ commands = [
129
+ [" pytest" , " --cov" , " --cov-report" , " term:skip-covered" , " {posargs}" ],
130
+ [" coverage" , " html" ],
131
+ ]
0 commit comments