neo4j-viz 0.7.0__tar.gz → 1.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {neo4j_viz-0.7.0/src/neo4j_viz.egg-info → neo4j_viz-1.1.0}/PKG-INFO +3 -30
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/README.md +0 -3
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/pyproject.toml +26 -14
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/pandas.py +6 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/relationship.py +2 -0
- neo4j_viz-1.1.0/src/neo4j_viz/resources/nvl_entrypoint/base.js +2 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/visualization_graph.py +196 -32
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0/src/neo4j_viz.egg-info}/PKG-INFO +3 -30
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz.egg-info/SOURCES.txt +4 -2
- neo4j_viz-1.1.0/src/neo4j_viz.egg-info/requires.txt +17 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/tests/test_relationship.py +2 -0
- neo4j_viz-1.1.0/tests/test_relationship_colors.py +157 -0
- neo4j_viz-1.1.0/tests/test_relationship_resize.py +70 -0
- neo4j_viz-0.7.0/src/neo4j_viz/resources/nvl_entrypoint/base.js +0 -2
- neo4j_viz-0.7.0/src/neo4j_viz.egg-info/requires.txt +0 -44
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/LICENSE +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/setup.cfg +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/__init__.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/colors.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/gds.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/gql_create.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/neo4j.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/node.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/node_size.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/nvl.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/options.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/py.typed +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/resources/__init__.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/resources/icons/__init__.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/resources/icons/screenshot.svg +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/resources/icons/zoom-in.svg +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/resources/icons/zoom-out.svg +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/resources/nvl_entrypoint/__init__.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/resources/nvl_entrypoint/styles.css +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz/snowflake.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz.egg-info/dependency_links.txt +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/src/neo4j_viz.egg-info/top_level.txt +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/tests/test_captions.py +0 -0
- /neo4j_viz-0.7.0/tests/test_colors.py → /neo4j_viz-1.1.0/tests/test_color_nodes.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/tests/test_gds.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/tests/test_gql_create.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/tests/test_neo4j.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/tests/test_node.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/tests/test_notebooks.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/tests/test_options.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/tests/test_pandas.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/tests/test_pinned.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/tests/test_render.py +0 -0
- /neo4j_viz-0.7.0/tests/test_sizes.py → /neo4j_viz-1.1.0/tests/test_resize_nodes.py +0 -0
- {neo4j_viz-0.7.0 → neo4j_viz-1.1.0}/tests/test_snowflake.py +0 -0
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: neo4j-viz
|
|
3
|
-
Version:
|
|
3
|
+
Version: 1.1.0
|
|
4
4
|
Summary: A simple graph visualization tool
|
|
5
5
|
Author-email: Neo4j <team-gds@neo4j.org>
|
|
6
6
|
License-Expression: GPL-3.0-only
|
|
7
7
|
Project-URL: Homepage, https://neo4j.com/
|
|
8
8
|
Project-URL: Repository, https://github.com/neo4j/python-graph-visualization
|
|
9
9
|
Project-URL: Issues, https://github.com/neo4j/python-graph-visualization/issues
|
|
10
|
-
Project-URL: Documentation, https://neo4j.com/docs/
|
|
10
|
+
Project-URL: Documentation, https://neo4j.com/docs/python-graph-visualization/
|
|
11
11
|
Keywords: graph,visualization,neo4j
|
|
12
|
-
Classifier: Development Status ::
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
13
|
Classifier: Intended Audience :: Developers
|
|
14
14
|
Classifier: Intended Audience :: Science/Research
|
|
15
15
|
Classifier: Operating System :: OS Independent
|
|
@@ -32,22 +32,6 @@ Requires-Dist: ipython<10,>=7
|
|
|
32
32
|
Requires-Dist: pydantic<3,>=2
|
|
33
33
|
Requires-Dist: pydantic-extra-types<3,>=2
|
|
34
34
|
Requires-Dist: enum-tools==0.13.0
|
|
35
|
-
Provides-Extra: dev
|
|
36
|
-
Requires-Dist: ruff==0.14.1; extra == "dev"
|
|
37
|
-
Requires-Dist: mypy==1.18.2; extra == "dev"
|
|
38
|
-
Requires-Dist: pytest==8.4.2; extra == "dev"
|
|
39
|
-
Requires-Dist: selenium==4.32.0; extra == "dev"
|
|
40
|
-
Requires-Dist: ipykernel==6.30.1; extra == "dev"
|
|
41
|
-
Requires-Dist: palettable==3.3.3; extra == "dev"
|
|
42
|
-
Requires-Dist: pytest-mock==3.14.0; extra == "dev"
|
|
43
|
-
Requires-Dist: nbconvert==7.16.6; extra == "dev"
|
|
44
|
-
Requires-Dist: streamlit==1.45.0; extra == "dev"
|
|
45
|
-
Requires-Dist: matplotlib>=3.9.4; extra == "dev"
|
|
46
|
-
Provides-Extra: docs
|
|
47
|
-
Requires-Dist: sphinx==8.1.3; extra == "docs"
|
|
48
|
-
Requires-Dist: enum-tools[sphinx]; extra == "docs"
|
|
49
|
-
Requires-Dist: nbsphinx==0.9.7; extra == "docs"
|
|
50
|
-
Requires-Dist: nbsphinx-link==1.3.1; extra == "docs"
|
|
51
35
|
Provides-Extra: pandas
|
|
52
36
|
Requires-Dist: pandas<3,>=2; extra == "pandas"
|
|
53
37
|
Requires-Dist: pandas-stubs<3,>=2; extra == "pandas"
|
|
@@ -57,14 +41,6 @@ Provides-Extra: neo4j
|
|
|
57
41
|
Requires-Dist: neo4j; extra == "neo4j"
|
|
58
42
|
Provides-Extra: snowflake
|
|
59
43
|
Requires-Dist: snowflake-snowpark-python<2,>=1; extra == "snowflake"
|
|
60
|
-
Provides-Extra: notebook
|
|
61
|
-
Requires-Dist: ipykernel>=6.29.5; extra == "notebook"
|
|
62
|
-
Requires-Dist: pykernel>=0.1.6; extra == "notebook"
|
|
63
|
-
Requires-Dist: neo4j>=5.26.0; extra == "notebook"
|
|
64
|
-
Requires-Dist: ipywidgets>=8.0.0; extra == "notebook"
|
|
65
|
-
Requires-Dist: palettable>=3.3.3; extra == "notebook"
|
|
66
|
-
Requires-Dist: matplotlib>=3.9.4; extra == "notebook"
|
|
67
|
-
Requires-Dist: snowflake-snowpark-python==1.37.0; extra == "notebook"
|
|
68
44
|
Dynamic: license-file
|
|
69
45
|
|
|
70
46
|
# Graph Visualization for Python by Neo4j
|
|
@@ -84,9 +60,6 @@ Alternatively, you can export the output to a file and view it in a web browser.
|
|
|
84
60
|
|
|
85
61
|
The package wraps the [Neo4j Visualization JavaScript library (NVL)](https://neo4j.com/docs/nvl/current/).
|
|
86
62
|
|
|
87
|
-
> [!WARNING]
|
|
88
|
-
> This package is still in development and the API is subject to change.
|
|
89
|
-
|
|
90
63
|
|
|
91
64
|

|
|
92
65
|
|
|
@@ -15,9 +15,6 @@ Alternatively, you can export the output to a file and view it in a web browser.
|
|
|
15
15
|
|
|
16
16
|
The package wraps the [Neo4j Visualization JavaScript library (NVL)](https://neo4j.com/docs/nvl/current/).
|
|
17
17
|
|
|
18
|
-
> [!WARNING]
|
|
19
|
-
> This package is still in development and the API is subject to change.
|
|
20
|
-
|
|
21
18
|
|
|
22
19
|

|
|
23
20
|
|
|
@@ -4,14 +4,14 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "neo4j-viz"
|
|
7
|
-
version = "
|
|
7
|
+
version = "1.1.0"
|
|
8
8
|
description = "A simple graph visualization tool"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "Neo4j", email = "team-gds@neo4j.org" }]
|
|
11
11
|
license = "GPL-3.0-only"
|
|
12
12
|
license-files = [ "LICENSE" ]
|
|
13
13
|
classifiers = [
|
|
14
|
-
"Development Status ::
|
|
14
|
+
"Development Status :: 5 - Production/Stable",
|
|
15
15
|
"Intended Audience :: Developers",
|
|
16
16
|
"Intended Audience :: Science/Research",
|
|
17
17
|
"Operating System :: OS Independent",
|
|
@@ -39,16 +39,23 @@ requires-python = ">=3.10"
|
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
[project.optional-dependencies]
|
|
42
|
+
pandas = ["pandas>=2, <3", "pandas-stubs>=2, <3"]
|
|
43
|
+
gds = ["graphdatascience>=1, <2"]
|
|
44
|
+
neo4j = ["neo4j"]
|
|
45
|
+
snowflake = ["snowflake-snowpark-python>=1, <2"]
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
[dependency-groups]
|
|
42
49
|
dev = [
|
|
43
|
-
"ruff==0.14.
|
|
44
|
-
"mypy==1.
|
|
50
|
+
"ruff==0.14.13",
|
|
51
|
+
"mypy==1.19.1",
|
|
45
52
|
"pytest==8.4.2",
|
|
46
|
-
"selenium==4.
|
|
47
|
-
"ipykernel==
|
|
53
|
+
"selenium==4.40.0",
|
|
54
|
+
"ipykernel==7.1.0",
|
|
48
55
|
"palettable==3.3.3",
|
|
49
|
-
"pytest-mock==3.
|
|
56
|
+
"pytest-mock==3.15.1",
|
|
50
57
|
"nbconvert==7.16.6",
|
|
51
|
-
"streamlit==1.
|
|
58
|
+
"streamlit==1.53.0",
|
|
52
59
|
"matplotlib>=3.9.4",
|
|
53
60
|
]
|
|
54
61
|
docs = [
|
|
@@ -57,10 +64,6 @@ docs = [
|
|
|
57
64
|
"nbsphinx==0.9.7",
|
|
58
65
|
"nbsphinx-link==1.3.1",
|
|
59
66
|
]
|
|
60
|
-
pandas = ["pandas>=2, <3", "pandas-stubs>=2, <3"]
|
|
61
|
-
gds = ["graphdatascience>=1, <2"]
|
|
62
|
-
neo4j = ["neo4j"]
|
|
63
|
-
snowflake = ["snowflake-snowpark-python>=1, <2"]
|
|
64
67
|
notebook = [
|
|
65
68
|
"ipykernel>=6.29.5",
|
|
66
69
|
"pykernel>=0.1.6",
|
|
@@ -68,14 +71,15 @@ notebook = [
|
|
|
68
71
|
"ipywidgets>=8.0.0",
|
|
69
72
|
"palettable>=3.3.3",
|
|
70
73
|
"matplotlib>=3.9.4",
|
|
71
|
-
"snowflake-snowpark-python==1.
|
|
74
|
+
"snowflake-snowpark-python==1.42.0",
|
|
75
|
+
"dotenv"
|
|
72
76
|
]
|
|
73
77
|
|
|
74
78
|
[project.urls]
|
|
75
79
|
Homepage = "https://neo4j.com/"
|
|
76
80
|
Repository = "https://github.com/neo4j/python-graph-visualization"
|
|
77
81
|
Issues = "https://github.com/neo4j/python-graph-visualization/issues"
|
|
78
|
-
Documentation = "https://neo4j.com/docs/
|
|
82
|
+
Documentation = "https://neo4j.com/docs/python-graph-visualization/"
|
|
79
83
|
|
|
80
84
|
[tool.setuptools]
|
|
81
85
|
include-package-data = true
|
|
@@ -97,6 +101,14 @@ neo4j_viz = [
|
|
|
97
101
|
|
|
98
102
|
[tool.pytest.ini_options]
|
|
99
103
|
addopts = ["--import-mode=importlib"]
|
|
104
|
+
markers = [
|
|
105
|
+
"requires_neo4j_and_gds: mark a test as a requiring a Neo4j instance with GDS running",
|
|
106
|
+
"requires_snowflake: mark a test as a requiring a Snowflake connection"
|
|
107
|
+
]
|
|
108
|
+
filterwarnings = [
|
|
109
|
+
"error",
|
|
110
|
+
"ignore:Jupyter is migrating its paths to use standard platformdirs:DeprecationWarning"
|
|
111
|
+
]
|
|
100
112
|
|
|
101
113
|
[tool.ruff]
|
|
102
114
|
line-length = 120
|
|
@@ -69,6 +69,9 @@ def _parse_nodes(node_dfs: DFS_TYPE, dropna: bool = False) -> list[Node]:
|
|
|
69
69
|
mandatory_fields = {}
|
|
70
70
|
properties = {}
|
|
71
71
|
for key, value in row.to_dict().items():
|
|
72
|
+
if not isinstance(key, str):
|
|
73
|
+
key = str(key)
|
|
74
|
+
|
|
72
75
|
if key in basic_node_fields_aliases:
|
|
73
76
|
mandatory_fields[key] = value
|
|
74
77
|
else:
|
|
@@ -98,6 +101,9 @@ def _parse_relationships(rel_dfs: DFS_TYPE, dropna: bool = False) -> list[Relati
|
|
|
98
101
|
mandatory_fields = {}
|
|
99
102
|
properties = {}
|
|
100
103
|
for key, value in row.to_dict().items():
|
|
104
|
+
if not isinstance(key, str):
|
|
105
|
+
key = str(key)
|
|
106
|
+
|
|
101
107
|
if key in basic_rel_field_aliases:
|
|
102
108
|
mandatory_fields[key] = value
|
|
103
109
|
else:
|
|
@@ -64,6 +64,8 @@ class Relationship(
|
|
|
64
64
|
caption_size: Optional[Union[int, float]] = Field(None, gt=0.0, description="The size of the caption text")
|
|
65
65
|
#: The color of the relationship. Allowed input is for example "#FF0000", "red" or (255, 0, 0)
|
|
66
66
|
color: Optional[ColorType] = Field(None, description="The color of the relationship")
|
|
67
|
+
# The width of the relationship
|
|
68
|
+
width: Optional[int | float] = Field(None, gt=0.0, description="The width of the relationship")
|
|
67
69
|
#: Additional properties of the relationship that do not directly impact the visualization
|
|
68
70
|
properties: dict[str, Any] = Field(
|
|
69
71
|
default_factory=dict,
|