1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 numpy,
6 pandas,
7 pyarrow,
8 pythonOlder,
9 pytz,
10 setuptools,
11 tomlkit,
12}:
13
14buildPythonPackage rec {
15 pname = "neo4j";
16 version = "5.20.0";
17 pyproject = true;
18
19 disabled = pythonOlder "3.7";
20
21 src = fetchFromGitHub {
22 owner = "neo4j";
23 repo = "neo4j-python-driver";
24 rev = "refs/tags/${version}";
25 hash = "sha256-ebWEtsgVj2NLYAKe8z6ge6TvnPmXh0Mqkx0b+ZcOePY=";
26 };
27
28 postPatch = ''
29 # The dynamic versioning adds a postfix (.dev0) to the version
30 substituteInPlace pyproject.toml \
31 --replace-fail '"tomlkit ~= 0.11.6"' '"tomlkit >= 0.11.6"' \
32 --replace-fail 'dynamic = ["version", "readme"]' 'dynamic = ["readme"]' \
33 --replace-fail '#readme = "README.rst"' 'version = "${version}"'
34 '';
35
36 build-system = [ setuptools ];
37
38 dependencies = [
39 pytz
40 tomlkit
41 ];
42
43 passthru.optional-dependencies = {
44 numpy = [ numpy ];
45 pandas = [
46 numpy
47 pandas
48 ];
49 pyarrow = [ pyarrow ];
50 };
51
52 # Missing dependencies
53 doCheck = false;
54
55 pythonImportsCheck = [ "neo4j" ];
56
57 meta = with lib; {
58 description = "Neo4j Bolt Driver for Python";
59 homepage = "https://github.com/neo4j/neo4j-python-driver";
60 changelog = "https://github.com/neo4j/neo4j-python-driver/releases/tag/${version}";
61 license = licenses.asl20;
62 maintainers = with maintainers; [ fab ];
63 };
64}