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.28.2";
17 pyproject = true;
18
19 disabled = pythonOlder "3.7";
20
21 src = fetchFromGitHub {
22 owner = "neo4j";
23 repo = "neo4j-python-driver";
24 tag = version;
25 hash = "sha256-dQvQO+Re+ki9w+itzE6/WdiiLdMlU4yePt01vAPe4+M=";
26 };
27
28 postPatch = ''
29 # The dynamic versioning adds a postfix (.dev0) to the version
30 substituteInPlace pyproject.toml \
31 --replace-fail "setuptools ==" "setuptools >=" \
32 --replace-fail "tomlkit ==" "tomlkit >=" \
33 --replace-fail 'dynamic = ["version", "readme"]' 'dynamic = ["readme"]' \
34 --replace-fail '#readme = "README.rst"' 'version = "${version}"'
35 '';
36
37 build-system = [ setuptools ];
38
39 dependencies = [
40 pytz
41 tomlkit
42 ];
43
44 optional-dependencies = {
45 numpy = [ numpy ];
46 pandas = [
47 numpy
48 pandas
49 ];
50 pyarrow = [ pyarrow ];
51 };
52
53 # Missing dependencies
54 doCheck = false;
55
56 pythonImportsCheck = [ "neo4j" ];
57
58 meta = with lib; {
59 description = "Neo4j Bolt Driver for Python";
60 homepage = "https://github.com/neo4j/neo4j-python-driver";
61 changelog = "https://github.com/neo4j/neo4j-python-driver/releases/tag/${src.tag}";
62 license = licenses.asl20;
63 maintainers = with maintainers; [ fab ];
64 };
65}