@@ -68,6 +68,87 @@ requires = [
6868]
6969build-backend = " setuptools.build_meta"
7070
71+ [dependency-groups ]
72+ # To install all development dependencies as well as the driver with all optional dependencies,
73+ # run `pip install --group dev`
74+ dev = [
75+ # dev tools
76+ {include-group = " dep-project-dependencies" },
77+ {include-group = " tox" },
78+ {include-group = " precommit" },
79+ {include-group = " unasync" },
80+ {include-group = " test" },
81+ {include-group = " typing" },
82+ {include-group = " docs" },
83+ {include-group = " testkit" },
84+ {include-group = " benchkit" },
85+ {include-group = " packaging" },
86+ {include-group = " release" },
87+ ]
88+ # tool for runnig test matrix
89+ tox = [" tox >= 4.25.0" ]
90+ # run pre-commit hooks (includes linting, formatting, type checking, ...)
91+ precommit = [
92+ " pre-commit >= 4.2.0" ,
93+ # runs unasync and type checker outside pre-commit's isolation
94+ {include-group = " unasync" },
95+ {include-group = " typing" },
96+ ]
97+ # auto-generate sync driver from async code
98+ unasync = [
99+ " unasync == 0.5.0" ,
100+ " isort >= 6.0.1" ,
101+ ]
102+ # dependencies for running tests
103+ test = [
104+ " coverage[toml] >= 7.8.0" ,
105+ {include-group = " dep-freezegun" },
106+ " mock >= 5.2.0" ,
107+ " pytest >= 8.3.5" ,
108+ " pytest-asyncio >= 0.26.0" ,
109+ " pytest-benchmark >= 5.1.0" ,
110+ " pytest-cov >= 6.1.1" ,
111+ " pytest-mock >= 3.14.0" ,
112+ ]
113+ # type checker and type stubs for static type checking
114+ typing = [
115+ " mypy >= 1.15.0" ,
116+ " typing-extensions >= 4.13.2" ,
117+ " types-pytz >= 2025.2.0.20250326" ,
118+ {include-group = " dep-project-dependencies" },
119+ # tests are also type-checked
120+ {include-group = " test" },
121+ # testkit backend is also type-checked
122+ {include-group = " testkit" },
123+ # benchkit backend is also type-checked
124+ {include-group = " benchkit" },
125+ ]
126+ # generate documentation
127+ docs = [" Sphinx >= 8.1.3" ]
128+ # running the testkit backend
129+ testkit = [
130+ {include-group = " dep-freezegun" },
131+ ]
132+ # running the benchkit backend for benchmarking
133+ benchkit = [" sanic >= 25.3.0" ]
134+ # building and packaging the driver
135+ packaging = [
136+ " build >= 1.2.2" ,
137+ ]
138+ # releasing the packaged driver to PyPI
139+ release = [
140+ " twine >= 6.1.0" ,
141+ ]
142+
143+ # single dependencies and other include-groups (not really meant to be installed as a group, but to avoid duplication)
144+ dep-freezegun = [" freezegun >= 1.5.1" ]
145+ dep-project-dependencies = [
146+ " pytz" ,
147+ " numpy >= 1.7.0, < 3.0.0" ,
148+ " pandas >= 1.1.0, < 3.0.0" ,
149+ " pyarrow >= 1.0.0" ,
150+ ]
151+
71152[tool .setuptools .dynamic ]
72153version = {attr = " neo4j._meta.version" }
73154
0 commit comments