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