From 957879b58f2a4a164f84a4ee362ef8582d2c5511 Mon Sep 17 00:00:00 2001 From: Nicola Vitucci Date: Tue, 18 Nov 2025 14:29:42 +0000 Subject: [PATCH 01/15] Change Sphinx preview port --- scripts/render_and_host_docs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/render_and_host_docs.sh b/scripts/render_and_host_docs.sh index 808196c8..bf72a970 100755 --- a/scripts/render_and_host_docs.sh +++ b/scripts/render_and_host_docs.sh @@ -13,4 +13,4 @@ GIT_ROOT=$(git rev-parse --show-toplevel) make clean html ) -python3 -m http.server 8000 -d "${GIT_ROOT}/docs/build/html" +python3 -m http.server 9000 -d "${GIT_ROOT}/docs/build/html" From 5b6b971b3f7945a293013517f33b9b8097459ab2 Mon Sep 17 00:00:00 2001 From: Nicola Vitucci Date: Tue, 18 Nov 2025 14:50:08 +0000 Subject: [PATCH 02/15] Add base Antora configuration --- docs/.gitignore | 4 ++ docs/antora/antora.yml | 6 +++ docs/antora/modules/ROOT/content-nav.adoc | 3 ++ docs/antora/modules/ROOT/pages/index.adoc | 10 ++++ docs/antora/package.json | 54 +++++++++++++++++++ docs/antora/preview.yml | 61 +++++++++++++++++++++ docs/antora/publish.yml | 64 +++++++++++++++++++++++ docs/antora/server.js | 10 ++++ 8 files changed, 212 insertions(+) create mode 100644 docs/antora/antora.yml create mode 100644 docs/antora/modules/ROOT/content-nav.adoc create mode 100644 docs/antora/modules/ROOT/pages/index.adoc create mode 100644 docs/antora/package.json create mode 100644 docs/antora/preview.yml create mode 100644 docs/antora/publish.yml create mode 100644 docs/antora/server.js diff --git a/docs/.gitignore b/docs/.gitignore index 378eac25..d6846fe5 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -1 +1,5 @@ build + +# Antora docs +antora/package-lock.json +antora/node_modules/ \ No newline at end of file diff --git a/docs/antora/antora.yml b/docs/antora/antora.yml new file mode 100644 index 00000000..7fbfa316 --- /dev/null +++ b/docs/antora/antora.yml @@ -0,0 +1,6 @@ +name: python-graph-visualization +title: Neo4j Python Graph Visualization +version: '0.6' +start_page: ROOT:index.adoc +nav: +- modules/ROOT/content-nav.adoc diff --git a/docs/antora/modules/ROOT/content-nav.adoc b/docs/antora/modules/ROOT/content-nav.adoc new file mode 100644 index 00000000..ee1079e7 --- /dev/null +++ b/docs/antora/modules/ROOT/content-nav.adoc @@ -0,0 +1,3 @@ +* xref:index.adoc[] +* API reference +* Tutorials \ No newline at end of file diff --git a/docs/antora/modules/ROOT/pages/index.adoc b/docs/antora/modules/ROOT/pages/index.adoc new file mode 100644 index 00000000..9f2ef116 --- /dev/null +++ b/docs/antora/modules/ROOT/pages/index.adoc @@ -0,0 +1,10 @@ += Introduction + +This is the documentation for the `neo4j-viz` Python library by Neo4j. +The library allows you to visualize graph data interactively in Python using a simple API. + +The library wraps the link:https://neo4j.com/docs/nvl/current/[Neo4j Visualization JavaScript library (NVL)], and provides additional features for working with graph data in Python. +Notably, there are convenience methods for importing data from source such as link:https://pandas.pydata.org/[Pandas DataFrames], link:https://neo4j.com/docs/graph-data-science/current/[Neo4j Graph Data Science], link:https://neo4j.com/docs/python-manual/current/[Neo4j Database], and link:https://docs.snowflake.com/[Snowflake tables]. + +The source code is available on link:https://github.com/neo4j/python-graph-visualization[GitHub]. +If you have a suggestion on how we can improve the library or want to report a problem, you can create a link:https://github.com/neo4j/python-graph-visualization/issues/new[new issue]. \ No newline at end of file diff --git a/docs/antora/package.json b/docs/antora/package.json new file mode 100644 index 00000000..3af26edb --- /dev/null +++ b/docs/antora/package.json @@ -0,0 +1,54 @@ +{ + "name": "python-graph-visualization", + "version": "0.6.1", + "description": "Neo4j Python Graph Visualization", + "main": "server.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "prestart": "npm update", + "start": "nodemon --exec \"npm run build\"", + "serve": "node server.js", + "clean": "rm -rf build", + "build": "npm run build:preview", + "postbuild": "node server.js", + "build:preview": "antora preview.yml --stacktrace --log-format=pretty", + "build:publish": "npm run clean && antora publish.yml --stacktrace --log-format=pretty", + "verify:preview": "antora --stacktrace --fetch preview.yml --log-format=json --log-level=info --log-file ./build/log/log.json", + "verify:publish": "antora --stacktrace --fetch publish.yml --log-format=json --log-level=info --log-file ./build/log/log.json" + }, + "keywords": [ + "antora", + "neo4j" + ], + "author": "Neo4j", + "license": "ISC", + "dependencies": { + "@neo4j-antora/aliases-redirects": "^0.2.5", + "@neo4j-antora/antora-add-notes": "^0.3.2", + "@neo4j-antora/mark-terms": "^1.1.0", + "@neo4j-antora/roles-labels": "^0.1.1", + "@neo4j-antora/selector-labels": "^0.1.1", + "@neo4j-antora/table-footnotes": "^1.0.0", + "@neo4j-antora/xref-hash-validator": "^0.1.3", + "@neo4j-documentation/macros": "^1.0.4", + "@neo4j-documentation/remote-include": "^1.0.0", + "antora": "3.1.14" + }, + "devDependencies": { + "express": "^5.1.0", + "nodemon": "^3.1.0" + }, + "nodemonConfig": { + "watch": [ + "**/modules/**", + "**/antora.yml", + "**/preview.yml", + "**/publish.yml" + ], + "ext": "yml,yaml,adoc,svg,png,jpg", + "ignore": [ + "build", + "node_modules" + ] + } +} diff --git a/docs/antora/preview.yml b/docs/antora/preview.yml new file mode 100644 index 00000000..ea96bc61 --- /dev/null +++ b/docs/antora/preview.yml @@ -0,0 +1,61 @@ +site: + title: Neo4j Docs + url: https://neo4j.com/docs + start_page: python-graph-visualization:ROOT:index.adoc + +content: + sources: + - url: ../../ + start_path: docs/antora + branches: HEAD + exclude: + - '!**/_includes/*' + - '!**/readme.adoc' + - '!**/README.adoc' + +ui: + bundle: + url: https://static-content.neo4j.com/build/ui-bundle-latest.zip + snapshot: true + output_dir: /assets + +urls: + html_extension_style: indexify + +antora: + extensions: + - "@neo4j-antora/roles-labels" + - "@neo4j-antora/table-footnotes" + - "@neo4j-antora/xref-hash-validator" + +asciidoc: + extensions: + - "@neo4j-documentation/remote-include" + - "@neo4j-documentation/macros" + - "@neo4j-antora/mark-terms" + attributes: + # page-attributes are used by the ui-bundle and by extensions + page-theme: docs + page-type: Docs + page-search-type: Docs + page-search-site: Reference Docs + page-canonical-root: /docs + page-terms-to-mark: Cypher + page-pagination: true + page-no-canonical: true + page-origin-private: true # change to false to display 'Raise an issue' links + page-hide-toc: false + page-mixpanel: 4bfb2414ab973c741b6f067bf06d5575 + # legacy attributes - do not change these + includePDF: false + nonhtmloutput: "" + experimental: '' + # update the copyright value with the first commit in a new year + copyright: 2025 + # icon attributes + check-mark: icon:check[] + cross-mark: icon:times[] + # neo4j.com attributes. Always use when linking to neo4j.com URLs + neo4j-base-uri: https://neo4j.com + neo4j-docs-base-uri: '{neo4j-base-uri}/docs' + common-license-page-uri: '{neo4j-docs-base-uri}/license' diff --git a/docs/antora/publish.yml b/docs/antora/publish.yml new file mode 100644 index 00000000..9651f715 --- /dev/null +++ b/docs/antora/publish.yml @@ -0,0 +1,64 @@ +# Use this playbook file when you need to build and publish multuple versions of your content together +site: + title: Neo4j Docs + url: https://neo4j.com/docs + start_page: python-graph-visualization:ROOT:index.adoc + +content: + sources: + - url: ../../ + start_path: docs/antora + branches: ['HEAD'] + exclude: + - '!**/_includes/*' + - '!**/readme.adoc' + - '!**/README.adoc' + +ui: + bundle: + url: https://static-content.neo4j.com/build/ui-bundle-latest.zip + snapshot: true + output_dir: /assets + +urls: + html_extension_style: indexify + +antora: + extensions: + - "@neo4j-antora/aliases-redirects" + - "@neo4j-antora/roles-labels" + - "@neo4j-antora/table-footnotes" + - "@neo4j-antora/xref-hash-validator" + +asciidoc: + extensions: + - "@neo4j-documentation/remote-include" + - "@neo4j-documentation/macros" + - "@neo4j-antora/mark-terms" + attributes: + # page-attributes are used by the ui-bundle and by extensions + page-theme: docs + page-type: Docs + page-search-type: Docs + page-search-site: Reference Docs + page-canonical-root: /docs + page-terms-to-mark: Cypher + page-pagination: true + page-no-canonical: true + page-origin-private: true # change to false to display 'Raise an issue' links + page-hide-toc: false + page-mixpanel: 4bfb2414ab973c741b6f067bf06d5575 + # legacy attributes - do not change these + includePDF: false + nonhtmloutput: "" + experimental: '' + # update the copyright value with the first commit in a new year + copyright: 2025 + # icon attributes + check-mark: icon:check[] + cross-mark: icon:times[] + # neo4j.com attributes. Always use when linking to neo4j.com URLs + neo4j-base-uri: '' + neo4j-docs-base-uri: /docs + common-license-page-uri: '{neo4j-docs-base-uri}/license' + diff --git a/docs/antora/server.js b/docs/antora/server.js new file mode 100644 index 00000000..294616fe --- /dev/null +++ b/docs/antora/server.js @@ -0,0 +1,10 @@ +const express = require('express') + +const app = express() +app.use(express.static('./build/site')) + +app.use('/static/assets', express.static('./build/site/assets')) + +app.get('/', (req, res) => res.redirect('/docs/')) + +app.listen(8000, () => console.log('šŸ“˜ http://localhost:8000')) \ No newline at end of file From 03b46bc0696841b2d0bc303222a20a3d487698fb Mon Sep 17 00:00:00 2001 From: Nicola Vitucci Date: Tue, 18 Nov 2025 14:55:04 +0000 Subject: [PATCH 03/15] Add skeleton for other pages --- docs/antora/modules/ROOT/content-nav.adoc | 5 +++++ docs/antora/modules/ROOT/pages/customizing.adoc | 1 + docs/antora/modules/ROOT/pages/getting-started.adoc | 1 + docs/antora/modules/ROOT/pages/installation.adoc | 1 + docs/antora/modules/ROOT/pages/integration.adoc | 1 + docs/antora/modules/ROOT/pages/rendering.adoc | 1 + 6 files changed, 10 insertions(+) create mode 100644 docs/antora/modules/ROOT/pages/customizing.adoc create mode 100644 docs/antora/modules/ROOT/pages/getting-started.adoc create mode 100644 docs/antora/modules/ROOT/pages/installation.adoc create mode 100644 docs/antora/modules/ROOT/pages/integration.adoc create mode 100644 docs/antora/modules/ROOT/pages/rendering.adoc diff --git a/docs/antora/modules/ROOT/content-nav.adoc b/docs/antora/modules/ROOT/content-nav.adoc index ee1079e7..7f4ed64d 100644 --- a/docs/antora/modules/ROOT/content-nav.adoc +++ b/docs/antora/modules/ROOT/content-nav.adoc @@ -1,3 +1,8 @@ * xref:index.adoc[] +* xref:installation.adoc[] +* xref:getting-started.adoc[] +* xref:integration.adoc[] +* xref:rendering.adoc[] +* xref:customizing.adoc[] * API reference * Tutorials \ No newline at end of file diff --git a/docs/antora/modules/ROOT/pages/customizing.adoc b/docs/antora/modules/ROOT/pages/customizing.adoc new file mode 100644 index 00000000..5efcd1e9 --- /dev/null +++ b/docs/antora/modules/ROOT/pages/customizing.adoc @@ -0,0 +1 @@ += Customizing the visualization \ No newline at end of file diff --git a/docs/antora/modules/ROOT/pages/getting-started.adoc b/docs/antora/modules/ROOT/pages/getting-started.adoc new file mode 100644 index 00000000..395fe9e7 --- /dev/null +++ b/docs/antora/modules/ROOT/pages/getting-started.adoc @@ -0,0 +1 @@ += Getting started \ No newline at end of file diff --git a/docs/antora/modules/ROOT/pages/installation.adoc b/docs/antora/modules/ROOT/pages/installation.adoc new file mode 100644 index 00000000..95137523 --- /dev/null +++ b/docs/antora/modules/ROOT/pages/installation.adoc @@ -0,0 +1 @@ += Installation \ No newline at end of file diff --git a/docs/antora/modules/ROOT/pages/integration.adoc b/docs/antora/modules/ROOT/pages/integration.adoc new file mode 100644 index 00000000..e22f98d6 --- /dev/null +++ b/docs/antora/modules/ROOT/pages/integration.adoc @@ -0,0 +1 @@ += Integration with other libraries \ No newline at end of file diff --git a/docs/antora/modules/ROOT/pages/rendering.adoc b/docs/antora/modules/ROOT/pages/rendering.adoc new file mode 100644 index 00000000..06d6b8cd --- /dev/null +++ b/docs/antora/modules/ROOT/pages/rendering.adoc @@ -0,0 +1 @@ += Rendering a graph \ No newline at end of file From 201857fe770ba385fea278c475bef8cac384cf26 Mon Sep 17 00:00:00 2001 From: Nicola Vitucci Date: Wed, 19 Nov 2025 11:04:43 +0000 Subject: [PATCH 04/15] Update Sphinx build and view conf --- docs/Makefile | 7 +++---- docs/antora/preview.yml | 2 ++ docs/antora/publish.yml | 6 +++++- scripts/render_and_host_docs.sh | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/docs/Makefile b/docs/Makefile index d0c3cbf1..f2d75902 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -3,7 +3,7 @@ # You can set these variables from the command line, and also # from the environment for the first two. -SPHINXOPTS ?= +SPHINXOPTS ?= -b dirhtml SPHINXBUILD ?= sphinx-build SOURCEDIR = source BUILDDIR = build @@ -14,7 +14,6 @@ help: .PHONY: help Makefile -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +# Use this format to make use of the "-b dirhtml" switch %: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + @$(SPHINXBUILD) $(SPHINXOPTS) "$(SOURCEDIR)" "$(BUILDDIR)" diff --git a/docs/antora/preview.yml b/docs/antora/preview.yml index ea96bc61..193274bb 100644 --- a/docs/antora/preview.yml +++ b/docs/antora/preview.yml @@ -59,3 +59,5 @@ asciidoc: neo4j-base-uri: https://neo4j.com neo4j-docs-base-uri: '{neo4j-base-uri}/docs' common-license-page-uri: '{neo4j-docs-base-uri}/license' + api-uri: http://localhost:9000/api-reference + tutorials-uri: http://localhost:9000/tutorials diff --git a/docs/antora/publish.yml b/docs/antora/publish.yml index 9651f715..3a7ac8a6 100644 --- a/docs/antora/publish.yml +++ b/docs/antora/publish.yml @@ -1,4 +1,4 @@ -# Use this playbook file when you need to build and publish multuple versions of your content together +# Use this playbook file when you need to build and publish multiple versions of your content together site: title: Neo4j Docs url: https://neo4j.com/docs @@ -61,4 +61,8 @@ asciidoc: neo4j-base-uri: '' neo4j-docs-base-uri: /docs common-license-page-uri: '{neo4j-docs-base-uri}/license' + #Ā Needs to be updated manually for now + docs-version: current + api-uri: https://neo4j.com/docs/nvl-python/{docs-version}/api-reference + tutorials-uri: https://neo4j.com/docs/nvl-python/{docs-version}/tutorials diff --git a/scripts/render_and_host_docs.sh b/scripts/render_and_host_docs.sh index bf72a970..78392d06 100755 --- a/scripts/render_and_host_docs.sh +++ b/scripts/render_and_host_docs.sh @@ -13,4 +13,4 @@ GIT_ROOT=$(git rev-parse --show-toplevel) make clean html ) -python3 -m http.server 9000 -d "${GIT_ROOT}/docs/build/html" +python3 -m http.server 9000 -d "${GIT_ROOT}/docs/build" From 7a5eb2f637256b777dd5937df0ec0d39051c386b Mon Sep 17 00:00:00 2001 From: Nicola Vitucci Date: Wed, 19 Nov 2025 11:04:58 +0000 Subject: [PATCH 05/15] Add content to Antora docs --- docs/antora/modules/ROOT/content-nav.adoc | 4 +- .../modules/ROOT/pages/customizing.adoc | 223 +++++++++++++- .../modules/ROOT/pages/getting-started.adoc | 2 +- .../modules/ROOT/pages/installation.adoc | 58 +++- .../modules/ROOT/pages/integration.adoc | 287 +++++++++++++++++- docs/antora/modules/ROOT/pages/rendering.adoc | 64 +++- 6 files changed, 631 insertions(+), 7 deletions(-) diff --git a/docs/antora/modules/ROOT/content-nav.adoc b/docs/antora/modules/ROOT/content-nav.adoc index 7f4ed64d..8e2e2951 100644 --- a/docs/antora/modules/ROOT/content-nav.adoc +++ b/docs/antora/modules/ROOT/content-nav.adoc @@ -4,5 +4,5 @@ * xref:integration.adoc[] * xref:rendering.adoc[] * xref:customizing.adoc[] -* API reference -* Tutorials \ No newline at end of file +* link:{tutorials-uri}[Tutorials] +* link:{api-uri}[API reference] \ No newline at end of file diff --git a/docs/antora/modules/ROOT/pages/customizing.adoc b/docs/antora/modules/ROOT/pages/customizing.adoc index 5efcd1e9..6e9787f1 100644 --- a/docs/antora/modules/ROOT/pages/customizing.adoc +++ b/docs/antora/modules/ROOT/pages/customizing.adoc @@ -1 +1,222 @@ -= Customizing the visualization \ No newline at end of file += Customizing the visualization + +Once created, a link:{api-uri}/visualization-graph[`VisualizationGraph` object] can be modified in various ways +to adjust what the visualization looks like the next time you render it. +In this section we will discuss how to color, size, and pin nodes, as well as how to directly modify nodes and +relationships of existing `VisualizationGraph` objects. + +If you have not yet created a `VisualizationGraph` object, refer to one of the following sections: + +* xref:getting-started.adoc[Getting started] for creating a visualization graph from scratch using `neo4j-viz` + primitives like link:{api-uri}/node/[Node] and link:{api-uri}/relationship/[Relationship] and + link:{api-uri}/visualization-graph[`VisualizationGraph`] directly. +* xref:integration.adoc[] for importing data from a Pandas DataFrame or Neo4j GDS projection. + +== Setting node captions + +Node captions are the text labels displayed on nodes in the visualization. + +=== The `set_node_captions` method + +By calling the `neo4j_viz.VisualizationGraph.set_node_captions()` method, you can set node captions based on a node field (like `id`, `size`, etc.) or a node property (members of the `Node.properties` map). + +The method accepts an `override` parameter (default `True`) that controls whether to replace existing captions. +If `override=False`, only nodes without captions will be updated. + +Here is an example of setting node captions from a property: + +[source, python] +---- +# VG is a VisualizationGraph object with nodes that have a "name" property +VG.set_node_captions(property="name") +---- + +You can also set captions from a node field, and choose not to override existing captions: + +[source, python] +---- +# VG is a VisualizationGraph object +VG.set_node_captions(field="id", override=False) +---- + +For more complex scenarios where you need fallback logic or want to combine multiple properties, you can iterate over nodes directly: + +[source, python] +---- +# VG is a VisualizationGraph object +for node in VG.nodes: + caption = node.properties.get("name") or node.properties.get("title") or node.id + node.caption = str(caption) +---- + +== Coloring nodes + +Nodes can be colored directly by providing them with a color field, upon creation. +This can for example be done by passing a color as a string to the `color` parameter of the +link:{api-uri}/node[Node] object. + +Alternatively, you can color nodes based on a field or property of the nodes after a `VisualizationGraph` object has been +created. + +=== The `color_nodes` method + +By calling the link:{api-uri}/visualization-graph/#neo4j_viz.VisualizationGraph.color_nodes[`neo4j_viz.VisualizationGraph.color_nodes()`] method, you can color nodes based on a node field or property (members of the `Node.properties` map). + +It's possible to color the nodes based on a discrete or continuous color space (see link:{api-uri}/colors[`ColorSpace`]). +In the discrete case, a new color from the `colors` provided is assigned to each unique value of the node field/property. +In the continuous case, the `colors` should be a list of colors representing a range that are used to +create a gradient of colors based on the values of the node field/property. + +By default the Neo4j color palette, that works for both light and dark mode, will be used. +If you want to use a different color palette, you can pass a dictionary or iterable of colors as the `colors` +parameter. +A color value can for example be either strings like "blue", or hexadecimal color codes like "#FF0000", or even a tuple of RGB values like (255, 0, 255). + +If some nodes already have a `color` set, you can choose whether or not to override it with the `override` +parameter. + +==== By discrete color space + +To not use the default colors, we can provide a list of custom colors based on the discrete node field "caption" to the `color_nodes` method: + +[source, python] +---- +from neo4j_viz.colors import ColorSpace + +# VG is a VisualizationGraph object +VG.color_nodes( + field="caption", + ["red", "#7fffd4", (255, 255, 255, 0.5), "hsl(270, 60%, 70%)"], + color_space=ColorSpace.DISCRETE +) +---- + +The full set of allowed values for colors are listed link:https://docs.pydantic.dev/2.0/usage/types/extra_types/color_types/[here]. + +Instead of defining your own colors, you could also for example use the color palettes from the link:https://jiffyclub.github.io/palettable/[`palettable` library] as in this snippet: + +[source, python] +---- +from palettable.wesanderson import Moonrise1_5 + +# VG is a VisualizationGraph object +VG.color_nodes(field="caption", Moonrise1_5.colors) # PropertyType.DISCRETE is default +---- + +In theses cases, all nodes with the same caption will get the same color. + +If there are fewer colors than unique values for the node `field` or `property` provided, the colors will be reused in a cycle. +To avoid that, you could use a larger palette or extend one with additional colors. +Refer to the link:/tutorials/gds-example[Visualizing Neo4j Graph Data Science (GDS) Graphs tutorial] for an example on how +to do the latter. + +==== By continuous color space + +To not use the default colors, we can provide a list of custom colors representing a range to the `color_nodes` method: + +[source, python] +---- +from neo4j_viz.colors import PropertyType + +# VG is a VisualizationGraph object +VG.color_nodes( + property="centrality_score", + [(255, 0, 0), (191, 64, 0), (128, 128, 0), (64, 191, 0), (0, 255, 0)] # From red to green + color_space=ColorSpace.CONTINUOUS +) +---- + +In this case, the nodes will be colored based on the value of the "centrality_score" property, with the lowest values being colored red and the highest values being colored green. +Since we only provided five colors in the range, the granularity of the gradient will be limited to five steps. + +`palettable` and `matplotlib` are great libraries to use to create custom color gradients. + +== Sizing nodes + +Nodes can be given a size directly by providing them with a size field, upon creation. +This can for example be done by passing a size as an integer to the `size` parameter of the link:{api-uri}/node[Node] object. + +Alternatively, you can size nodes after a `VisualizationGraph` object has been created. + +=== The `resize_nodes` method + +By calling the link:{api-uri}/visualization-graph/#neo4j_viz.VisualizationGraph.resize_nodes[`neo4j_viz.VisualizationGraph.resize_nodes()`] method, you can resize nodes by: + +* passing new nodes sizes as a dictionary `sizes`, mapping node IDs to sizes in pixels, or +* providing a tuple of two numbers `node_radius_min_max`: minimum and maximum radii (sizes) in pixels to which the + nodes will be scaled. + +Or you could provide both `sizes` and `node_radius_min_max`, in which case the dictionary will be used to first set +the sizes of the nodes, and then the minimum and maximum values of the tuple will be subsequently used to scale the +sizes to the provided range. + +If you provide only the `node_radius_min_max` parameter, the sizes of the nodes will be scaled such that the smallest +node will have the size of the first value, and the largest node will have the size of the second value. +The other nodes will be scaled linearly between these two values according to their relative size. +This can be useful if node sizes vary a lot, or are all very small or very big. + +In the following example, we resize the node with ID 42 to have a size of 88 pixels, and then scales all nodes to have +sizes between 5 and 20 pixels: + +[source, python] +---- +# VG is a VisualizationGraph object +VG.resize_nodes(sizes={42: 88}, node_radius_min_max=(5, 20)) +---- + +Note that means that also the node with ID 42 will be scaled to be between 5 and 20 pixels in size. + +== Pinning nodes + +Nodes can be pinned to their current position in the visualization, so that they will not be moved by the force-directed +layout algorithm. +This can be useful if you want to keep a node in a specific position, for example to highlight it. + +Nodes can be pinned directly upon creation. +This can for example be done by passing `pinned=True` to the link:{api-uri}/node[Node] object. + +Alternatively, you can toggle node pinning after a `VisualizationGraph` object has been created. + +=== The `toggle_nodes_pinned` method + +By calling the link:{api-uri}/visualization-graph/#neo4j_viz.VisualizationGraph.toggle_nodes_pinned[`neo4j_viz.VisualizationGraph.toggle_nodes_pinned()`] method, you can toggle whether nodes should be +pinned or not. +This method takes dictionary that maps node IDs to boolean values, where `True` means that the node is pinned, and +`False` means that the node is not pinned. + +In the following example, we pin the node with ID 1337 and unpin the node with ID 42: + +[source, python] +---- +# VG is a VisualizationGraph object +VG.toggle_nodes_pinned(1337: True, 42: False)}) +---- + +== Direct modification of nodes and relationships + +Nodes and relationships can also be modified directly by accessing the `nodes` and `relationships` fields of an +existing `VisualizationGraph` object. +These fields list of all the link:{api-uri}/node[Nodes] and link:{api-uri}/relationship[Relationships] in the graph, respectively. + +Each node and relationship has attributes that can be accessed and modified directly, as in the following example: + +[source, python] +---- +# VG is a VisualizationGraph object + +# Modify the first node and fifth relationship +VG.nodes[0].size = 10 +VG.nodes[0].properties["height"] = 170 +VG.relationships[4].caption = "BUYS" + +# Set the coordinates for all nodes from an existing property +for node in VG.nodes: + node.x = node.properties.get("x") + node.y = node.properties.get("y") + +# Change the caption size for all relationships +for relationship in VG.relationships: + relationship.caption_size = 15 +---- + +Any changes made to the nodes and relationships will be reflected in the next rendering of the graph. \ No newline at end of file diff --git a/docs/antora/modules/ROOT/pages/getting-started.adoc b/docs/antora/modules/ROOT/pages/getting-started.adoc index 395fe9e7..f0b7181c 100644 --- a/docs/antora/modules/ROOT/pages/getting-started.adoc +++ b/docs/antora/modules/ROOT/pages/getting-started.adoc @@ -1 +1 @@ -= Getting started \ No newline at end of file += Getting started [PLACEHOLDER] \ No newline at end of file diff --git a/docs/antora/modules/ROOT/pages/installation.adoc b/docs/antora/modules/ROOT/pages/installation.adoc index 95137523..efed4748 100644 --- a/docs/antora/modules/ROOT/pages/installation.adoc +++ b/docs/antora/modules/ROOT/pages/installation.adoc @@ -1 +1,57 @@ -= Installation \ No newline at end of file += Installation + +To install the latest version of the library, run: + +[source, console] +---- +pip install neo4j-viz +---- + +== Optional dependencies + +In addition, there are a few optional dependencies that you can install to enable additional features of the library. + +=== Pandas DataFrames `from_dfs` importer + +To install the additional dependencies required for the link:{api-uri}/from_pandas[`from_dfs`] importer you can run: + +[source, console] +---- +pip install neo4j-viz[pandas] +---- + +=== Neo4j `from_neo4j` importer + +To install the additional dependencies required for the link:{api-uri}/from_neo4j[`from_neo4j`] importer you can run: + +[source, console] +---- +pip install neo4j-viz[neo4j] +---- + +=== Neo4j Graph Data Science `from_gds` importer + +To install the additional dependencies required for the link:{api-uri}/from_gds[`from_gds`] importer you can run: + +[source, console] +---- +pip install neo4j-viz[gds] +---- + +=== Neo4j Graph Data Science `from_snowflake` importer + +To install the additional dependencies required for the link:{api-uri}/from_snowflake[`from_snowflake`] importer you can run: + +[source, console] +---- +pip install neo4j-viz[snowflake] +---- + +=== Notebook tutorials + +To install all the additional dependencies required for the link:{tutorials-uri}[notebook examples] you can run: + +[source, console] +---- +pip install neo4j-viz[notebook] +---- \ No newline at end of file diff --git a/docs/antora/modules/ROOT/pages/integration.adoc b/docs/antora/modules/ROOT/pages/integration.adoc index e22f98d6..37ac6a7d 100644 --- a/docs/antora/modules/ROOT/pages/integration.adoc +++ b/docs/antora/modules/ROOT/pages/integration.adoc @@ -1 +1,286 @@ -= Integration with other libraries \ No newline at end of file += Integration with other libraries + +In addition to creating graphs from scratch, with `neo4j-viz` as is shown in the +xref:getting-started.adoc[], you can also import data directly from external sources. +In this section we will cover how to import data from link:https://pandas.pydata.org/[Pandas DataFrames], +link:https://neo4j.com/docs/graph-data-science/current/[Neo4j Graph Data Science], +link:https://neo4j.com/docs/python-manual/current/[Neo4j Database], +link:https://neo4j.com/docs/cypher-manual/current/clauses/create/[GQL `CREATE` queries], and link:https://docs.snowflake.com/[Snowflake tables]. + +== Pandas DataFrames + +The `neo4j-viz` library provides a convenience method for importing data from Pandas DataFrames. +These DataFrames can be created from many sources, such as CSV files. +It requires and additional dependency to be installed, which you can do by running: + +[source, console] +---- +pip install neo4j-viz[pandas] +---- + +Once you have installed the additional dependency, you can use the link:{api-uri}/from_pandas[`from_pandas`] method +to import pandas DataFrames. + +The `from_dfs` method takes two mandatory positional parameters: + +* A Pandas `DataFrame`, or iterable (eg. list) of DataFrames representing the nodes of the graph. + The rows of the DataFrame(s) should represent the individual nodes, and the columns should represent the node + IDs and attributes. + The node ID will be set on the link:{api-uri}/node[Node], Other columns will be a key in each node's properties dictionary, that maps to the node's corresponding value in the column. + If the graph has no node properties, the nodes can be derived from the relationships DataFrame alone. +* A Pandas `DataFrame`, or iterable (eg. list) of DataFrames representing the relationships of the graph. + The rows of the DataFrame(s) should represent the individual relationships, and the columns should represent the + relationship IDs and attributes. + The relationship id, source and target node IDs will be set on the link:{api-uri}/relationship[Relationship]. + Other columns will be a key in each relationship's _properties_ dictionary, that maps to the relationship's corresponding value in the column. + +=== Example + +In this small example, we import a tiny toy graph representing a social network from two Pandas DataFrames. +As we can see the column names of the DataFrames map directly to the fields of link:{api-uri}/node[Nodes] +and link:{api-uri}/relationship[Relationships]. + +[source, python] +---- +from pandas import DataFrame +from neo4j_viz.pandas import from_dfs + +nodes = DataFrame({ + "id": [1, 2, 3], + "caption": ["Alice", "Bob", "Charlie"], + "size": [20, 10, 10], +}) + +relationships = DataFrame({ + "source": [1, 2], + "target": [2, 3], + "caption": ["LIKES", "KNOWS"], +}) + +VG = from_dfs(nodes, relationships) +---- + +== Neo4j Graph Data Science (GDS) library + +The `neo4j-viz` library provides a convenience method for importing data from the Neo4j Graph Data Science (GDS) +library. +It requires and additional dependency to be installed, which you can do by running: + +[source, console] +---- +pip install neo4j-viz[gds] +---- + +Once you have installed the additional dependency, you can use the link:{api-uri}/from_gds[`from_gds`] method +to import projections from the GDS library. + +The `from_gds` method takes two mandatory positional parameters: + +* An initialized `GraphDataScience` object for the connection to the GDS instance, and +* A `Graph` representing the projection that one wants to import. + +The optional `max_node_count` parameter can be used to limit the number of nodes that are imported from the projection. +By default, it is set to 10.000, meaning that if the projection has more than 10.000 nodes, `from_gds` will sample from it using random walk with restarts, to get a smaller graph that can be visualized. +If you want to have more control of the sampling, such as choosing a specific start node for the sample, you can call a link:https://neo4j.com/docs/graph-data-science/current/management-ops/graph-creation/sampling/[sampling] method yourself and passing the resulting projection to `from_gds`. + +The `node_properties` parameter is also optional, and should be a list of additional node properties of the projection that you want to include in the visualization. +The default is `None`, which means that all properties of the nodes in the projection will be included. +Apart from being visible through on-hover tooltips, these properties could be used to color the nodes, or give captions to them in the visualization, or simply included in the nodes' `Node.properties` maps without directly impacting the visualization. +If you want to include node properties stored at the Neo4j database, you can include them in the visualization by using the _db_node_properties_ parameter. + +=== Example + +In this small example, we import a graph projection from the GDS library, that has the node properties "pagerank" and +"componentId". +We use the "pagerank" property to determine the size of the nodes, and the "componentId" property to color the nodes. + +[source, python] +---- +from graphdatascience import GraphDataScience +from neo4j_viz.gds import from_gds +gds = GraphDataScience(...) +G = gds.graph.project(...) +# Compute the PageRank and Weakly Connected Components +gds.pageRank.mutate(G, mutateProperty="pagerank") +gds.wcc.mutate(G, mutateProperty="componentId") +# Import the projection into a `VisualizationGraph` +# Make sure to include `pagerank` and `componentId` +VG = from_gds( + gds, + G, + size_property="pagerank", + additional_node_properties=["componentId"], +) +# Color the nodes by the `componentId` property, so that the nodes are +# colored by the connected component they belong to +VG.color_nodes(property="componentId") +---- + +See the link:/tutorials/gds-example[Visualizing Neo4j Graph Data Science (GDS) Graphs tutorial] for a more extensive example. + +== Neo4j Database + +The `neo4j-viz` library provides a convenience method for importing data from Neo4j. +It requires and additional dependency to be installed, which you can do by running: + +[source, console] +---- +pip install neo4j-viz[neo4j] +---- + +Once you have installed the additional dependency, you can use the link:{api-uri}/from_neo4j[`from_neo4j`] method +to import query results from Neo4j. + +The `from_neo4j` method takes one mandatory positional parameter: A `data` argument representing either a query result in the shape of a `neo4j.graph.Graph` or `neo4j.Result`, or a `neo4j.Driver` in which case a simple default query will be executed internally to retrieve the graph data. + +The optional `max_rows` parameter can be used to limit the number of relationships shown in the visualization. +By default, it is set to 10.000, meaning that if the database has more than 10.000 rows, a warning will be raised. +Note, this only applies if the `data` parameter is a `neo4j.Driver`. + +=== Example + +In this small example, we import a graph from a Neo4j query result. + +[source, python] +---- +from neo4j import GraphDatabase, RoutingControl, Result +from neo4j_viz.gds import from_gds + +# Modify this to match your Neo4j instance's URI and credentials +URI = "neo4j://localhost:7687" +auth = ("neo4j", "password") + +with GraphDatabase.driver(URI, auth=auth) as driver: + driver.verify_connectivity() + result = driver.execute_query( + "MATCH (n)-[r]->(m) RETURN n,r,m", + database_="neo4j", + routing_=RoutingControl.READ, + result_transformer_=Result.graph, + ) + +VG = from_neo4j(result) +---- + +See the link:/tutorials/neo4j-example[Visualizing Neo4j Graphs tutorial] for a more extensive example. + +== GQL `CREATE` query + +The `neo4j-viz` library provides convenience for creating visualization graphs from GQL `CREATE` queries via the link:{api-uri}/from_gql_create[`from_gql_create`] method. + +The `from_gql_create` method takes one mandatory positional parameter: + +* A valid `query` representing a GQL `CREATE` query as a string. + +=== Example + +In this small example, we create a visualization graph from a GQL `CREATE` query. + +[source, python] +---- +from neo4j_viz.gql_create import from_gql_create + +query = """ + CREATE + (a:User {name: 'Alice', age: 23}), + (b:User {name: 'Bridget', age: 34}), + (c:User {name: 'Charles', age: 45}), + (d:User {name: 'Dana', age: 56}), + (e:User {name: 'Eve', age: 67}), + (f:User {name: 'Fawad', age: 78}), + (a)-[:LINK {weight: 0.5}]->(b), + (a)-[:LINK {weight: 4}]->(c), + (e)-[:LINK {weight: 1.1}]->(d), + (e)-[:LINK {weight: -2}]->(f); + """ + +VG = from_gql_create(query) +---- + +== Snowflake Tables + +The `neo4j-viz` library provides a convenience method for importing data from Snowflake tables. +It requires and additional dependency to be installed, which you can do by running: + +[source, console] +---- +pip install neo4j-viz[snowflake] +---- + +Once you have installed the additional dependency, you can use the link:{api-uri}/from_snowflake[`from_snowflake`] method to import Snowflake tables into a `VisualizationGraph`. + +The `from_snowflake` method takes two mandatory positional parameters: + +* A `snowflake.snowpark.Session` object for the connection to Snowflake, and + +* A link:https://neo4j.com/docs/snowflake-graph-analytics/current/jobs/#jobs-project[project configuration] as a dictionary, that specifies how you want your tables to be projected as a graph. +This configuration is the same as the project configuration of the link:https://neo4j.com/docs/snowflake-graph-analytics/current/[Neo4j Snowflake Graph Analytics application]. + +You can further customize the visualization after the _VisualizationGraph_ has been created, by using the methods described in the link:{api-uri}/customizing/[Customizing the visualization] section. + +=== Default behavior + +The node and relationship captions will be set to the names of the corresponding tables. +The nodes will be colored so that nodes from the same table have the same color, and different tables have different colors. + +=== Example + +In this small example, we import a toy graph representing a social network from two tables in Snowflake. + +[source, python] +---- +from snowflake.snowpark import Session +from neo4j_viz.snowflake import from_dfs + +# Configure according to your own setup +connection_parameters = { + "account": os.environ.get("SNOWFLAKE_ACCOUNT"), + "user": os.environ.get("SNOWFLAKE_USER"), + "password": os.environ.get("SNOWFLAKE_PASSWORD"), + "role": os.environ.get("SNOWFLAKE_ROLE"), + "warehouse": os.environ.get("SNOWFLAKE_WAREHOUSE"), +} + +session.sql( + "CREATE OR REPLACE TABLE EXAMPLE_DB.DATA_SCHEMA.PERSONS (NODEID VARCHAR);" +).collect() + +session.sql(""" +INSERT INTO EXAMPLE_DB.DATA_SCHEMA.PERSONS VALUES + ('Alice'), + ('Bob'), + ('Carol'), + ('Dave'), + ('Eve'); + """).collect() + +session.sql( + "CREATE OR REPLACE TABLE EXAMPLE_DB.DATA_SCHEMA.KNOWS (SOURCENODEID VARCHAR, TARGETNODEID VARCHAR);" +).collect() + +session.sql(""" +INSERT INTO EXAMPLE_DB.DATA_SCHEMA.KNOWS VALUES + ('Alice', 'Dave'), + ('Alice', 'Carol'), + ('Bob', 'Carol'), + ('Dave', 'Eve'), + """).collect() + +VG = from_snowflake( + session, + { + "nodeTables": [ + "EXAMPLE_DB.DATA_SCHEMA.PERSONS", + ], + "relationshipTables": { + "EXAMPLE_DB.DATA_SCHEMA.KNOWS": { + "sourceTable": "EXAMPLE_DB.DATA_SCHEMA.PERSONS", + "targetTable": "EXAMPLE_DB.DATA_SCHEMA.PERSONS", + "orientation": "UNDIRECTED", + } + }, + }, +) +---- + +For a full example of the `from_snowflake` importer in action, please see the link:http://localhost:9000/tutorials/snowflake-example/[Visualizing Snowflake Tables tutorial]. \ No newline at end of file diff --git a/docs/antora/modules/ROOT/pages/rendering.adoc b/docs/antora/modules/ROOT/pages/rendering.adoc index 06d6b8cd..ab874fbc 100644 --- a/docs/antora/modules/ROOT/pages/rendering.adoc +++ b/docs/antora/modules/ROOT/pages/rendering.adoc @@ -1 +1,63 @@ -= Rendering a graph \ No newline at end of file += Rendering a graph + +In this section, we will discuss how to render a link:{api-uri}/visualization-graph[`VisualizationGraph` object] +to display the graph visualization. + +If you have not yet created a `VisualizationGraph` object, refer to one of the following sections: + +* xref:getting-started.adoc[Getting started] for creating a visualization graph from scratch using `neo4j-viz` + primitives like link:{api-uri}/node[Node] and link:{api-uri}/relationship[Relationship] and + link:{api-uri}/visualization-graph>[`VisualizationGraph`] directly. +* xref:integration.adoc[] for importing data from a Pandas DataFrame or Neo4j GDS projection. + +== The `render` method + +Once you have a `VisualizationGraph` object, you can render it using the `render` method. +This will return a HTML object that will be displayed in an environment that supports HTML rendering, such as +Jupyter notebooks or streamlit application. + +All parameter of the `render` method are optional, and the full list of parameters of them is listed in the API +reference: link:{api-uri}/visualization-graph/#neo4j_viz.VisualizationGraph.render[neo4j_viz.VisualizationGraph.render()]. + +The most important parameters to be aware of are the `width` and `height` parameters, which control the size of +HTML object that will be rendered. +You can provide these either as a percentage of the available space (eg. `"80%"`), or as an absolute pixel value +(eg. `"800px"`). + +Further you can change the layout of the graph using the `layout` parameter, which can be set to one of the following values: + +* `Layout.FORCE_DIRECTED` - Nodes are arranged using the Force-Directed algorithm, which simulates physical forces. +To customize the layout, use _ForceDirectedOptions_ via _layout_options_. +* `Layout.HIERARCHICAL` - Arranges nodes by the directionality of their relationships, creating a tree-like structure. +To customize the layout use _HierarchicalLayoutOptions_ via _layout_options_. +* `Layout.COORDINATE` - Arranges nodes based on coordinates defined in _x_ and _y_ properties on each node. + +Another thing of note is the `max_allowed_nodes` parameter, which controls the maximum number of nodes that is allowed +for the graph to contain in order to be rendered. +It defaults to 10.000, because rendering a large number of nodes can be slow and unresponsive. +However, you can increase this value if you are confident that your environment can handle the scale. +In this case you might also want to pass `Renderer.WEB_GL` as the `renderer` to improve performance. + +By default a tooltip showing IDs and properties will be shown when mouse hovering over a node or relationship. +But you can disable this by passing `show_hover_tooltip=False`. + +=== Examples + +Refer to the xref:getting-started.adoc[] and the link:/tutorials/index[tutorials] for +examples of `render` method usage. + +== Exporting to HTML + +The object returned by the `render` method is a `IPython.display.HTML` object. +In addition to being displayed in a Jupyter notebook or streamlit application, it can also be saved as an HTML file. +This could be useful if you want to share the visualization with others or embed it in a web page. + +To save the HTML data to a file, you can use the `data` attribute of the HTML object: + +[source, python] +---- +html = VG.render(...) + +with open("my_graph.html", "w") as f: + f.write(html.data) +---- \ No newline at end of file From 45b6c0daf93946aa0149afda6976f5ef32dfa665 Mon Sep 17 00:00:00 2001 From: Nicola Vitucci Date: Wed, 19 Nov 2025 14:24:45 +0000 Subject: [PATCH 06/15] Add Getting started as Asciidoc; remove Sphinx content --- .../modules/ROOT/images/graph_00ff5513.png | Bin 0 -> 242666 bytes .../modules/ROOT/images/graph_2120034f.png | Bin 0 -> 241312 bytes .../modules/ROOT/pages/getting-started.adoc | 92 ++++- .../getting-started-checkpoint.ipynb | 378 ------------------ docs/source/customizing.rst | 248 ------------ docs/source/getting-started.nblink | 3 - docs/source/index.rst | 8 +- docs/source/installation.rst | 65 --- docs/source/integration.rst | 330 --------------- docs/source/rendering.rst | 72 ---- docs/source/tutorials/getting-started.nblink | 3 + docs/source/tutorials/index.rst | 3 +- .../extra => examples}/getting-started.ipynb | 23 +- 13 files changed, 100 insertions(+), 1125 deletions(-) create mode 100644 docs/antora/modules/ROOT/images/graph_00ff5513.png create mode 100644 docs/antora/modules/ROOT/images/graph_2120034f.png delete mode 100644 docs/extra/.ipynb_checkpoints/getting-started-checkpoint.ipynb delete mode 100644 docs/source/customizing.rst delete mode 100644 docs/source/getting-started.nblink delete mode 100644 docs/source/installation.rst delete mode 100644 docs/source/integration.rst delete mode 100644 docs/source/rendering.rst create mode 100644 docs/source/tutorials/getting-started.nblink rename {docs/extra => examples}/getting-started.ipynb (99%) diff --git a/docs/antora/modules/ROOT/images/graph_00ff5513.png b/docs/antora/modules/ROOT/images/graph_00ff5513.png new file mode 100644 index 0000000000000000000000000000000000000000..7b5697c913585935a687a850917eab14be159557 GIT binary patch literal 242666 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

}Lf4ssVnWRd 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�w$~ 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
  • V}J#td|pzNJ{bRqiTDC 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

    F<;agb? zWr}o`ny0w7bI*M2on6deVZlO_8C9yb<=&UCev0MqxCwx4 zHF347beDFv761^g{-r9j6m#ZZ49o)z?20y}%n2kZJ~@+1hH#H$KAWS2uq=C4Mfray zspRpk%Q($+M)26u)czyz5Iv@FqEsEm8oH)?FssQGYA z)K#LL$5MN?=++BIcQ0OM75}BRY`yd~degO`f{;rbIm6%9lQQxfc-?VmTHd>Djx49M z6FVZFEtA&PTTR*|OIqTRC`PIyG&ff{`#B8XibcDyI6Bpod20u^M{{N;h}J2t4YF-m zTwD4Xbj}8cXW?o8bC4Gw1Nn)7yWgyRrJVdc1e9gu`@>yjN%N z*A3mJpXpbpI_PrArSOhTif2?EI5TO6RBE||#-+A6vJPfRF*IV$fZh>K5ysFUi<}Ipi)!rih%7Kpb>m;onLbsnvw7)6jm;~qy+LkDYV8!ti$Ri#y*1@M^%m)3x zpZ}b|yBYby=W44frjO6z?`3h|wa;Xzqr`7r4l;>c%X4aYmb;@}Slya2X+~O`+tlB! z<@mKr~@xcH7pqh{!q7rn=s;hw&-9&SC8z-BaWv#6KoAM)KyE7}A}_ zp$Sm0s97psjR8sNJhPIoDNBtRY26>@GaDVUclo~m*!7tTsDFuVD%t#sN87s0ymz@Z z;&WNv=i zqps`mz0*(EqlATab8q$M{{Hi|cPE?rD+`sful)_I7B{(s zI%VKAO(XlQ@ zftb(VsGbp~a*(2Op16F5(TP}1o@jbDwVxAF)3r{etq5)kFN7_Q#oJZSnBupRGK9(sf<%= zntdd4Bqq`y7Tbd>_%;LrB`DQNd$&HNE%a{*t7|{Jc~khwdUwBrZQPX|Z>Q2vdf1B= zh9|H>EqUQ~!N%9VzR55xv*n)QUvRxuys*8ve8x3s4!=Z#{mW8VQ%Ep>`Q)$eY-jvS zj>~PvbZ_wAmX_yuYP{Qs{+u&05^}cDeopt1Zr&A1Qul$?=JCns@=U2{NBc#J@H8Iv zOQUUfByAkBi1e!|bbgBs#met>8e7)< zq24M2Fj$oyHu3h+ZbcEFQ&!=bFBMmRlqs(Jm~_YQA$Q`arbaz?YF%ybD{1Oi5A9PF z6he~n7Ze>ib&X{t3rim>slOV2G4x};;KD8b{+$o`(N~y5C@yZ=(Y|*PZVf2wSx>TC z&qyyQP#|DphVytc_qpJ%eYscAPF@vJgD&7d%?@KOZVQ?Z>hsM&0&B*~u2;s@c}TJ*Y!W}+Ux`<6>P zMQ^;23z?@A@VqZqZ`oG2k2n9GkujF@#KPkx*~`ze9`FggpPjXt?3d= zch=zgNuJF+j{d=eWw&lnR>-(oC2h|(6zj>i-@8zPO=mmws&`H2N@aI}Dx+gboPTRX zdbG2;Xv^dui-Ouuo{w&f$BB(6JlG2m^edAVf`H1YN`q%}2eY;Cm{)b=py^8txtt+8v4iSfQ2 z9U!H-2V@z1sTwO+)EwP_IuLlQ?j= z82tn~YvUKgGLL3J0$&K%4BQnuboa>v=+ zK#id<8E2^!gG+^;Y|s=U@ZBX^sBR8e>}eFP<%f(HhLDy^jTY=`S+>b(kI)0W+g*Q%XR0$pT1-+_Z%dE8Y=*X*s=OrFsueDwUnqjFy|&P5Cad4_o!9*OQeNa7FU5{(qhN}|LqEwo z3ir9f9=W7^qP=~_=ua?Vv2aUQ)3_#oS7{Vwv6Ys(IwFhId)@#+^^v)|e@85TqWG-V z_H5!pzyh2cAC7VHdKm9XZad+JPWDFH_M>p^I_x1WK`Q5|0L#VdIp*e}Ermkv(sB*U zuAv(_o9;_vQeySy(i@4^T7UkuG|=T(&Fw_#IIC7qcd0vuYVhowDBSz~ef+K~N0`IJ z{1T$dd7N715<~aRIgSXk+joNpU+${N^lMX<&5Li2_9ALUJQr$(cQ@$5_-C+qU&OT5 z+rDRG?y6~`9DAfivYplTEBj#vbx^6x7Drj<;$6;|PYvu7e>^V(y}|Sp!%_^*G9gt7 zy8AfgTd}lfZf7p~i|W9?YKUS0+$3JegV5qJ+_=&p5u`Dys>QOaWJRmcl zf48!BYE_4|g>$l((7bCQ&3F_(DU~_meShDlQ0t^OR51=&Q!%4?t>0%|*xHM>m;-MN zeiI)PMP!Vrv+s(zALh4F$wJp$-c4b z`50$#DwY+Gidt5LO7zaD(>>i_e&ukhbcgGnsCiM*rR-*d&FMSpwJyc}Z_`qWw5my0 zhV{M^W;fe$zkjus{x(fCgZ@>S6QyVd=JRO=-Q5{^zOk1lFztzTuK$Mv;C2?JJRl!o zs+~iNcj}JBK7WI{D)_fsJ*LqOM+#jR6RUxNuCMuPDv#9N8;Wg3UOiLXeLqt~xap9- zrj=hBK3Y~Y_DQOL%wQq=nwH8%*38=(-sicy8|b*6HL-F%NwHd~4eff|$lK>QIEJX^ z_$-{WRqkRkFkDhJwNRoeHQ+BIlY@w<)NOrL+BdacqG~Os&XZ^JCC%s|BAAxpF{5)+ zS9%?MP*t_Pvox2EfEnZR_-POp5TwN7oPsxDGAuorWN0E}iafz}5@G-FNUq5ghAu*x#UwORbQ_Ay#r84KqikzcBcNZ~{;O*Y)&duq3SB>KL za=QCW<}|o}547}K={6`7&ff~FNiXbE>6oaDOQNLHWaI1oUCC=MWVX*Iz^xqYv9=Y|$*QIywqk@tf-o2e3QYYSg}EH9agnsRRr16uZLa36sM>$0ov z=xg0Si+{QQZm`oBBnH+$fBqoGSUPfjr|!nuJkQLG^Y*?RE}Z=g-;;CFJ2XbLuP&uT zHMgP5#$<3PHFco{}3$}MAS>O}DR(A3pgO1+u4ZzKCTh5_*ImmAZ zNSRdMu(mLf-MWazkOUNP4R1DD{a@8w+n%>%w#tUP+QsYpxSm;CG-rNNNb;K+3HOj_ z;?dCa=@nVZd|IYD>dF45H_m(QJ@;uLC>SxR)-d18Y}6(uj@s&c^u^D~b=HZp^<=&+ z`#pZ1=R+}=K7$#UuPn<&lC&rFo?{iU=roKD&PfQPubIgfW8}Z}D!dYtwMBKdf)OnM zrKi(L@Gh5gdEZ&qs{YS|psLf}#8eG7doQtH)m!GBHYLAkf4j#nop~v($+VPreP@)k z4Afy^P6#K)c^KW7o3|59HP4f9(dAzI%KemS#&eUJEi>41 zETJjtA=d3LGI3Zpcw5qTt?$NWVumj_SA46gFhN=A6PQgn0XS$ILVodu1NH`oMwSR{ zn8~a9e!$VsamHjSb|ow53PlwZ*5)+kSd7&z2gx=k-;O?Ae|5^RyZp~Ev*wQFZ{>Qw z*6Ps^t3hgVfeaaM*zey}rKE-|cqE2n+vDcM_B1d0Mbit5+b4J;%awq?#cH&xGm|kV z_*GqmVZ^%~l?&*4zb5W0*rd>EYIRnxoR(M3@U9LyhU@PYU&f?x*8md}A;H$rvfE)s zMJ!-my6E4nSk`I$f=Ht{o6pEHEhD(~MIKIg};LYIAKGCw*J zVUtvTCxtZ_lXKej#86Ip1ZIg^3)9`W>Zss{Pi!TZZLzh+%f9NWK{W=c$%pBACq(+ zrK>L}@25)+8Y#S&$278uwd?M!Z0 zTe|ztqJRG=2hbzTd^{^7+l80b&n{E8DOl#(6<<@`&KBq59exofnm)G%v$htkSl{t* zm3AoB(_L<@ty&qo&+Kdym$j*#rvFtSeh%Lw(3?xt$S3gL>>^)VM5CVcRHLbLx!A%S z0*ns9qOm&~>Xtpu?pur&HVi&ARf9bGW47QW*6yxPU&-v%EX~4%%74+4Dbs~T;@!L%r;gRVthg7V z8~NDR*Ozyg`E9&;6T>YBn{>Ps`4EtLTGi-Q?wW|PYI1%6YAQ6TQG^^6T5|V zw=VpnT(xkKE@tiN*?AF~1x(T1z;#Y?kVyP?1x9qlxd)$+QRtyP0bODw2A@y3OM-s3W1=e$dEEGFSMJ{sO5wz`)tU8UF5)LCW{u@mxEELc$6GLo?O zX|09!+Ui9kt<3fQU$c|hl{F6a(QD(XN|t5s^*)eyC0**$b~MQGHU5xRPpnHT!$1+? zQabROoq{1o(Ak>yeRQJfE3F*OA_x9jUK^XF3AGYk^AAK3u+NXTiaf7P&b<$9vsR<+ z9P4*51~G(1Vw$sGXhS1y;vEqgg7>8+W=6()By?fBQ92^=5yi^Z?~QSYG+^WA*fBw8 zq6ldS(e?YjL-1T1-MItt;tOorN=m*!IyV>`JM{d4!HT?a-GB1oGx7c=-hQi_TkVNy z<4NKAxgskzj`qoEm%S*WepXkNw|(HOevrtzEbFH)7kJq+Z#`E^$+vXUS)D)R7U1!< z0W$lW-KETlGUgcM{I;{S{I)9I8g-RZ*q(}8j}Vv2cx--m5Ju_#Ns=DE9cW}Gp3s)@ ztdHw!PI8v>ss8ZzDdAGpm4-{C2DpW83y6C=If-)y<)?*ZSY3v=F0O^)cQzDXxK=Di z%cpr?P#vG(Jr&2dw*sbXG1HXGHx--RIW5JS%}35-Z9S-{IjJ^XJ}47EsjFIb|lfla}v2Yic|I#YBnZ$5F(AZYO3j3)GgC^psc*xj>gh5p>R_U^gt_)>xr`fu|>*}yxPK#->Q6=tbSicU!Q zvAw_(_nV;Nd0Ixcq?#V#6Pf{{um=$-6zxW9nd@UWvKueg$r4_sr-g6o6l*^+yx3_0 z9Kpej#Zl7FpSim67=OwLx+cVg=WAzwFf56Y(0*qiK5V!b79MjgB*cWsm5{T{gNjk~ z<-(hPY!wQ%JAAymMU8PObdzeWx%M;(cOo*c5a421DKLGb!9nrHJ~3i@usx1b3t}eV z+8eSCRyKFkX_U1H+Nv{ik zGWJ6x+@8O+#mPw}s?5Z7vEI3QFo0ug`;^zLo6%6sJijYzi&v8r8gZ0*@)qj*P$yjxc` z{laEU!Cecd)P6orTY2?b`Q+u(%XCOXvad>EJXlj8nEXrI?nft^BpzdquqyOw4?K>r zrqtld-Y>EHjpM*`yTU@Y^;M%=krp8?#Qh%M>fFU^Txo@Uj-8215`Kuf(yEn2-aeJC z+yR?m>UB>jqrriN_iQK!G4yWz{|T6|_Z^FwB(|Knmcj@N2Y0!gKNv7j1ZI~?Z3e8)ts5q! z3Hx=6>biWMSbD*_r8+fKCvTQMV@J&Z(|L-S;)JiF|HB5w3$eLaH6+J`2FV6cCXR^{ zF77!lS%glN0Ad2Uz{!M#{=57?`t!@48AqgPk|^yMXFuMGF61Ng+!j3wH;&W!0mzD)IhKgiP4KE`5Vks~ z`x6E(^icH0J(lT3Yuu!@cQ0g#Oh7$z*jBhJ9J+M(Ed;Y*p z<1UBJ4}q>%G_OQX$dI*4R@QJRarIXjr_upQ_DZAdD~cAR{w$g@7aG$Wo_gO$-z8$^ zo6)_#-LTZbeA976IknNcGc$8wM(tAn-Qo3e)v`i6wv?sk>HNNRAO=VDO>}k*JRY>m zv$>^SU&p1N5MD#ZKODW*t8A9p#r(tbEekO8YSgv9{DQ%o5aa}yI zEotN2^u+y?%?S{QJa&Avsln-xIycB9Dt)tRR@cAY^xRXqKrzKtHNvPk=IZbpIj;<( zc$lbCd+Squqjk!K6-q$yCvxNbCk=WNoU`xTeySpSEsi24O^1KTA-&&crtR8kK5CSTG$0{>R8z|E}=KY zD6E#A<$g}Ip}=xr>5gB%7EhS%rb>E5r$Kt5mCc+25V2e4l`~a?lii{V>$hi~F#tTFxm*A1I+6VPN2J-~GOjEZutV0^)Vb4e1}349wNq zyPlK0$5$HDr+k)^%qt?L=l}J_i?kQ4MaCuhTZ~$t9pp>69X`71H@258oHo}!^Nh;b zLxQC=Vs?%#U!H)e#Enyh$VFZsvP=U6Gp)K!E%pn=?Y^2*lcSBCjq?%J!p6P;uoRaQddw?T>)&2Cf z?6qu3tGxdFRR$STzg}nm`i@TuVjkfW8ax!7&0|Ijru~Fsms-shoSVCvo(?vhi^MOf zcz11j^`b(=y7WzMm41giH{O@A1xmQ4T-Y=hT|K3%mrceyR zMVii7JI>LnKkLc&p4-IMH(L@=XY5}-lka!Sieay(f!7$HtAF_0cDHsK4Sb)3G&fX& zhr8zLDOrNghHQ?+=L+tA17uL0eDkxUY&Vxg4n#yIRpL*UIufbaE-mihsc43hFMYnu z-rdiYP%?ORF3$;+A1-A!&QGS)G}7w76-+!E;I`0AHUTOqRyR7W?`CsGNhGwnW~~ab zeny~j0gd?{C2Zu&cAN~RGa0@$_@*AIeH2|wekmH}ulQv|WNrr56iCg)5-zG*ufH%| zQRPs+xc;P7xZ1edZjpi1k&&JymiXfEh4GN_95N>&ahSTujgS?D-v6JD0yo$c2!;u_ z#E5oJctZUdO!OGbF*)2ftS%xV3TxY?yj{b>f;N&2ACz2E&&ZLj>)T^|LPc`Ugj<*x6Lw`;A>q&T#efcwA|_O+sV3& zxKco2_y)pIjR|*Rdj8YVPqVtla=4{QO@pXM%l#W?b zH0mr!QPY=L5F2ZX#_3s@>ssrjjuyYQDVcKq(Vs&78~$Xi^|R}xU4C|#2}-5rC7YUiE8}(iM1fPI^q8iOVkbSZU_4Pr)*8-FOo<`ken+sfQLFx${til#9OF zh4pY=&m5`xv3m^>yL{i?fVZy5)6h-?Mizu;n@^f7*pCKWDzM&MxT0m+XqvyL09=Z3 zQLgo?lo1({iHQp>g|CL6?<#w{UK1AV*Ft!w@eW5m?k5dj5^?W$9;$~d!)o<6|B};c zV<$nn&Rl@EbNeJh^Y&qisy9?Cv~~)QJ1>m(x3dy`ZUkYW_K$5jB>~-r$5pxJ)0J`G z0ReYPi>9uveW{HgDCOVKdd=;*eM&jA6_h_8$enYMCNhy`V1A6@8>#)RH;C_;yV>%{ z&FViaL2Lro>=J3bgxc#dWNt&bqCwhau;IaWRqj=@0vmX8;qa52UQ<_|=;@yMuHW#S zvMM^x@{Rb!DZ|cnlLr3?64w;_&f#jUcqnBiNYLUs{u{*n^eT=reJ{1+3U<2l^Q;W# z1~O;u6Vg~;e81D5ZCZax%!gB$`>p+rK#As@yvnX_Q_a}E-8em0PVE#u?1;dcue;>W zN{U~yYv6jqbVq$UgU(GZ1RFf`*DTpctSzWsFl1O(6K%M>R{Y#=XW9NU;b1daZ5~;& z0>eqG6k7jJ;bF84^rHVCXWt!9_51$Mc~hiej|d?Onc3keE0jI5v&pE8GLKWq4#}R` zB_VsO?8pk)iLC6Id4Binh^Tj;-rwIp9><61d3qF+gH<$$&>R zpi45?O{Zzut=~qMIvhvVu5)E&l&~o}7mrz=tu z*9A$DhpXNA6cCBwNUX;6ff2J;)nOiW@Fg zXg1w(}8@Ow{1j_OUqzTVM&P82A*%T=F~Fs}SDYqq2W zRVE$|^P;_qFQgo{o6~Z#2|y?})wzNYKCSIml3G2JaL#n!@zy7th|r<+?56o6AV&c{ zaqAN8;Fa&?D34Rz-;?i@Xr+*MTSnwi(=dW~MO8qs%innVE7_=pUVc+RN8e39DvMsV zeCc-%6KWBZ=X@={0&li6W58~b4_QAJtruYy?WRxHL6tK|B$_5@Tw(W~27i#ditVYL`cdzPy63 zPKz%f^gW5LMHFUIZ2hI8P1KN^`3FG?+2C&f&MuG!D?C>TJH{8save>w5qyrCfN%kC zz3|W~*MxPyX~JNUZP@Em^i#%ZP4gOBHhGTCJhntv7GLO*ti*fUz_G(iiLw2*nWTEs zuSM}%g`kse0=6dC={hbbihnz^%6qphNm;MS^|@iX9$8t@OW~a7TNEqzYFUH@qbN5Q zO38fHI^zVa9Rg;OY~!#tZJTwNIKP&b5h_PsTU4G{oL>FX2{MVpa#|ZyoDoqHat~M? zSsn=oW?4&WTE6T`Yq&1COdcFGeH9dvfC;t9WLuYIR|{USs2wCMT|4vg9KL!NOp^jp zB{C>#*Z+V8=+4SIvV;dGogMiKcDO_V2Xl1K2isHT`!Y+1;DBfTasTiXO+^n998!jG zpj{d}RwceF5p=)nRANo6k}fl{%a4c(H`k3RZLXx{0Qty=@|71uSW@K6y{4X~3#&)P zS*+^<|7xPT+lGy}HHTp}l#@b$e>J%;Bbd=2@h;tW#;9t_%6YRxO{jcps@UZQyRgx> z2*6V$x~!TMfL6k(OTm>(6YZW1%1wi>2a$11N=?T=beNKn`7L2#l|jiNK-{j_Cz?6o z@F!7E_24<{+4Kf~-Wo>EJFidXY`EwYKHAz=b%fDD8VWIr`AWlA0xB85x087TO}t-4ugb~AfWeUVQw;#p1f4ThWwZ*ku2!3cXmtIME*eJ_(u zkX~1P@$<)?o`83eShv5*!}%8V2n>rgH9{-A$)DR{`IRP++%8v6UaYFOqs0!V{F{gG zBL^5uVxFa7`nV&MfNV+d z8l(Gs*I2_!6c-c4FE7r!y)c&q8D>Jo!ucdM>;e`jpy>J&L@tlA<$xGZRUi~SaqXZvtuz^g4#q}9e!gdGIHand|x z?WC=Is&scLIu=z%j5ana*y++g0na^@yhuy+q<^?x_(~&Niv7SXcG9g^>grqE6>O8; z!`~*q-PApL6IR8O1)JQU;N-fkpQ!I3g=O6$GaE@ga!LJPT%Chiec&_$+!FT5GfP=Q zDGiVz|NPiJqQ9`%{EA$#p9uSlQtSkq00$<{hzj6pALr&3FiANEwaT^dBfs!Gk{$cgZ^js|fwgXfl+@s2IF2SqDt4nKir72% zL;jV{PcrpU?%Qxb$GXOO_6wOQosGR&M*;T!8HqwG**bN!V~1B!m9)uVhExC*X=b{J zmg?2PTH}YYIMMcp0+s zU?Xe2lHeqr#QHiyo$S<5ZNlMuc|563dBaiP3{(4u6(q{_NvJs zaMEJwz^q-%(eD*g0Yel-Ko8LCi&K9SyAbEy(7qBY>J_OhS2LBhJRbB__hri4fDXT9 z!(o(L6@gUls{X~|l}mp~d7XN#=of9~*Ii2;)_bxcfi56zGLKGBLiI6^vB}|fL7TuW z5i82fjBO9H^w=*QYJ)0>(L#N(l&sS&aWFx_c~K#^IbMpAMA{Z2%&jOj$Fb#+B zGkg(Un@#J8OC})0gT&`x{9aVt*Qoa?R3LvqA2HKO!RZ{)srm?nd^nlB#SdtFsb@iM zWkmj^V{sjs(I?_}S|E32sKCYJ>Iu|fwws}o3|&Y$Z)?kv*Ku!`c*z-VI0WdV7 z#$UOc&))^npp>}1(%so-deqn|C!XZjRa})_7`gbkK>_Ef7yNrW73|bz> zwk-HjfH>>2Lo(pJtb(~=X$iXjq`OS1_JLaH(NoKA2_F2oHCI7g6T53c3lWOmDl>3@aQM86r&!%ssyeNrIOJ zH>?)XmVn-a9jDwJSui{c%CHalEP ziM%GA6uAjf)MQ$NmcDhpgq#R6!?yhG9H4c4Q%$@3w%h(6(c*=Y4k~nC4JFV?rzt-Mq?nE{pWw;_^lkz@PE_*k1cF z+dC|KAlZoACIZ_)b#rk+f(>uR3jGFlvGPR1mzs#)^ZebQM;tgRK9f3(8xFx74=*1D zZ>p?30>OCf=|V*MY^0e8pO3PDqY$;PyWh-14s$(=!+$}$R{LVH}xV;gi`Uu*mXtWSim(_ zZ57w`^~Uj_PvBIME=RtDtjE+3V2U7^&gMg?~+}0ANYcCyHa{Nx zmGdcQZpS%(eRIf#v&D?>}JJ=O z^-1qEQ@^7@bJm&Zbup4nMFvY_%*Dfz@8~aYY1qlLt1T|xv$`zZ^Q%yD}&fTmS%w@QH`+{iOB@9d{Y?r}+@5*hxXDFirbQdK3 z^am|S8@XQ`z|0U1OdFCEsrtp*tfoQ+Ld@zLfax-V;15xeKYBFt)p`KnD5BvS|C`5b zPKrN*f5);@>Bmb5dWT0rVe6qrn;bH4WR^((3wRcpKuD|c+m>$0$1lQ;t#UEYLoXo{ z@X-Pea&n*a19C%@N?|0tOV>^EQ3wZlDBF37>5niN$q@>}MpZiBL9gt4>^J(kc(Y9X zgVH7BV$4S4K|e_dneQtCP_|o|d{NuIg$+uWx~Qf0!2;KFI3tAd8J;lB>xfh@YIe&r ztnqv|lhxJVVkABOX@)Ui)lBfJU8B7BJd_lA1O*wVooOFF08c+n0Jew4s5POYw{P`z zh|&_wgv5LNJYcTz1bGjz$9OaBOxV?_=&EsVP=jlNYCVP5(PJ=yh+eptp^kaK@r zSWXFghtJi@&8|U7aT~IbCXc48n1*cJwuDT@5meVh?qdi%lGR@rSqcqKy@pbx>zD#% z@jZkHhXFMi4+5W)lk)alL6nWr>W%Xm%%e6d&E*spjTDkx8&T3mMC_zGeAK=(Uppjg zo$XsGKv;G-wX@TWs*}MB52-}f(r~YB+xBAe$5S$Nhz{qZCaRZO>$73v|R#LZ4g-_;wL zdxM(5oV)j4_IS&^m!liHR!bxIbef9XEH`6-xybDOMhq$%T$mYijM>tOb<~>8?_AY- zdIP$eT-~m%_B|Ftn{2@&x1fyq4{!Cyqy6CPK*&~vB6q5cmyU#Yedv+y;pXcRNViO0 zN{34y3K%y|Ipe4zopAanJt`R39eUn zW`UWZ`ah5vDZ)9vpvK(i+hIA;C2=CBW6_`$9WCZ=odq#oAlxD7kr%t=3~t&0o3RPv zRLu7{=lUQ5C_@KV`(*>*{pg;o-JKCX0HWbDbdG=?Y!%-GNnK+SE8tp~n}<^MvuuB- zHKDr%8$HR*myKvm6@#6^+Ei%|k9RN|!9r5Owx5n#ZJld>ERz)ZBwsf|I+=zlmSVwM z(N$W7P0_HXxA!oUX3sGw%Qx_6R|$q5l=;teajUoUrpI#p2qHoq>V|5|qB`>iX( zG|R3CH;r~$HgMjV?rKiB8@5wRn~xjJ{$Yt<^{S^zj9RxjZb{Yn7+!~kbNHvZJ0Rw} z;sT20Ibc`oa&;it-7*OCn+>nDNN>uem^NTZ202G<)9tZY4WH*F;kH~Mu_Oe`n;K1J zY@<@w%82;Cy|k4&b292UfTa-;`cKF{@o&1@J1haJpymvB{JlDRo&3C9YCBsh7QoPa2P0QDiJKcgI%q?FhoqwMp0JN81woD|2z5@GdK)N zSKa7BcqNVe2yFH4&O8fnhHdAX-(2&b5Z+W-C$2c%A1%!@7%iPFYRS$L$0BKyN5SV4 zMC8x8@oD&u7N}1zsVbIT6;DlT$WCdT($^e2=2L62;?t#udh4qyKW~w4^Fq|N&+-NY z?op$S4;h%1pg;VHtyHX*?qTjr2G$tsxZ!gw6II5Lu03#2I0YE32cuscT8?-Ka*ZPz zj21JHK6X-E!zRS>3Tmp#)$4g`gQg5hguYh!&R9F#Q`uQ=og^~+qUbZK^DH+d@l;xPjSYokKzb+ET` znRzqZRggb(3n#q0KGRp6?S#|?aRN3> z;rd*L?^-_ZmK8#MYvg(S!I7j4zxDfC+zOIQ$|*@*@^a<_Lam>)t-fJ{erw*1Xi-(~ zO?6e9tP?H(DIhY{tRq3K62cg8v9ucc4g%+y{X-xs(b6^`H&|EkJycFYk62jD<*^1CLG zH!LGXYv9IYpmr|iVSTPA%)I?cUykQ$OBn|2&09YsW?@+gQ+u8mvh?|qVo7IyEEhx# z2f*gX1V2w9dg4E!LKm{_n_-hLF=FK%Ug67Wu7$7?cQd2c?dZJpbf9tmaoXm)ZO1mt zieRQl>5<+P`xY;NfN=)MmzP^?H30V7Jl`|lylQd_jXqtMg|oOeKX&!Xu<4fJI%|Wo zn+w1VcAqQ)N<_9GdPy?;Egk8uq*b2AM7stD1#dU3ru76m@lJdTdKyI_4JJ3!ZR9C) zGOcqscIWjQk1nQ&zWjDv`&=#@;EvPBS?ReXi~Hmf-pl^u_Uytx;TQAFzo8MHf!7$6 zn$(Trh6AzVZZa-<5tKEOKhNXx>@I!=V$Q|syR+9g?*tvYwJ%z`m)GhFQV$oX)5|}` zam?HRO`fLtCm=i+P8rbkeBS2<#Z+G5xn?C3e2xO%b}pTpq%Mju*yHA}xuWmEBZ8+z&76=*U z?!9zEWU@K=2wN{OiqFRKXFsa2AGo9l*s>5i*W!zi=Fq7dIsDa~9{Ea#F2TRbbD6a` zXeuJM;Bw8;=)Fjsh1dO$O#vUt5lRolicz2;xA3aXv6uc;;fvYhW$^lb^O1Y)Ur?nZ z3&*d#{mGbo3_wBNEnwerV%mx6-mR5@td1cQUrH*rO;y%jjkzY=wyI8pzBrDPE9q{| z5=w`8A^b&zIm%AjyEQI-{PE4>0Y{e&TCFUF>2xWtf<#K!254C;LM7ff1XxX9A3L|L zM4E2&=87pD9@deKvjg}%wPqfx-2H_!58hsDf|_kAeXt9Cc72RJ7iz!v1a4@@1yG0F zSiWvZ|Hxvk-xWqr~G%tsD^35^3rU&pjSroJ2djKY~wqb0Yer2cq zymH8sMt3wWcz~_@lZzcdT?v5HdyJXowtD(?j%Krse+)*x_ywKB9q_tgbP9KNCHvU4 z80G9y5`iYK?)OJ6v>@k}DlxQuN(d}M26HR_R;Bn0 zfzi}RHd)~LcCSR0oNwcGtRc4z;pD1c+43gON$>Z}Gg29$=DZW(^_-}QirAbbeZioW z$Fjd4mnbda#bFSf2FM|-M&DyMeS>l?laXVR1i1?|G_C}& zCAj;tsfeOO!)B${>t)A8zE^Jy3}`X0R-a7Cj0(Rqpxe2wA{rth8e~z-(;B#~afVAv zZq$UJT|e#(0J?;Er9HIgZZj|}lMq+_W8oHrjFHoz*&O0HVd9pi+B}P7brym}9>uT6 zPJppEFSpKcj%s8qth6f5A9i+NDf=x$r(cN`{#zI+1@h6^_Yc>j$7Ud@j~rb~5L4-# z7}Bwmicf@#Q#K;xDciDxa$F$qtK8=U7oA~JSJaiIb+yAbORk7CL}%`)EtU3WqUWQJ z#F>TLJG(qBMs>WO_8Vq2s|P7dEMaUc-sS;pTK=NX%+QjMo++KPq`AxE<~{pXW_C5( zK(h2#i#O9VSC}N@@&rsDLLG*;u%qsDz}OsKKEg5na8`1KVvDs zlNr_Ur4gC-%NEy_-Lrpr3PS55IgILH{u~#v4IqxD0fB|X;=P@%D zX1kbYQ4Dk&UaeXs_CztGK4$)EHGCb418ZnV)1Gz#IVTM6e+LUz$^bZ9wi2Bn`ptH- zwDg-9>;3l=lvlBqhhVgx2jYGM{Q7@2+V5J{1`jQ(P3tmwbSofMAsDJU|6 zVc+rF21X}vS6AH0w}LqdS?>u#^~`yL)@S)M<_T?ZE0S-%1s;>nDmQ z17R6Md}1lWOm!2kxb--r^cY>&J5|TFp6Ij?-DI_z_M+mJeSzoC0aE+b>5e8PE`fr# zEnGqf!GaG12{L|Nm2%4a3OH}hAi0!hl>|LLoC&g6;E~7U4z04T>MI!e&_y zblnbtAvZc8S7z#_^D(EktD~!{)NEs^{1&=R6#fP~mu{O~D}cmb#hde3!n)d<2ROYC znGqx*G!`DK=QF(YPUg>f?L}~BoiGW1QK8`9U6&%CZyN*U z{U$Fb-0?oiJ@5gM=Jkr{M!%nniMTZx51Efi0>Qc7-lr$75Bf?-IoY>vO}UiA*b)iF<=V_!g$5yX{6?rI+k%tAyJS-#LqG|E?vX9&|Ir_J8G;#Xxg6QVh^^{G?H zN01Vo(+A!_74|RfHPBvv=FerWgEUC;=2AU0;Gph-dqmVxx95&_)Q=2sutLea>K=Zj zbngGM>|o?PN#qq5d#ZuNoDaqNDhb&W?m(G9m;?r31Pg?9lL!{0GrGLY$}(!b z>h4+|yUp3$`+1x7ml*YTd_NSU0^jKhu30i7L#_J6Q{Ei!t1hK!7xh=!LisGM$9y@R zEs_iJ)EtAYW^8rjo<^h1-U1t_bp4dRoks_<3(ueoi5bl?Boy`yk#Xc~-r*eeo0HN^ z!--%5U3)9Mwwn(YL|z&G18`7osPm0DOrfGyJ({2#2hGLs84R?(mK14oEvbzrKP;~) zq#BWaFOgiJl{_b)DZZ~$ft18iTs4!V_1ud)FVArcg?BnW0FB`Jx~xu5_Z20(f2fH{ zE?999s#wkGs^*X@-@TlNX|X2khiyXZKDlOxj){MzA~JG!b{g}rcq7umoyY2!sp4A8A%_Z| zO|_5F35>66^(ji#0L+a?S8I!iT@6&GD9hSJb4JYvS9>k>j_kxa{iHYptj|d1@p9WX zp53crEsQtIk+`1M32=fip8a~J zzit@=cI}9GbfZra;P5V3pBJe5$k{iqw^Jf@ai`2R8By`-cLkl=pLkI0cx`TjatVW} zSw!ETn@3%>HWOs%4v&3mCZ|VTN-;8hg3RRx!(vie(Ix+n-PTe*lOG&t8WNa&{l*6+ zzTSNyc-mme-LK&+sN&{>E+C2k3B>e%l>DU#EHU&E5$B-`4lJ9!WbAfx4k7X)I;uTQ z19XC7;@g(rWb;YO$sN_@R+{TJwrYAt zXL5LBY?^@XBvBAW!kwrL`R?HY%MH4cS#w-c>TN0US&|Nx>hME~YstbihGRVn>7~ng z%;lLTgMmX^*I6dD(7we18esY8xPSl6V~7uSe}H#E(6|nrx`v~0$k$X+M;p^{M(`B` zDjQesHr`G)iiEO-P}qD(zx6(F7?R1NL=FEGGS}}5nLYJ7KnC=#%2y}KK1XJ!1aI+j zE6v0Ha|W$V5TF7+-rB*$J6*557jY%`!|ECz5YH^6J)nWF%Sdl9R6z&gDF) znQskBJ!Kc}u}DIyzV!Xnnk&>x+N)6n#)Rzm`Qtxg*Zo^d;4PNRq-KT77wZp!_n-B0 zceGzXc~3fENBCXA*Pz4qjxHR@`ndAu?NO2#WAPg4H+;e4AD#xM@><16C!biQZ1V>F zM?S!A$#30yGZtBY(LkIXw0=+XLt*w}@icNb7l01AoAaftO2c|FYGuV&SenCwKo6A| zNGgQ)$598U>P^a%uVw*^7B?vMV(hd?fJ#vBdfbHCc9dZ8b_J9gvYrurp14(OpYxqa zlLR5jvK3}$^aZibgSxCLs{B^vmx2)+eDmKGzXBZ8?1=HBo806dqMzmUQXs@pR%yeVWR zTJI5bVt^q-A&Ja$adA<0IzV33m_!2(Ipv}Pu>W>P&nrkO@lZ5<@ zdp93>IdR2DiG%?Bc1&M*Y^bH&pnkw0rMB8ig67v5cO$7|-ev~AIi)41~39uhOJv$J(1j{#gn2nh8^;LlzgvvE+`WHHaA1!G<^T4jNd!} zxCpR~K_?_?AcZ0WIv~T(O%@Z`i|_>Ii zz8y)WJ@W-0yW&hX>`Ozq59)**jIm#r@=Mi)mZJrj5%O`SN+3uIM_@A}X?Mbf>I1K| z9x)o3OYkpK{tObsDt4g+6!ghuWtnuVnx1%7b@djFGmG{^Cv|ml8+<#ch%@~=H}X2v zH;59O*UM>2#S(M#>Ztb^oAxEFYTp!{9}ILL2LnBqbqUDq%RozHy%Io6BA`TiK^nU_#yvNEUZmPb=+4hwA@hoDS(1FxBk#9 ze1KGNP5}K$43E=2ZDPHuiOYLFfJ-BLkPr_!Nc}EW9!-Tch`w(%B(Y$e=LTU6;_2jC{2JP zej^LSN=s32Gk`(RdUO;$RTU&nc@B@5(n^Za(!hceHbfw=HH+h&mmfhveu1Une=65O z-;0BFVAIfI_5^xA4?|s{;aVU@DAF-QW1+@b^+yiJMDa`Mf5vJY1<;`W%BI1shzA8G z3`*wo39-bBCL`QYRsW^f#+fQJ1$b`>#sIBo|F8am7-(rCPKMOYLN>t#@EHXSOn~M$ zHr*@+DZ97y_})`QvHGC_3>x7=IHHccAa7D2gb`CgN!gI?E}fDr#7jjvm8Ku7d= z$77pU0Wl5%h?>j+5?(ABCHJJ?T#Wyztm`VkLKbWqyui{yh%C8!hy5HEvm54OS=MME z=;i{Z6=bk|9Jy1JAthK=`J5;XCM|piXD9OfzS` zFk-DMS4xkQin2OFrhsrEV`Jz!87u#U8^Y;eF$Js+Kvuo}*%QiLPjdJB!3#KHU@LEz zFM2_~0#2%X(Ci~_j)WuG@Y9zltu;4w@Hkr=Mm1h@yz?$F8Ie;fqpgh&GlM!|e@fSX zn2raJKMYjPI3}qMAT&~mn8WtNN#n&=Sv*D_xA1YWmU`ce!8<=s6V9+TewX2`n@{I{ zyzl$LM=s%VocNVde$-I*IH-^ww1nJ^Jre=8U5-sYD~nu-sko@`3CF>1baxefz$XKM zch~7AuXtPfE}joEx&mOUKYk_N4y%rM@4wyM?IY6<{~HeZ-}o2WX#-{5d9i#zc3n$? zfJrPg&7E{}qsZun%6NwivRC%;&qtQ?tV;c{QRHeDJshFQt+3+gT1D{ju^x8txPSjggUb z_~XMcf4aIreDnv_nX`2C4u5vTT34+UFCWMpX6Gxsl2%uy)JExhL1ukE_##Mwq+yu< zdxGoVMEC{*(xnw16p({@)&O&H@KZ7G<}s^eTF~sp(@V_E59$Snc_5fab%I6J)ENUp zvGZjTl#^?q=IZg<6o50%Vqz-&!fAj`zeh#jxX>phqYVgmW*eK<6&$O+2Q27~)~h)| zG6EdWN_SUzFvGHJ;0USJ!w0FT1W^0j;uEB&4@6)}{$G9qcc!p*pz$>v-~`@nEiErNR*|Rjv?|pc?fys=o#EKgjsg7?eR( zn9PYn0*HjT$c86%PZ)f);5 z)4@J&E!RH*DM7%S$hs6qibrBTQt{;UJX|lx-#OfDedNU2cDBamH0S68 z(%*yOPza~Iz?chU{Wc!Hs|Yv1X7w2H&z<(z@JCt;V6%3o9J#Jzic;!cCqa z6yMQ7aDZ6-wUJtYrHg;9rg3S)iVEen_K)Mb$LgKV&powq z`6~|NrTtxLz=0>~Gw37W?vjd{`}FW1VSX=I|mOmmW&Kty~h-tmwjh^kag* zevl-n=#s^e6F^KfgB$o8qyDPJcW4QDB%}e5xgWbu07dx<8pxs77B`rtP~DRLRHtPp z1#iB3ZTFVU6meEmWSV!atNot>X+v`kY{BpSjfnTwQcc9DO{pUn3`OM=3C7AZx6Y^) z0)_*StBP2(NM#Y zuO$J&qH_H<=8>k?T=l`wI|)YpzV&ia%?cE$RoWQv?TH0xMs2UUyZq#XACLa0vvKwq zaFL(Z*fPpO;xq=!u)6HzrhL1f(UDirOPv8 z3-hTNG3@nYc%=0edfV`UE&c5~UBwnSHMliXlTLcQWUQ9&YnCRX;$*b6QZnCppxi>< z44rsgNY~hvaEv5|WL@H9^|G1Q@55%C=qrWM4DU{?kp`T6Ni;=_>AI0m#> zVC5J{jw46Uv*Q_RY!S4NU+vNmoQj%tixuAP{U@_w<*@FV)^n@%-0WrSC8yR*yXU34 z>WsUDR>NUd$-^3@$btan~(W>uLCmFhS13Pg1xCndjSMhYJ%RW3!f!W_R0&NdJXTL*u>O5Ba7=hj%dWh^kFUQh?F z-7wZF&t5Km4F*;d_VEoxA08n_sO7uX*Lu>hKc$Itio(KUzt49YYx>Q1MAM-%dzE5swiO02!@WHh^`3e2WkBa-v*8u9ptgk$tv0CanI(~~YvjDz&Ro)u2Q zjQ(|k{k|JZf*?3bE!W3roI$fsI?pzRduEC&k~hE$_df^Cft9*ci-| zZ*-g8F4_FVIwJy2T-BWYB)OTLUC4PUt#6yy&(i zKT=N_5K82>nKv~ThWhGgZo{__S8&nBk;s+44$Y|Jw-+c1@<95(ou?2dW{kK0FTY?%-Ifn2%rWUpQvo2!GA_0atl8hd9xr!lO0bp8tXam{cWO(d z$oD88I>G!tHcUdLhI-jvKwr*yW%J3+xc4(-u5HX@I$M@2{EB7iSiW=(@979X#+@q8 zqe6V*ZR?sIkkSiF)pKDNYOMC2y;5D1ZXD31XBsZYZ(cjqD}4V^ZLBlXCjkwAUpQG%zbQ`zg3j;5%s)a?d2`V_OudmDYh6?lFn|)y{|1~0vl>H(9XnaOesmq$E z%-sREd4Bc}+Z@h=Pxwr+n51Y5RkOY+1PJQCKR#9_;5Za=B6MH{TozKW#Lur`|B1F} z;>&}Pbv%^3pdQ|<5=DC?rDGuW9_zyOunYe!vx=T~e_&^CnX@)+LLTw7&DBag1gGh) z1$)pSVtek{=kp{5jr`J~8F#fEyh?A?W-m0~JRWwcL?b#|qWa|PH^uLS6gE@8CQhx9 zhTJp)ca7vzlsV*207W+PE`Y27Rjz%Mu=KX!r+95&4t81&7)(YWYwb&r1ISoKN4+dq6ZIJobgV{co#s%XC!+ILl;fPFzd)vIw6N~V@bu~!yK`~d za8V{ZN<-2rS97J@GtNzDj4lv3T*}t#8a3hmW=A=BL5o-MlOI$`SvnrdKKhq_` zH0xGK>rCacx$*VHNP)UAC6z;(Ua#f!lw;QCFL41CK|mW*yL`EN1vT{ibJpdpiZW*7 z`h>@LuUsU1dbqp4#j$HJjA^fnuke5Wv`k5PNa!4U`_y&^Unqi7YUNV4t5E}4BAHfS zRWBLl3_3S;K;8T~L`18lXhHxbRSpO?f}E0zc;t&Fu~K#hg|jn-K~p8YDc#x@CuhRw zU)Y3kH@m^zlx#iyGEh?a!iD7<1(GHKsuG054o%b*7w^WptfocWxw9E-IXD}4>vDeC zVy#+Ymv-^zFKOea?$l*k2LYu$Hl-~~YQXB;JW2mZdK28RarI3?kg(gG7%Jy=o!8an zh^IHLx8(E7hWG}9Zd`t!Q`>8kXYGJm@|{I{+=!xYAybZuZfPgG4U|M()P0p6#QzrJ z$4kNN{&!{xOryuUaKyAp4jepu9yhIA%|&eNapBZ^KFN{tVwaoO#lvj0Q@%dQSqTk( zthxEf?{fyJdjIB=KGdf#d^*v08XfMKzY}@C6gowD!Mb!De%-W5bp%pXq0Xaq89AD- z$HX?Ce2^W5MBlpjd;HY$XU#da$LfQdDld4i>%0=2JuFLRgVh!K(eQYW3|mC$-4)H2 z)mTq5(QN@rYyefx>PiDko)PTAv6P@B{I5#Q5el1o`%_qhtWy1F_pWlGgs zg;B9qEU!L6Y|cw9RQZbrWk_X)#IShThCKT!JKOuh;;JJQ8U$5Pok3V{KWi*rsLiKl z6zaKs-|_x7xTC_r9QFCLdl~cBHKE5L&Q^n>F&kS`RBy;dQLXB}-1ps}i-aN^8a+*@ z&p~d93d+(mzDVO{D?;9vBo;K-{WL|iR50WYeBDO%z93A=W z%(aZN8ilnFe0)#el~+Vef!nmY3)EklHJ*O(euT33CCeLFAh^vT#P+n**aqK#zH0Xt zxDCSBho`thRDLvbN34aI^v*nZ~3Q{jC! zXp6ow?avD6r^7rV7N3To-4qrS3gX>Gcj0wsUSr&#)LKJ|%!3xJY;21$)|7XiF z?h6*Xo={r`efAuV_=x$9%e1AiMZ5O(?xAA=b&v)tJ;Fi0kGeZV_=AOqE<|#F2W5V~ z4?Tfa1gZ+IT%yAqM_^mD@eAUjehq;*PqQ$d?@#%lJ%rz!R`l=e=BmK;f}m+Sek1}+ z1i?Q`ij*6jH^2?ymsO}7H#`$=e>+v~zf8>lU%CHh1OWajDA+?1Is@bxnC4eeivY47 z88O<2um~x^!_@-+mtFsGbE+Yy!NA3$3UV5VH7n~Lc*Js5EfQ#kV?8=PT0)UBCdRr$ z!5@6+E(A0BYwgGpB%>q;u0S)u!RTE$&a8Tw=tD&ULYVxwNA|OC_DnDOJBd><6#q`% zWJbulasD#m3#Wxk#HYd}O_rBP*Xb27Fw4WR;U-7+I1@=nN^7_G-!60g=5T{9&okgF z6@-u9y?>erWPfDg>0eN}6iqoH_u==jE-b9hVO?g}-85V(m*G^D6I{5 zHy6;lb#ww9^aZjbOBQ(WhiL;3BiW5qHU<|sj$i&kSa>0}*MW)7Xi58nD8w6a8G%B` zMGHd6+OM%OGf+K_o4ey_Um4-BnZX2b3aq@X+ULb+E(<$ zS-3dgyl8G*0Ujmn2EIm%lQQ{R+Cx}x>EKkmg#N*o`;#X7*kw-~6gGj-p4~Q;J_J4p zAHq`E)-0?K$3?!vS~BSuTozMTH=hN`#Q(D|ggN+0b;&ZGq z-tP!7w^VdPZl1dG=)y0jwQ#=j-futmGoyqi4!!~S?uXxp@PP^=4ujW=M+K$JFsc(C zd*)uGv-J+E!!8HSAAS6DzqF{j&O>e6a6@TPnb(ek}57Ah}uxIzB$o1vtG84u<+D zgBo%o#`7Aw6bht2LT%0s;-BJ7?Id&&)sWpMcZK z!K(hM$aY8s5k?pa&jacU(LK&^scI2IPBMBVuwQ94eXW_ z=$_Lf4iPO1CWv^b@tI!H*3D~}{sNZMxk{_uW&B5hbFWkfEB)SZf2V_<8ZX=~z-H(W zmJ_pn(iN6158*QZZ8{k2|F&4@@LM4$h#55r63Pn=5w#paT^UFqC?8X*^E$%O<;nFi zTHW0-98yRJ<*OJ!p5nJB52!ZeCirT4(Z_z!F+Y6;PuiSvlZ$;Os|!z^lt#GKb7TC% z|L5Tjf1`>5A*6S_YvrDRX4X6m^>ya>sB4=AxA9G5x5OE_TG^Klx<(gyss7nh5XW%>|Km9- z^uhYUu>C#?LbN{%7sJZsa?6hyHwS%eOFFblx`V4??|LhISQ#u>jeY4jg$nClaD=l&0dz!S!1WGF}=R=P#r2kXeA*^p^4u??J*#hIOBcIbWb-CKk9@ zl?~W_(J$z?)>vkx(M|iiO9P8&!NLCx-S!(}x6ng|+ROI?pfxGx7n}-rFk6PORnJ3I ziH_wBhiJdrekpM!a!Og*Ns=MW0 zMM)Q4pLtJ>OYSJq)5-rzYPDrgwVf5jg#GVa#=est*98}wjmHv|p>^dtXb9idAShG+ zgg;IjFWT8u>)Q6r8@RgYPmC8~-2G+22g8k@+W}F{Ga|@Nec^n91-7Yx1)C0v>prWO z7joa-t05qldD{;?Zx)Bx14HcZ`F->^?}SQA5OQdJFq{ItsF&{6yc0Z%wz=fyIjK*T zNWDPs)SUHMW7r)j4CGfVv%RhEYytec-^1E_^#{wxk3gKgpofV8-i~~WYvzFp6d&<= z+f*m_j7T9OA+dDvG8q|Wh&u)vhWK;8;L)y3AEeN3cn1s>FR_p*6t#$;uCUB%BnkgbK6ZJ2pEzP5MIcc>ajy^EvDqR7dal@rS}ksT3xeOi z%Zq3^GW+q%2jqckjv;@09D!-FM}U7PPo)l!n8FRqddN2ze-0PhxM}QCOfH-lAI#NV ziIb-LJY;+RA8vu1Urx}D@bllXK;*QLzQ(`UPNxtFGx7)X&O6x}1ovO~SW9Bc{;cW2gHW#OhcospcMt1eS@w!#`yE zX)FfC-$T_O>`g2PQ0K&&(QD|P+&N;Fyz1;cgs%lc_H!nf9p0J*sH>c*aDe-R^bj%J z{oKAS?;PcB40Z4Yi08qW7O?EfH@MKsD&gSE?*@B4CJ5@zSMpK*jFsWVM{GJS?hn4W zkP$Aj^Ar1c`G1+4YM}l64V*NqAO?Ku?ygotLvSATihRo%H|d*_4~=hRnf-i}f_8(i zHbDGHz_j<@EVIMW|4S-Cf(9}QHcz2xkRaj0j+qhuJyflFm4u#b^rl?RggR2H>Zw&G z$+qy8Al`#8Fa`QQlRWT86*ZX-Y(dGfZ3K$CiJ!TvIi~hx$>)aUkBsK!iv-pvK>?CNGyhHB(8#GU|55!d*hn z2}0=t9Hk4ZG7)Q!Tp7cN#j+mm-cqvjD}|@wr2Bsl;evr_*aZ0nx~)U z!o7i4K4B`i06y(*3oFh*d8j!l5}cx!q$bYaCJtv}PPH(0u{lM8NDyT*0CnXZ`2uq* z{Ln->@aLzN|G5_6ekhbuyoM*V%6r$I`9f!k^Xg;E=hVkT(UD7>x{ zTiMcx0#P&*=eD;GnNbu8kiaG zEk3ZNAZ2(~QXM|4ReRZ988v^uu?}RxKxp0g7u*80V2F-;ZqI3G=r0b z>I3Ns2mT6`b9~YRXuB9GC%TKHYr0V9t-%70;a z9|@opsuz;pk~48a2XP#@!iXF-C(#1?V~T6fGRAy^!hA2}InoI#i(ji_Ye-vI&2!XA zidsuvN&$U9d$LrQgYoV^9;71y&N7(eYg9+OLwGx7I7_LJ<*8KFfzT(MT0X7W2~MEF zqq>tLR9<}P8s)IK_xOzFM8@-wdHTGz4Pjrdy@os=X?KMKM2495kLFt8A@)fZydAEt zI~||66_&^B=B-v0&>@p4)AODe^ka7mUKh6^4HC#FeMRm#c+DX$2IW#BD(2TcP?J}z zRYw^S`}=(YH)ELI;Dl8XFlOQ?oT&r zz{z!m&go_Dx0yEU&Msyf9icIDAryZJs!VOI`9~MC7Z%O|=0KC+e~B})9E#6v-1;Eb zg;wD$Ot393Q+3|-f<~d@1dn+#-#{loh^$Vz36%^2OWu)3r^`lT$-!R|KWxi=NsS`^ z1!%ARsH?2y*;|av&@%TZh*GOL(IJCU2hsuNOt65ax(CG(C~I79=>8H`0{wtpf!uSC z{-FP%ONjxWUIXUx-9)YI9rS-U2wG0nvNf=cf9gcZ@$nDa_Pc1`)G(kwjuncN^|t}1 zKNQ_QdXV!&UUanZkI4xDa4>>41dv|+kLyFfPX~%2@W>-~6r!Sg_ADGr7@ZcN*PrWOL?Dj*K@}#_xi`@X54embDrh|w@Fbi4zybcZ97VlF;VyshkYE^Y#46DkhB@FB zF%y~KxFK`63}$&pT|7=2rH%HM5Y)@Tpo1qeb`5AuH~n{)Q=;TR9-8WoqxkgtXJ1f= z4ZY#I%-HH*(WQ$i5hT0m<=&Hqlc9tHjQ z#mhgSqDZl<<==xvvscoegV(1(FR$dQgsVOzJ^L<<s>1o@@uE*l?;m(4+FY zAuCkGByYb(Z$b%0`|a%rTU8Nt8kJjvH&;nh7IZVK=dddni8OD7vuF8bV~(ofkd&uy zofCF+Sn(4&WXd+DpKQzQb|H{+G_XJaQRzNqt^VfcbRmZ`N zAsX&rCfAXD+iltxtRo|O3SSaN6e^3^)d{cBtQm0DkNU^D_6w>s4Q9tYt6uB(1_GOi z>W!-M+~^fO+@joBqKz`dErd$gh`jn@wEGeO7s^_I*=xx;rkUjwi-XYqQC{$oR`9tM z!Dm*e29C1~G&@Km1Y(Kg?ZL^D-V?nAWF>I;sgvnfdFHiuetq5X1-q z{CsNA2wu3nKp%2JJOL@TH!h`F?&m_OCxY?BDc9b&=*&lE=8#vVzY_X37;RH$R=xNya?r5_GND zXXeLB?`Z92qb&2t{WBlAU@vPvH_pcXq&itB%dpyELsy?lt=st#*nj$V(08&JJwGIW zEk_Cca9bVFR%ayNmpg}DJTiSJ*Zxy=J=}vOXivW?`0<(Cm7Q`Da{p7d&Wj+!o!qRd$(7)Ir0XKeJQ9EO)~4j|z9mTQ~@!s%hO z<6!v9RrhP_#Nt9DkS*iA^jC;|N?D+J3T!8R@_NUG0#i}5^t|t5HK35^X{Xj7W z@R~!B`meHS6I`9($A!ds*SC^#BBoCi^4DBoyd{bn!)RH9W_zjyx_Yr`^iUB)BW-Nd zL9a{vX?jWkKl~$CZFkXgAs>P8a=SfpW?PV@@=yF3*0B1|DjF>>!~u@8Ydtji>yC}+ zL#r-%R~}=*AcdXAp!x@4_`=7B-lc}G?_e6n&x7g`Q&W~Gfi{|#gYEX#yZ})V>y2I# zTkG^KfcuZGZQ9VpXDB&ey6!0&H__y$xPA5ES+}D0EDISniBTY;i{fI7%D9@`iiVOSIUJ)OtfMYvT=M`qi$`9sW?B%N6bA$|K^A5MbWs!YP8dGqqx3%XWGmX6 zO2m&1Z)T4M=qc!S>l$ihSZ?fzvjJCgZhAOwg8Fs<^^KZ%FaSjV#5HvdZy=N|2sD-M zLTC+f!(sf-4;Rj#A$u%|a9TA^xcF51+#gii8%nu^%^jHyO-!ywc8ad%NZ( zAHAv9oj5K|Q8j&p?qKnm-5AiT$@^u<3nS4|fqzV-Yzm zRW?dm8d7&8>^0@FXRw@F7&eo08#J5ed1bQ&<;78C6gNrw!8#X<2ZQYdcMTEHPL7v9 z5h=p{AiN*P{q_N;J4P~4UM;e*LKPnjVZ*Fh?^?nYMmrrYe4bakmdyq5W5KLhKAB2E z5_K&Wu^1Yr7{xkX7KPbY`Sv_dG@GFLH-%>=QrJamyi$E%ZLC#Y`(f=Il!WaKF29Dyt` z7V#6}=gpE+1!k1k;MbqlXz3tA%GjviN9yoqmD$ImWfqj12at7`Fp)@J9~?!Asrx|y zTSLev_}g*)bnPrUw8aYZHfaA~PCDkX$#8kpAb!&JrI;NDhVaAYTerFKFS%A_Qf+uW zvg3*X_MF4cu0I&e&}*76OXeHW?6jwVMZ1Ci{vi{(qV@$)DlL9!^kzg;O@8M;zSDZZ z^As<`Ct|^$9mVt!=+CeX^9d*7nDX8*v0UTSWH+e)?%#Lkwow!?VFWjM2ZlrO+cW}( z-#qKpm5S>e|LF(o+Vc9E;*fW<%Bq<+2MQ;y$ugej2w@(qN?~FIX^g1tn1R1+N|gm# z0+ZFouo}JuPO$joA64cLIRvJY~zR<0xAu}ke3AXHx0gwaW$PPS+Z4Rvtxu&jW z)rx6t$8P91i%|%dS%0W~QI>J6glRMEhJueqN$Krs9z9j$WJ?_zbeQ}Kj5oJfyGE?I zF)_OVdKK@eG@fk!*AqxX@S_u(lm{$BLhI^7ybZ(mT3e4bmdW?4wY^2kK(iHucX?*T zd_M4AmES9_)aqsaF>*J z<{TpPU{~)c^(lee&%@OxLKGe4?@NMgT3e<->ZJ4e8JTlprXuUX5ySD=Xv!L5V#Bb; zfd}01ra*|Mz_^4J2}_q%__{F+1lYUzi-CgChss8avjx2?G#?qip&zDhnnL3SQDY+^ zPVfc>9^LNA5~)z-1nTFC)*zw;!1INtn#JyLFSEje6?T1J9ZJ4jx_+OUt=?0%P299u zW|=c#_+&$RfAmABi#AZo*f3OfEPzkRyjy?5Vycs#3m=$X?1c<8o#a3Ozo^9rgNUB; z>Nn7!xREga*t)_jf$BNTcGJQlWXi@ZDt(G7*YU!mY?fG}48kILs&DIYWF!PW+OZcF z2)J%OYQ)rm?$LVko}2{J_c~@cg0+9q)a)--3i`I7y={J9wx1dVwc4mSz&$e$R?UXS zpDM_kCx&in$a?M_F50)nj*T?N6NcZk^#UDpOHZH1w+85MGG!|w6i%)7l902e!KS*p zQBr*@1Q+9VEv3*+v0I-C)SpOL*I;#sX(=WEM2#KKS=#NwV>TDSx0--(bj$TF$yYPp zNEHu|#~U=e(>I0hkxcsFkP%lpbN3bfbTNIy11MhHIkz<*gu@y*Fp-l+?oJ*J~ z6!#-@E$Fey7vgIGlG@U5x#*`V(9}~j3d-c&&rFH(zdc8(;yMeXraXaVt@!RZ3MR!&fkVn=aq=H)^|-EdG_ z;QsbASG)B0?7Dn~ZIHlC+lBIVWDx%Cu21 zvR#u_eC-8c%;U%1!)baA+l`@n7EK z9R**2ly8xw`OpK=8QK2)kf{Fp7}>2iSVB~_g5eu(iM`*nsGBsxY2KjOAAfM+fdr28 z?EP2i92l10xhg~3STMHe6e=+lmfzt!ZjQlqZB-jnTao1G20-%V_Io?2xlkl%W5{VD z8-u;Y0(KM+y3&hl(NdW%C4CDR?;Q5>Lo<`}i1w_cqA{*Jg?;cM-ht^?7zUrER%>n4 zl2fRuV<3h)v(yVPfxIk-EqqFeIRQD0D`_wMjcz&dnD+h)~U*u9RF>$PFgdAV~8ADUKVyt|cKnMVA)}v%Hl68TUannbOlEF za78`3R4f33qlPjNMPNTRlX-SVwArd2jfjOtAr|`p#Q-+IM z{Gd4(eGlVrN>1oO8@<#7>M|%@=zQ-ttq;{adl>l{HV zO!$c62|)ko+XwKbz%{ak>;XFo)}*XqpYBEm5D@&sAy2{RFFKf}3aGKEeL52=yGv;D z5(_%={qsc|qUJMbJ}~%nXHM!Tn;JTb92=QTBrF@WegDT|7V$_?K*wP0wCy`j5|zDq z6;J+*VxTEa#z&A0|E#i&P2L#+ZJopJm&u+3VC$8#Oba>Kv^tjEW>HJODsO6C?FNkd_qavz2bu(fq=EgU>A%kLFLQ?J*-iNi<1IVf@)01W**~S zDaY`ZLT z{{7Pf1uyHvWVb{nwHqQJR{i=OK6PzBatr>qonV}72K>KRJarTQepwT(e7O>~U_|F<(BG()@iY`bc zXT$t+AN|8;y@<|=9Hyj_)hIj5F~4@O3Y)ua5HMvm1Neox!tdu}HJxPNR zw6}pO#LH+RU4+QW7w%~XH4IC;SV_FQ=Z|WJAF<`u( zUMtl*8fr3e?DM4`$^$N$4ujm8bv ziK>03i6Mpo|I$zY(T|xcSs*_vdTdZ{autw2rKHPLdKEO!wMt?Zq%ojhiuM~NlAdX_ z?14lTAbtb=FZiTpfs0#xE7PZB=3v@L znW;?(0;rT_K7GJfpGr)l8c+^p1JQ{!zpB=zccd`#B640&{@a7{e#BhGMs62`iI43g z2uZ^1oy&Y9p>~;!mq)=7PXY8g+=#gcIh=j5XVbuOhv*}v5KhTQHwu<5|4#bwZx6GV zU|>|*=J@y)(F1}1o|)Yw4~(YyOg;=MH&eG%s0A9WGtH#d^a55`W#dFB{)+fJ;xWT& zsuz<=HXZ-l9*S>9^&1<-wc|ckKeR} z(U}?-t-B;4tVSD;t9Fd0L`im+$A~Vzr#M8k1L*~&{L&hr&wS9BEYe~*5{c&k-Pb;C z7^TY(&X;_22hf%P(`%?J%k4wH^CrHtq7$t8&iprj8RP;+UcSQT05dW%?W zbe0GQ=8Zu8uHtaW9umV9IZK2XXeV}MAR++PZvnr5?In+NjguY#>P+u}9c~_e^>(uC zI4(eY&>`Thd1QWg{=@y1d4gYo<70H9j#M-O;+g$8T-tTay}8{hh%z~W)1TV0R~yY<;|7UiqYj2Z5o%)j;A3?^NjWym!z9bpAi#oI=efh{c`o%*a-c*jXx}L1t;Te!@~E8BBnDcLO|goO*%zJ?fkXGQ%u^A$ z)T{fHIZ{tR41s;D#AktUwK4fr{s}gSU5~*t3rb#fHSr01JgVB8I!HubG`pSP#e-)3 z_uiYhU^kyw({5R2ih7$R$F+mV_eJSX>Uv<`27M=C=$ob}5gAEcM6Rp0bPw-piwcdi z#PWeOq5!<4X(X3+$R0=Dk-&;@#QiayIn=rDZ4jNhK_H2WP$zkJr0ey4+vq*TQcfdm z@d!YlO;?^!d$8iq4fB$DiE1ZXX0%kf?RL2>eF0hld-#c2TW6hhSLR4b8?jhLwu1RL zo)|ve{VoO{jzOO_&r0vqw9x#0<(;Mr9G2MQ|GFDy7=PLE)(!FIWW7AfGD~PHjxT8s z^6%0+8AE;4dQ`0mbKPj1s6*7F;9=}_I+z+H+3_YrpHl`=bakc{|O z5*tlw7(Rilr_XFu1eheIP&K>2c)LINU#qHcYi;^R^V`9hdrKgvT;VtE6<3Ne)ya63gkM7+g4vVV6k%6Mv>G}U`mPY zdCuasz`Ts$aUEG>K-5>O>&50id{E*qpxX^!USFVqk((X;V8?lNg|NBmhd*1fh$At7 zs_O%*?;BoSm{4e{Yn-&q+b&eTzpaYi@HMS7O3a_?=Yr_>yi!*VGr|T;N6DJE9o$}{ zg*_Wb!WAa|Vnbz&xmCz*AK%t(uV;~{AfHZma-t>*K=`i;FTTwSkLp~M;zCj4$snlP ztS!|Ft4At2ny9Nd9O~WxJ-YX$dC~+N^2u%TC%hY_`>?fQT>!YbVBWWUwF$XLUM+sr zSd7kG|7beIp4pe2Jbejn|KYA>d9>V#)y5{Q8h04~M<$yKVAzd^YYezxE0Q6o4DQP_ zvqqsFdC%E51Pw$_Z_8zU+2()skN0@{)8mmjzuS)37YFy8m9_= zuo*{_-vRq(-aL$NnBG+dh&IV|NCVYOfA>01YBtDFJRW?FaxZ`X)?LfU&9p$)Ly8kM ztOoYaj{lC4+&!tO)GQRh{&{dESRQ#=enmXt6nn{3;NHn&9{#O$`cGuH#9JV{&upV`2QUb@NAM&V7T%u>Tcp`dXH$R?o1kyS~;|4@+`EpVrM7 z)i5XS*?3Fvsy9AN_qyHMs1eq`OsjaZ?Iq*Q7=)bH20ewfCqU;S9Jn~-q3xi@r- zDv~AjC$$QXL=l5+AuyV+ehv`7!#$kWCkrGh&i&MF{)m-XGh6YF|H& zlz0q9gIr&q;PTF(%#}@}Eiu5>qKoB=>SNde+1LN)P=#t$plLF%R}>aF4y6dR_fNJP zq>Uy2lH3@kd=@tUQVyAG9{0r1gHle1l%pv?1?N?$;Jp4%y~PToqO~bU6g^sWb~;pL0Do@VAK77I$Y_X716moJiVbtX;<^k8QJVtM(Z zeuB(jk^>W7zE~Vf(nqm**ms};*yW3<<4IRhEXNW9*yW48l@^EKZ5JzY$_u-0C^%P9Sfgyg3;(qtjiF6xsh5Rg6N8oU5c!5A$z9)Nri!7AbuP6}a&m99uFx2g& z$iD9c)WZd857GUc77DGw>J;nr0b{Y0#~w{}+<9x~4mvz7R0Y;cA)U z&0bYS=lq9*w$HP)x$eTN92a%F|BB58pmDHOKdWTV;}k1f}7AtZm2hVV+Bs*qZ~OIv4g2cckv&@_u_&sp1=h z>YM>9ijSJf*56Ul3(Ff&3J3BiK{v2epPDI2f;{a*K-q5At5@f1NM*3$&0E4sI4!Sh1>=q1JfPCnL&o;yE4k zGkAegeOq6>hUu@R0g~*W{2hgU=hUfE zYe#}m^5B0fHxGqK_IGJRBiwZd<5`s&cs5MZxnbVCQpbYy&rhCrTra(H6j|ytdCP`j z(=ry|YKrJuBkzSLcG0U=L%8zo5P~(D+q^Np*@`Dq8FaR;yKQxPbOQG87`*0RA0*o) zYV5us@yRg!;3pSwLz<&TIt#SL!=ZZ6LFrAz z^F_bS@HG2k!y*<~0jt-7I^tb~{Y#VIl{_%5P-$@c+`UbYEDBGGCy=W}3Bd;vukNLB zWAK-&{7qs%`(SDe*gtRgRle3pTKcpXgunH=KN_%;CoU^luGr|xzr3UC`l(tJ%`!XP3L;)b|8hYmun+B8hoTXej^>fQ;MzfWyP z-=(@?I%##MR1aiVVE@&e@Gf5)N3!V8c5O4(VP61|4?ygH(rh7DvPcDX4rfg(3uI1S zLgu9IIw4#vh`);}6>dGQk*(c}2auX2#!#`D|Jks6nf?4_PA(TPk)!2LL<66j7F~P# zS#cJ(-QM5k)W$$zEO5Vg?6pP7 z$&E0TqCzM7)Xj@E3wsQl)!JDe@YnOaEvjZKTC6(N?5n+pWmm?>-28Nspf=XZT+38# zy~E0yKC`?UV1VliF}n)7Zz>l@-06Cdcl1CSnI%6frZH5CEO&{k)ULX+5}%uSJb6wm zr--*@>Siq)zvNx1q~xk5!>G*cQ26s&W<2<$%@F)*Ge_V=K9_riRd<^sr+re~B3wgKIJNsBZH-paI6NT~Nw@&8;Xu zrNJp!W46`Du-<{`+g2ciEq96e%All*w0V)k?k|)`Io->>wwlVtC!;b}TW*0mH_?du z$j$^0n8DB=rwWFL`qZDriGf@S@@rob)&}z_hC<_E>`#i9HevpdS5f}HgS#K``db1g zi$$}N_)!s*6!giBSuD9N<(Miv79-rus75z4j-kfa4b-WT^y-fO_ngfIV20@+Pzn#y z_o!lFP%}U9%*0{!1`qa(j(F^X&#;(e?LpZ&lE(rkk_tz${+{GE? ze3sL+{n*HbVJ;q)G+%%p_&Kzn^{Hu@ z@hN7nK)&ct+~o8J?Fs7kVH6HMs{-`x@xP&OTd1!00RC^)ypJDFELG%)PPNAMf$?1r z7jV17rYs|uDq&T@CW@-uwBw=uomjmSO|LC7g_6Y_++k3^Yfm21brhQA#ttl?GCFMC zW;ylKPlM@?Ovt+d%?vrlZjy!g9O9U&a~FSBsKWhCABki-KO6X-uvb`C=`+t0g0uDL z1v^Y*t;5Y{BycaQ?vEhJ1EVnDnY>5Sv6WS_-_{8Y-qc)n-O@2*Eay2}{usPi!Mt0a zTQFS+rB;GZsyCk@K)l|2k}psETQW}}DfSi!=Tvc(sS#)RB}I)Y8&hM72wP(V2jO1E z#n`=!S6#JYt5Rw9N1_OJ(3Lbw$;n}|JfQ_U6d-&9%PVYAXg$j3jh2lUKX3X?vJo_& zQrs@IiO(4FW2voS%w#pNZ)>G2O|6xX6F_=H%~*#F_vVP>iIx!{d9$3?Z~AqsQt0PB zw$kU>f=0rPxksvOi@Tnz?`XKXlmvt0n%m<#9&td9yjpA+KN*l?^4=KwYB(fP;+8U9 zd~(&~3&?S+IE}s1TxxbT-W>v1<&Tk!G%Ms&L}#>-qLJw!{@P=q9w=gk1L4(DJ!e-G zz;@nU1HvrIFov>F%_x!s*aT)BM5aIY`ZSjpo)XRzbLvCtfPUwrt1bq-!L5uyWa=n= zwK6kO-BYMO5C#P5MIDU^8j;i|aox%+VRGh@=%}qNsPe%WhHbg3f4DGd_W$)+f^%MIc3PFDbD@5e#Qi`qXsk zcD*%}rXCiX(84Cz7L32`-p7vv1n_~nw(96G%BfCFsl*QNu+<^|M)1Ci{*NTt12&Ro z{ejgU%l(0ZaF<%_Voc}&3RFdY*e1W7zR!-idARXZ4I;Z^Q$)ktOs^3QV0hmZe`BAq z=%ua~e=mR&aUAUT?PswnF=v z|5W@lc=j7;FRWYklZonPq261Bt4_ehA9fG*^c z|G*bw+qh&)zh15qB8mSU8QgB1TKfi9R2a!VFnr_1Wlx&rNnZUR>x1)&UqLdj&7fS1 z#8HiFw&jsoPGUSx0XjAS0+^43bH6`#)mo~y^~Nr4RpY=FRhOT|;wMv?gs+6J1nr4? z(VM%Ok%Vs*Nq`f$nXwPt%-ESZBBj}293!DMlqP)-#<%%SI=zDS?PRhHsBMBc9g0VL z7Ud5w9fKASsr|`$l<%hP10jwhAao)|g7W8--`}aY=ow9a--7SL!TubQmKiNUhk4|| zRV51~m@Fsg^RSFceRet>i=(J{*^;&pM$5>38D3$lA3wqF#iXceCH6Dn=7B)Jf1_78 zy0iII)`L@8ZvCL9W(`OWZf5+7n~);HLnHnxH)I4Tf7iux8qvapSYBEZwP+cP-{t-o zrpQck4pr|2*xMj}u{#oaey4n?NBgg#Jp8bq(8)$96+l%2d_*fo`+kNvWXK}oq`zU6 z@vyM5!xc1Q*}V>6eZ$62?Hz2g_&TP|loyY@U?ysH(0;g@vH4&OJI@uY{A9>`Hs9=xUR67$@~Psd!KqwKb&#qZ;cPcLUAAj(t?{A3p(ZVnPeIVY?~6? z%&0~;GZL)HKT-z>1PCm)8on|Cv8g+>KR16qv$yKgk8H}@0oA8{@EQQdKVbYW9|Rm# zQRF~LjiD$2k$-AT8u~75nQOiD)A{B|F#eXRPu<_(Rz{#TyB{?7tqc2WW39+-PvHdh z4T%5q4(l2)$MTzOP(AvP6$#VCI*?Z`UiPYipi?o?Cv92IkUH;NuY3m!8sIzOLqsYr zcpJpL9t+C&TrtQaSv(_D;CEFCg<*`>fLlIur7Q$ZK_L98Kc~?bs!F?(5g|uB_|23} zKQ2ey)9f)G!7WgPy=JUuUx-AN4_DU;X0$2W(4r=>Px# literal 0 HcmV?d00001 diff --git a/docs/antora/modules/ROOT/pages/getting-started.adoc b/docs/antora/modules/ROOT/pages/getting-started.adoc index f0b7181c..9c767ba1 100644 --- a/docs/antora/modules/ROOT/pages/getting-started.adoc +++ b/docs/antora/modules/ROOT/pages/getting-started.adoc @@ -1 +1,91 @@ -= Getting started [PLACEHOLDER] \ No newline at end of file += Getting started + +In this section, we will cover the very basics of creating a visualization graph using the `neo4j-viz` library. +We will use a small toy graph representing the purchase history of a few people and products. + +To follow along with the example below, please make sure you have xref:installation.adoc[installed the library] first. + +We start by instantiating the link:{api-uri}/node/[Nodes] and link:{api-uri}/relationship[Relationships] we want in our graph. +The only mandatory fields for a node are the ā€œidā€, and ā€œsourceā€ and ā€œtargetā€ for a relationship. +But the other fields can optionally be used to customize the appearance of the nodes and relationships in the visualization. + +Lastly we create a link:{api-uri}/visualization-graph/[VisualizationGraph] object with the nodes and relationships we created, and call its `render` method to display the graph. + +[source, python, role=nocollapse] +---- +from neo4j_viz import Node, Relationship, VisualizationGraph + +nodes = [ + Node(id=0, size=10, caption="Person"), + Node(id=1, size=10, caption="Product"), + Node(id=2, size=20, caption="Product"), + Node(id=3, size=10, caption="Person"), + Node(id=4, size=10, caption="Product"), +] + +relationships = [ + Relationship( + source=0, + target=1, + caption="BUYS", + ), + Relationship( + source=0, + target=2, + caption="BUYS", + ), + Relationship( + source=3, + target=2, + caption="BUYS", + ), +] + +VG = VisualizationGraph(nodes=nodes, relationships=relationships) + +VG.render(initial_zoom=2) +---- + +[TIP] +==== +See the link:{tutorials-uri}/getting-started/[Jupyter notebook] to interact with the graph. +==== + +image::graph_2120034f.png["Graph"] + +As we can see in the graph above, the radius of one of the nodes is larger than the others. +This is because we set the ā€œsizeā€ field of the node to 20, while the others are set to 10. + +At this time all nodes have the same color. +If we want to distinguish between the different types of nodes, we can color them differently with the `color_nodes` method. +We can pass the field we want to use to color the nodes as an argument. +In this case, we will use the "caption" field. +Nodes with the same "caption" will have the same color. +We will use the default color scheme, which is the Neo4j color scheme. + +[source, python] +---- +VG.color_nodes(field="caption") + +VG.render(initial_zoom=2) +---- + +[TIP] +==== +See the link:{tutorials-uri}/getting-started/[Jupyter notebook] to interact with the graph. +==== + +image::graph_00ff5513.png["Graph with colors"] + +We are now easily able to distinguish between the different types of nodes in the graph. + +== Next steps + +Now that we have covered the basics of creating and rendering a visualization graph, we can move on to more advanced topics. + +Here are some suggestions for what to do next: + +* Browse the link:{tutorials-uri}[notebook examples] for more examples and use cases +* Learn about the xref:integration.adoc[integrations] with other libraries such as Neo4j GDS and Pandas +* Check out the xref:rendering.adoc[rendering options] and convenience methods of `VisualizationGraph` +* Read about our link:{api-uri}/[API reference] diff --git a/docs/extra/.ipynb_checkpoints/getting-started-checkpoint.ipynb b/docs/extra/.ipynb_checkpoints/getting-started-checkpoint.ipynb deleted file mode 100644 index 2d08544a..00000000 --- a/docs/extra/.ipynb_checkpoints/getting-started-checkpoint.ipynb +++ /dev/null @@ -1,378 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "0d3ffc27", - "metadata": {}, - "source": [ - "# Getting started" - ] - }, - { - "cell_type": "markdown", - "id": "6b83277d", - "metadata": {}, - "source": [ - "In this section, we will cover the very basics of creating a visualization graph using the `neo4j-viz` library.\n", - "We will use a small toy graph representing the purchase history of a few people and products.\n", - "\n", - "To follow along with the example below, please make sure you have [installed the library](installation.rst) first.\n", - "\n", - "We start by instantiating the [Nodes](./api-reference/node.rst) and [Relationships](./api-reference/relationship.rst) we want in our graph.\n", - "The only mandatory fields for a node are the \"id\", and \"source\" and \"target\" for a relationship.\n", - "But the other fields can optionally be used to customize the appearance of the nodes and relationships in the visualization.\n", - "\n", - "Lastly we create a [VisualizationGraph](./api-reference/visualization-graph.rst) object with the nodes and relationships we created, and call its `render` method to display the graph.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "801d0bed", - "metadata": { - "tags": [ - "preserve-output" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - "

    \n", - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from neo4j_viz import Node, Relationship, VisualizationGraph\n", - "\n", - "nodes = [\n", - " Node(id=0, size=10, caption=\"Person\"),\n", - " Node(id=1, size=10, caption=\"Product\"),\n", - " Node(id=2, size=20, caption=\"Product\"),\n", - " Node(id=3, size=10, caption=\"Person\"),\n", - " Node(id=4, size=10, caption=\"Product\"),\n", - "]\n", - "relationships = [\n", - " Relationship(\n", - " source=0,\n", - " target=1,\n", - " caption=\"BUYS\",\n", - " ),\n", - " Relationship(\n", - " source=0,\n", - " target=2,\n", - " caption=\"BUYS\",\n", - " ),\n", - " Relationship(\n", - " source=3,\n", - " target=2,\n", - " caption=\"BUYS\",\n", - " ),\n", - "]\n", - "\n", - "VG = VisualizationGraph(nodes=nodes, relationships=relationships)\n", - "\n", - "VG.render(initial_zoom=2)" - ] - }, - { - "cell_type": "markdown", - "id": "365a1c31", - "metadata": {}, - "source": [ - "As we can see in the graph above, the radius of one of the nodes is larger than the others.\n", - "This is because we set the \"size\" field of the node to 20, while the others are set to 10.\n", - "\n", - "At this time all nodes have the same color.\n", - "If we want to distinguish between the different types of nodes, we can color them differently with the `color_nodes` method.\n", - "We can pass the field we want to use to color the nodes as an argument.\n", - "In this case, we will use the \"caption\" field.\n", - "Nodes with the same \"caption\" will have the same color.\n", - "We will use the default colorscheme, which is the Neo4j colorscheme.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "d935b3d4", - "metadata": { - "tags": [ - "preserve-output" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - "
    \n", - "
    \n", - " \n", - " \n", - " \n", - "
    \n", - "
    \n", - "
    \n", - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "VG.color_nodes(field=\"caption\")\n", - "\n", - "VG.render(initial_zoom=2)" - ] - }, - { - "cell_type": "markdown", - "id": "a28bd5aa", - "metadata": {}, - "source": [ - "We are now easily able to distinguish between the different types of nodes in the graph." - ] - }, - { - "cell_type": "markdown", - "id": "b3bb58465761e57a", - "metadata": {}, - "source": [ - "## Next steps\n", - "\n", - "Now that we have covered the basics of creating and rendering a visualization graph, we can move on to more advanced topics.\n", - "\n", - "Here are some suggestions for what to do next:\n", - "\n", - "* Browse the [notebook examples](./tutorials/index.rst) for more examples and use cases\n", - "* Learn about the [integrations](./integration.rst) with other libraries such as Neo4j GDS and Pandas \n", - "* Check out the [rendering](./rendering.rst) options and convenience methods of `VisualizationGraph`\n", - "* Read about our [API reference](./api-reference/index.rst)\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.9" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/source/customizing.rst b/docs/source/customizing.rst deleted file mode 100644 index a1dbca86..00000000 --- a/docs/source/customizing.rst +++ /dev/null @@ -1,248 +0,0 @@ -Customizing the visualization -============================= - -Once created, a :doc:`VisualizationGraph object <./api-reference/visualization-graph>` can be modified in various ways -to adjust what the visualization looks like the next time you render it. -In this section we will discuss how to color, size, and pin nodes, as well as how to directly modify nodes and -relationships of existing ``VisualizationGraph`` objects. - -If you have not yet created a ``VisualizationGraph`` object, please refer to one of the following sections: - -* :doc:`Getting started <./getting-started>` for creating a visualization graph from scratch using ``neo4j-viz`` - primitives like :doc:`Node <./api-reference/node>` and :doc:`Relationship <./api-reference/relationship>` and - :doc:`VisualizationGraph <./api-reference/visualization-graph>` directly. Or -* :doc:`Integration with other libraries <./integration>` for importing data from a Pandas DataFrame or Neo4j GDS - projection. - -.. contents:: On this page: - :depth: 1 - :local: - :backlinks: none - - -Setting node captions ---------------------- - -Node captions are the text labels displayed on nodes in the visualization. - -The ``set_node_captions`` method -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -By calling the :meth:`neo4j_viz.VisualizationGraph.set_node_captions` method, you can set node captions based on a -node field (like ``id``, ``size``, etc.) or a node property (members of the ``Node.properties`` map). - -The method accepts an ``override`` parameter (default ``True``) that controls whether to replace existing captions. -If ``override=False``, only nodes without captions will be updated. - -Here's an example of setting node captions from a property: - -.. code-block:: python - - # VG is a VisualizationGraph object with nodes that have a "name" property - VG.set_node_captions(property="name") - -You can also set captions from a node field, and choose not to override existing captions: - -.. code-block:: python - - # VG is a VisualizationGraph object - VG.set_node_captions(field="id", override=False) - -For more complex scenarios where you need fallback logic or want to combine multiple properties, you can iterate over -nodes directly: - -.. code-block:: python - - # VG is a VisualizationGraph object - for node in VG.nodes: - caption = node.properties.get("name") or node.properties.get("title") or node.id - node.caption = str(caption) - - -Coloring nodes --------------- - -Nodes can be colored directly by providing them with a color field, upon creation. -This can for example be done by passing a color as a string to the ``color`` parameter of the -:doc:`Node <./api-reference/node>` object. - -Alternatively, you can color nodes based on a field or property of the nodes after a ``VisualizationGraph`` object has been -created. - - -The ``color_nodes`` method -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -By calling the :meth:`neo4j_viz.VisualizationGraph.color_nodes` method, you can color nodes based on a -node field or property (members of the `Node.properties` map). - -It's possible to color the nodes based on a discrete or continuous color space (see :doc:`ColorSpace <./api-reference/colors>`). -In the discrete case, a new color from the `colors` provided is assigned to each unique value of the node field/property. -In the continuous case, the `colors` should be a list of colors representing a range that are used to -create a gradient of colors based on the values of the node field/property. - -By default the Neo4j color palette, that works for both light and dark mode, will be used. -If you want to use a different color palette, you can pass a dictionary or iterable of colors as the ``colors`` -parameter. -A color value can for example be either strings like "blue", or hexadecimal color codes like "#FF0000", or even a tuple of RGB values like (255, 0, 255). - -If some nodes already have a ``color`` set, you can choose whether or not to override it with the ``override`` -parameter. - - -By discrete color space -*********************** - -To not use the default colors, we can provide a list of custom colors based on the discrete node field "caption" to the ``color_nodes`` method: - -.. code-block:: python - - from neo4j_viz.colors import ColorSpace - - # VG is a VisualizationGraph object - VG.color_nodes( - field="caption", - ["red", "#7fffd4", (255, 255, 255, 0.5), "hsl(270, 60%, 70%)"], - color_space=ColorSpace.DISCRETE - ) - -The full set of allowed values for colors are listed `here `_. - -Instead of defining your own colors, you could also for example use the color palettes from the `palettable library `_ as in -this snippet: - -.. code-block:: python - - from palettable.wesanderson import Moonrise1_5 - - # VG is a VisualizationGraph object - VG.color_nodes(field="caption", Moonrise1_5.colors) # PropertyType.DISCRETE is default - -In theses cases, all nodes with the same caption will get the same color. - -If there are fewer colors than unique values for the node ``field`` or ``property`` provided, the colors will be reused in a cycle. -To avoid that, you could use a larger palette or extend one with additional colors. Please refer to the -:doc:`Visualizing Neo4j Graph Data Science (GDS) Graphs tutorial <./tutorials/gds-example>` for an example on how -to do the latter. - - -By continuous color space -************************* - -To not use the default colors, we can provide a list of custom colors representing a range to the ``color_nodes`` method: - -.. code-block:: python - - from neo4j_viz.colors import PropertyType - - # VG is a VisualizationGraph object - VG.color_nodes( - property="centrality_score", - [(255, 0, 0), (191, 64, 0), (128, 128, 0), (64, 191, 0), (0, 255, 0)] # From red to green - color_space=ColorSpace.CONTINUOUS - ) - -In this case, the nodes will be colored based on the value of the "centrality_score" property, with the lowest values being colored red and the highest values being colored green. -Since we only provided five colors in the range, the granularity of the gradient will be limited to five steps. - -`palettable` and `matplotlib` are great libraries to use to create custom color gradients. - - -Sizing nodes ------------- - -Nodes can be given a size directly by providing them with a size field, upon creation. -This can for example be done by passing a size as an integer to the ``size`` parameter of the -:doc:`Node <./api-reference/node>` object. - -Alternatively, you can size nodes after a ``VisualizationGraph`` object has been created. - - -The ``resize_nodes`` method -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -By calling the :meth:`neo4j_viz.VisualizationGraph.resize_nodes` method, you can resize nodes by: - -* passing new nodes sizes as a dictionary ``sizes``, mapping node IDs to sizes in pixels, or -* providing a tuple of two numbers ``node_radius_min_max``: minimum and maximum radii (sizes) in pixels to which the - nodes will be scaled. - -Or you could provide both ``sizes`` and ``node_radius_min_max``, in which case the dictionary will be used to first set -the sizes of the nodes, and then the minimum and maximum values of the tuple will be subsequently used to scale the -sizes to the provided range. - -If you provide only the ``node_radius_min_max`` parameter, the sizes of the nodes will be scaled such that the smallest -node will have the size of the first value, and the largest node will have the size of the second value. -The other nodes will be scaled linearly between these two values according to their relative size. -This can be useful if node sizes vary a lot, or are all very small or very big. - -In the following example, we resize the node with ID 42 to have a size of 88 pixels, and then scales all nodes to have -sizes between 5 and 20 pixels: - -.. code-block:: python - - # VG is a VisualizationGraph object - VG.resize_nodes(sizes={42: 88}, node_radius_min_max=(5, 20)) - -Please note that means that also the node with ID 42 will be scaled to be between 5 and 20 pixels in size. - - -Pinning nodes -------------- - -Nodes can be pinned to their current position in the visualization, so that they will not be moved by the force-directed -layout algorithm. -This can be useful if you want to keep a node in a specific position, for example to highlight it. - -Nodes can be pinned directly upon creation. -This can for example be done by passing ``pinned=True`` to the :doc:`Node <./api-reference/node>` object. - -Alternatively, you can toggle node pinning after a ``VisualizationGraph`` object has been created. - - -The ``toggle_nodes_pinned`` method -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -By calling the :meth:`neo4j_viz.VisualizationGraph.toggle_nodes_pinned` method, you can toggle whether nodes should be -pinned or not. -This method takes dictionary that maps node IDs to boolean values, where ``True`` means that the node is pinned, and -``False`` means that the node is not pinned. - -In the following example, we pin the node with ID 1337 and unpin the node with ID 42: - -.. code-block:: python - - # VG is a VisualizationGraph object - VG.toggle_nodes_pinned(1337: True, 42: False)}) - - -Direct modification of nodes and relationships ----------------------------------------------- - -Nodes and relationships can also be modified directly by accessing the ``nodes`` and ``relationships`` fields of an -existing ``VisualizationGraph`` object. -These fields list of all the :doc:`Nodes <./api-reference/node>` and -:doc:`Relationships <./api-reference/relationship>` in the graph, respectively. - -Each node and relationship has fields that can be accessed and modified directly, as in the following example: - -.. code-block:: python - - # VG is a VisualizationGraph object - - # Modify the first node and fifth relationship - VG.nodes[0].size = 10 - VG.nodes[0].properties["height"] = 170 - VG.relationships[4].caption = "BUYS" - - # Set the coordinates for all nodes from an existing property - for node in VG.nodes: - node.x = node.properties.get("x") - node.y = node.properties.get("y") - - # Change the caption size for all relationships - for relationship in VG.relationships: - relationship.caption_size = 15 - - -Any changes made to the nodes and relationships will be reflected in the next rendering of the graph. diff --git a/docs/source/getting-started.nblink b/docs/source/getting-started.nblink deleted file mode 100644 index b79d8720..00000000 --- a/docs/source/getting-started.nblink +++ /dev/null @@ -1,3 +0,0 @@ -{ - "path": "../extra/getting-started.ipynb" -} \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst index 159d1a99..8afe8767 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -23,10 +23,6 @@ If you have a suggestion on how we can improve the library or want to report a p :glob: :maxdepth: 1 - installation.rst - getting-started.nblink - integration.rst - rendering.rst - customizing.rst - api-reference/index.rst + Graph Visualization docs tutorials/index.rst + api-reference/index.rst diff --git a/docs/source/installation.rst b/docs/source/installation.rst deleted file mode 100644 index c25259a0..00000000 --- a/docs/source/installation.rst +++ /dev/null @@ -1,65 +0,0 @@ -Installation -============ - - -To install the latest version of the library, you can simply run: - -.. code-block:: bash - - pip install neo4j-viz - - -Optional dependencies ---------------------- - -In addition, there are a few optional dependencies that you can install to enable additional features of the library. - - -Pandas DataFrames ``from_dfs`` importer -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -To install the additional dependencies required for the :doc:`from_dfs importer <./api-reference/from_pandas>` you can run: - -.. code-block:: bash - - pip install neo4j-viz[pandas] - - -Neo4j ``from_neo4j`` importer -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -To install the additional dependencies required for the :doc:`from_neo4j importer <./api-reference/from_neo4j>` you can run: - -.. code-block:: bash - - pip install neo4j-viz[neo4j] - - -Neo4j Graph Data Science ``from_gds`` importer -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -To install the additional dependencies required for the :doc:`from_gds importer <./api-reference/from_gds>` you can run: - -.. code-block:: bash - - pip install neo4j-viz[gds] - - -Snowflake tables ``from_snowflake`` importer -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -To install the additional dependencies required for the :doc:`from_snowflake importer <./api-reference/from_snowflake>` you can run: - -.. code-block:: bash - - pip install neo4j-viz[snowflake] - - -Notebook tutorials -~~~~~~~~~~~~~~~~~~ - -To install all the additional dependencies required for the :doc:`notebook examples <./tutorials/index>` you can run: - -.. code-block:: bash - - pip install neo4j-viz[notebook] diff --git a/docs/source/integration.rst b/docs/source/integration.rst deleted file mode 100644 index 0a5284d2..00000000 --- a/docs/source/integration.rst +++ /dev/null @@ -1,330 +0,0 @@ -Integration with other libraries -================================ - -In addition to creating graphs from scratch, with ``neo4j-viz`` as is shown in the -:doc:`Getting started section <./getting-started>`, you can also import data directly from external sources. -In this section we will cover how to import data from `Pandas DataFrames `_, -`Neo4j Graph Data Science `_, -`Neo4j Database `_, -`GQL CREATE queries `_, -and `Snowflake tables `_. - - -.. contents:: On this page: - :depth: 1 - :local: - :backlinks: none - - -Pandas DataFrames ------------------ - -The ``neo4j-viz`` library provides a convenience method for importing data from Pandas DataFrames. -These DataFrames can be created from many sources, such as CSV files. -It requires and additional dependency to be installed, which you can do by running: - -.. code-block:: bash - - pip install neo4j-viz[pandas] - -Once you have installed the additional dependency, you can use the :doc:`from_pandas <./api-reference/from_pandas>` method -to import pandas DataFrames. - -The ``from_dfs`` method takes two mandatory positional parameters: - -* A Pandas ``DataFrame``, or iterable (eg. list) of DataFrames representing the nodes of the graph. - The rows of the DataFrame(s) should represent the individual nodes, and the columns should represent the node - IDs and attributes. - The node ID will be set on the :doc:`Node <./api-reference/node>`, - Other columns will be a key in each node's `properties` dictionary, that maps to the node's corresponding - value in the column. - If the graph has no node properties, the nodes can be derived from the relationships DataFrame alone. -* A Pandas ``DataFrame``, or iterable (eg. list) of DataFrames representing the relationships of the graph. - The rows of the DataFrame(s) should represent the individual relationships, and the columns should represent the - relationship IDs and attributes. - The relationship id, source and target node IDs will be set on the :doc:`Relationship <./api-reference/relationship>`. - Other columns will be a key in each relationship's `properties` dictionary, that maps to the relationship's corresponding - value in the column. - - -Example -~~~~~~~ - -In this small example, we import a tiny toy graph representing a social network from two Pandas DataFrames. -As we can see the column names of the DataFrames map directly to the fields of :doc:`Nodes <./api-reference/node>` -and :doc:`Relationships <./api-reference/relationship>`. - -.. code-block:: python - - from pandas import DataFrame - from neo4j_viz.pandas import from_dfs - - nodes = DataFrame({ - "id": [1, 2, 3], - "caption": ["Alice", "Bob", "Charlie"], - "size": [20, 10, 10], - }) - relationships = DataFrame({ - "source": [1, 2], - "target": [2, 3], - "caption": ["LIKES", "KNOWS"], - }) - - VG = from_dfs(nodes, relationships) - - -Neo4j Graph Data Science (GDS) library --------------------------------------- - -The ``neo4j-viz`` library provides a convenience method for importing data from the Neo4j Graph Data Science (GDS) -library. -It requires and additional dependency to be installed, which you can do by running: - -.. code-block:: bash - - pip install neo4j-viz[gds] - -Once you have installed the additional dependency, you can use the :doc:`from_gds <./api-reference/from_gds>` method -to import projections from the GDS library. - -The ``from_gds`` method takes two mandatory positional parameters: - -* An initialized ``GraphDataScience`` object for the connection to the GDS instance, and -* A ``Graph`` representing the projection that one wants to import. - -The optional ``max_node_count`` parameter can be used to limit the number of nodes that are imported from the -projection. -By default, it is set to 10.000, meaning that if the projection has more than 10.000 nodes, ``from_gds`` will sample -from it using random walk with restarts, to get a smaller graph that can be visualized. -If you want to have more control of the sampling, such as choosing a specific start node for the sample, you can call -a `sampling `_ -method yourself and passing the resulting projection to ``from_gds``. - -The ``node_properties`` parameter is also optional, and should be a list of additional node properties of the -projection that you want to include in the visualization. -The default is ``None``, which means that all properties of the nodes in the projection will be included. -Apart from being visible through on-hover tooltips, these properties could be used to color the nodes, or give captions -to them in the visualization, or simply included in the nodes' ``Node.properties`` maps without directly impacting the -visualization. -If you want to include node properties stored at the Neo4j database, you can include them in the visualization by using the `db_node_properties` parameter. - - -Example -~~~~~~~ - -In this small example, we import a graph projection from the GDS library, that has the node properties "pagerank" and -"componentId". -We use the "pagerank" property to compute the size of the nodes, and the "componentId" property to color the nodes. - -.. code-block:: python - - from graphdatascience import GraphDataScience - from neo4j_viz.gds import from_gds - - gds = GraphDataScience(...) - G = gds.graph.project(...) - - # Compute the PageRank and Weakly Connected Components - gds.pageRank.mutate(G, mutateProperty="pagerank") - gds.wcc.mutate(G, mutateProperty="componentId") - - # Import the projection into a `VisualizationGraph` - # Make sure to include `pagerank` and `componentId` - VG = from_gds( - gds, - G, - node_properties=["componentId"], - ) - # Size the nodes by the `pagerank` property - VG.resize_nodes(property="pagerank") - - # Color the nodes by the `componentId` property, so that the nodes are - # colored by the connected component they belong to - VG.color_nodes(property="componentId") - - -Please see the :doc:`Visualizing Neo4j Graph Data Science (GDS) Graphs tutorial <./tutorials/gds-example>` for a -more extensive example. - - -Neo4j Database --------------- - -The ``neo4j-viz`` library provides a convenience method for importing data from Neo4j. -It requires and additional dependency to be installed, which you can do by running: - -.. code-block:: bash - - pip install neo4j-viz[neo4j] - -Once you have installed the additional dependency, you can use the :doc:`from_neo4j <./api-reference/from_neo4j>` method -to import query results from Neo4j. - -The ``from_neo4j`` method takes one mandatory positional parameter: -A ``data`` argument representing either a query result in the shape of a ``neo4j.graph.Graph`` or ``neo4j.Result``, or a -``neo4j.Driver`` in which case a simple default query will be executed internally to retrieve the graph data. - -The optional ``max_rows`` parameter can be used to limit the number of relationships shown in the visualization. -By default, it is set to 10.000, meaning that if the database has more than 10.000 rows, a warning will be raised. -Note, this only applies if the ``data`` parameter is a ``neo4j.Driver``. - - -Example -~~~~~~~ - -In this small example, we import a graph from a Neo4j query result. - -.. code-block:: python - - from neo4j import GraphDatabase, RoutingControl, Result - from neo4j_viz.gds import from_gds - - # Modify this to match your Neo4j instance's URI and credentials - URI = "neo4j://localhost:7687" - auth = ("neo4j", "password") - - with GraphDatabase.driver(URI, auth=auth) as driver: - driver.verify_connectivity() - - result = driver.execute_query( - "MATCH (n)-[r]->(m) RETURN n,r,m", - database_="neo4j", - routing_=RoutingControl.READ, - result_transformer_=Result.graph, - ) - - VG = from_neo4j(result) - - -Please see the :doc:`Visualizing Neo4j Graphs tutorial <./tutorials/neo4j-example>` for a -more extensive example. - - -GQL ``CREATE`` query --------------------- - -The ``neo4j-viz`` library provides convenience for creating visualization graphs from GQL ``CREATE`` queries via the :doc:`from_gql_create <./api-reference/from_gql_create>` method. - -The ``from_gql_create`` method takes one mandatory positional parameter: - -* A valid ``query`` representing a GQL ``CREATE`` query as a string. - - -Example -~~~~~~~ - -In this small example, we create a visualization graph from a GQL ``CREATE`` query. - -.. code-block:: python - - from neo4j_viz.gql_create import from_gql_create - - query = """ - CREATE - (a:User {name: 'Alice', age: 23}), - (b:User {name: 'Bridget', age: 34}), - (c:User {name: 'Charles', age: 45}), - (d:User {name: 'Dana', age: 56}), - (e:User {name: 'Eve', age: 67}), - (f:User {name: 'Fawad', age: 78}), - - (a)-[:LINK {weight: 0.5}]->(b), - (a)-[:LINK {weight: 4}]->(c), - (e)-[:LINK {weight: 1.1}]->(d), - (e)-[:LINK {weight: -2}]->(f); - """ - - VG = from_gql_create(query) - - -Snowflake Tables ----------------- - -The ``neo4j-viz`` library provides a convenience method for importing data from Snowflake tables. -It requires and additional dependency to be installed, which you can do by running: - -.. code-block:: bash - - pip install neo4j-viz[snowflake] - -Once you have installed the additional dependency, you can use the :doc:`from_snowflake <./api-reference/from_snowflake>` method -to import Snowflake tables into a ``VisualizationGraph``. - -The ``from_snowflake`` method takes two mandatory positional parameters: - -* A ``snowflake.snowpark.Session`` object for the connection to Snowflake, and -* A `project configuration `_ as a dictionary, that specifies how you want your tables to be projected as a graph. - This configuration is the same as the project configuration of the `Neo4j Snowflake Graph Analytics application `_. - -You can further customize the visualization after the `VisualizationGraph` has been created, by using the methods described in the :doc:`Customizing the visualization <./customizing>` section. - - -Default behavior -~~~~~~~~~~~~~~~~ - -The node and relationship captions will be set to the names of the corresponding tables. -The nodes will be colored so that nodes from the same table have the same color, and different tables have different colors. - - -Example -~~~~~~~ - -In this small example, we import a toy graph representing a social network from two tables in Snowflake. - -.. code-block:: python - - from snowflake.snowpark import Session - from neo4j_viz.snowflake import from_dfs - - # Configure according to your own setup - connection_parameters = { - "account": os.environ.get("SNOWFLAKE_ACCOUNT"), - "user": os.environ.get("SNOWFLAKE_USER"), - "password": os.environ.get("SNOWFLAKE_PASSWORD"), - "role": os.environ.get("SNOWFLAKE_ROLE"), - "warehouse": os.environ.get("SNOWFLAKE_WAREHOUSE"), - } - - session.sql( - "CREATE OR REPLACE TABLE EXAMPLE_DB.DATA_SCHEMA.PERSONS (NODEID VARCHAR);" - ).collect() - - session.sql(""" - INSERT INTO EXAMPLE_DB.DATA_SCHEMA.PERSONS VALUES - ('Alice'), - ('Bob'), - ('Carol'), - ('Dave'), - ('Eve'); - """).collect() - - session.sql( - "CREATE OR REPLACE TABLE EXAMPLE_DB.DATA_SCHEMA.KNOWS (SOURCENODEID VARCHAR, TARGETNODEID VARCHAR);" - ).collect() - - session.sql(""" - INSERT INTO EXAMPLE_DB.DATA_SCHEMA.KNOWS VALUES - ('Alice', 'Dave'), - ('Alice', 'Carol'), - ('Bob', 'Carol'), - ('Dave', 'Eve'), - """).collect() - - VG = from_snowflake( - session, - { - "nodeTables": [ - "EXAMPLE_DB.DATA_SCHEMA.PERSONS", - ], - "relationshipTables": { - "EXAMPLE_DB.DATA_SCHEMA.KNOWS": { - "sourceTable": "EXAMPLE_DB.DATA_SCHEMA.PERSONS", - "targetTable": "EXAMPLE_DB.DATA_SCHEMA.PERSONS", - "orientation": "UNDIRECTED", - } - }, - }, - ) - -For a full example of the ``from_snowflake`` importer in action, please see the -:doc:`Visualizing Snowflake Tables tutorial <./tutorials/snowflake-example>`. diff --git a/docs/source/rendering.rst b/docs/source/rendering.rst deleted file mode 100644 index 8e648586..00000000 --- a/docs/source/rendering.rst +++ /dev/null @@ -1,72 +0,0 @@ -Rendering a graph -================= - -In this section, we will discuss how to render a :doc:`VisualizationGraph object <./api-reference/visualization-graph>` -to display the graph visualization. - -If you have not yet created a ``VisualizationGraph`` object, please refer to one of the following sections: - -* :doc:`Getting started <./getting-started>` for creating a visualization graph from scratch using ``neo4j-viz`` - primitives like :doc:`Node <./api-reference/node>` and :doc:`Relationship <./api-reference/relationship>` and - :doc:`VisualizationGraph <./api-reference/visualization-graph>` directly. Or -* :doc:`Integration with other libraries <./integration>` for importing data from a Pandas DataFrame or Neo4j GDS - projection. - -.. contents:: On this page: - :depth: 1 - :local: - :backlinks: none - - -The ``render`` method ---------------------- - -Once you have a ``VisualizationGraph`` object, you can render it using the ``render`` method. -This will return a HTML object that will be displayed in an environment that supports HTML rendering, such as -Jupyter notebooks or streamlit application. - -All parameter of the ``render`` method are optional, and the full list of parameters of them is listed in the API -reference: :meth:`neo4j_viz.VisualizationGraph.render`. - -The most important parameters to be aware of are the ``width`` and ``height`` parameters, which control the size of -HTML object that will be rendered. -You can provide these either as a percentage of the available space (eg. ``"80%"``), or as an absolute pixel value -(eg. ``"800px"``). - -Further you can change the layout of the graph using the ``layout`` parameter, which can be set to one of the following values: - -* ``Layout.FORCE_DIRECTED`` - Nodes are arranged using the Force-Directed algorithm, which simulates physical forces. To customize the layout, use `ForceDirectedOptions` via `layout_options`.` -* ``Layout.HIERARCHICAL`` - Arranges nodes by the directionality of their relationships, creating a tree-like structure. To customize the layout use `HierarchicalLayoutOptions` via `layout_options`.` -* ``Layout.COORDINATE`` - Arranges nodes based on coordinates defined in `x` and `y` properties on each node. - -Another thing of note is the ``max_allowed_nodes`` parameter, which controls the maximum number of nodes that is allowed -for the graph to contain in order to be rendered. -It defaults to 10.000, because rendering a large number of nodes can be slow and unresponsive. -However, you can increase this value if you are confident that your environment can handle the scale. -In this case you might also want to pass ``Renderer.WEB_GL`` as the ``renderer`` to improve performance. - -By default a tooltip showing IDs and properties will be shown when mouse hovering over a node or relationship. -But you can disable this by passing ``show_hover_tooltip=False``. - - -Examples -~~~~~~~~ - -Please refer to the :doc:`Getting started section <./getting-started>` and the :doc:`tutorials <./tutorials/index>` for -examples of ``render`` method usage. - - -Exporting to HTML -~~~~~~~~~~~~~~~~~ - -The object returned by the ``render`` method is a ``IPython.display.HTML`` object. -In addition to being displayed in a Jupyter notebook or streamlit application, it can also be saved as an HTML file. -This could be useful if you want to share the visualization with others or embed it in a web page. - -To save the HTML data to a file, you can use the ``data`` attribute of the HTML object: - -.. code-block:: python - - html = VG.render(...) - with open("my_graph.html", "w") as f: - f.write(html.data) diff --git a/docs/source/tutorials/getting-started.nblink b/docs/source/tutorials/getting-started.nblink new file mode 100644 index 00000000..7cbbf076 --- /dev/null +++ b/docs/source/tutorials/getting-started.nblink @@ -0,0 +1,3 @@ +{ + "path": "../../../examples/getting-started.ipynb" +} diff --git a/docs/source/tutorials/index.rst b/docs/source/tutorials/index.rst index 3999307a..bfc22864 100644 --- a/docs/source/tutorials/index.rst +++ b/docs/source/tutorials/index.rst @@ -3,7 +3,7 @@ You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -Tutorials +Jupyter notebooks ===================================================== This chapter contains Jupyter notebook tutorials for the `neo4j-viz` package. @@ -14,4 +14,5 @@ This chapter contains Jupyter notebook tutorials for the `neo4j-viz` package. :maxdepth: 1 :caption: Contents: + getting-started * diff --git a/docs/extra/getting-started.ipynb b/examples/getting-started.ipynb similarity index 99% rename from docs/extra/getting-started.ipynb rename to examples/getting-started.ipynb index 6e0d4560..d30d9f06 100644 --- a/docs/extra/getting-started.ipynb +++ b/examples/getting-started.ipynb @@ -16,13 +16,11 @@ "In this section, we will cover the very basics of creating a visualization graph using the `neo4j-viz` library.\n", "We will use a small toy graph representing the purchase history of a few people and products.\n", "\n", - "To follow along with the example below, please make sure you have [installed the library](installation.rst) first.\n", - "\n", - "We start by instantiating the [Nodes](./api-reference/node.rst) and [Relationships](./api-reference/relationship.rst) we want in our graph.\n", + "We start by instantiating the `Nodes` and `Relationships` we want in our graph.\n", "The only mandatory fields for a node are the \"id\", and \"source\" and \"target\" for a relationship.\n", "But the other fields can optionally be used to customize the appearance of the nodes and relationships in the visualization.\n", "\n", - "Lastly we create a [VisualizationGraph](./api-reference/visualization-graph.rst) object with the nodes and relationships we created, and call its `render` method to display the graph.\n" + "Lastly we create a `VisualizationGraph` object with the nodes and relationships we created, and call its `render` method to display the graph.\n" ] }, { @@ -335,23 +333,6 @@ "source": [ "We are now easily able to distinguish between the different types of nodes in the graph." ] - }, - { - "cell_type": "markdown", - "id": "b3bb58465761e57a", - "metadata": {}, - "source": [ - "## Next steps\n", - "\n", - "Now that we have covered the basics of creating and rendering a visualization graph, we can move on to more advanced topics.\n", - "\n", - "Here are some suggestions for what to do next:\n", - "\n", - "* Browse the [notebook examples](./tutorials/index.rst) for more examples and use cases\n", - "* Learn about the [integrations](./integration.rst) with other libraries such as Neo4j GDS and Pandas \n", - "* Check out the [rendering](./rendering.rst) options and convenience methods of `VisualizationGraph`\n", - "* Read about our [API reference](./api-reference/index.rst)\n" - ] } ], "metadata": { From fd41a184e600cf249bf3641dd59c862a4964d26c Mon Sep 17 00:00:00 2001 From: Nicola Vitucci Date: Thu, 27 Nov 2025 10:56:13 +0000 Subject: [PATCH 07/15] Rename doc attributes --- docs/antora/modules/ROOT/content-nav.adoc | 4 ++-- .../modules/ROOT/pages/customizing.adoc | 22 +++++++++---------- .../modules/ROOT/pages/getting-started.adoc | 12 +++++----- .../modules/ROOT/pages/installation.adoc | 10 ++++----- .../modules/ROOT/pages/integration.adoc | 20 ++++++++--------- docs/antora/modules/ROOT/pages/rendering.adoc | 8 +++---- docs/antora/preview.yml | 4 ++-- docs/antora/publish.yml | 6 ++--- 8 files changed, 43 insertions(+), 43 deletions(-) diff --git a/docs/antora/modules/ROOT/content-nav.adoc b/docs/antora/modules/ROOT/content-nav.adoc index 8e2e2951..1d5e0b39 100644 --- a/docs/antora/modules/ROOT/content-nav.adoc +++ b/docs/antora/modules/ROOT/content-nav.adoc @@ -4,5 +4,5 @@ * xref:integration.adoc[] * xref:rendering.adoc[] * xref:customizing.adoc[] -* link:{tutorials-uri}[Tutorials] -* link:{api-uri}[API reference] \ No newline at end of file +* link:{tutorials-docs-uri}[Tutorials] +* link:{api-docs-uri}[API reference] \ No newline at end of file diff --git a/docs/antora/modules/ROOT/pages/customizing.adoc b/docs/antora/modules/ROOT/pages/customizing.adoc index 6e9787f1..a0692c0a 100644 --- a/docs/antora/modules/ROOT/pages/customizing.adoc +++ b/docs/antora/modules/ROOT/pages/customizing.adoc @@ -1,6 +1,6 @@ = Customizing the visualization -Once created, a link:{api-uri}/visualization-graph[`VisualizationGraph` object] can be modified in various ways +Once created, a link:{api-docs-uri}/visualization-graph[`VisualizationGraph` object] can be modified in various ways to adjust what the visualization looks like the next time you render it. In this section we will discuss how to color, size, and pin nodes, as well as how to directly modify nodes and relationships of existing `VisualizationGraph` objects. @@ -8,8 +8,8 @@ relationships of existing `VisualizationGraph` objects. If you have not yet created a `VisualizationGraph` object, refer to one of the following sections: * xref:getting-started.adoc[Getting started] for creating a visualization graph from scratch using `neo4j-viz` - primitives like link:{api-uri}/node/[Node] and link:{api-uri}/relationship/[Relationship] and - link:{api-uri}/visualization-graph[`VisualizationGraph`] directly. + primitives like link:{api-docs-uri}/node/[Node] and link:{api-docs-uri}/relationship/[Relationship] and + link:{api-docs-uri}/visualization-graph[`VisualizationGraph`] directly. * xref:integration.adoc[] for importing data from a Pandas DataFrame or Neo4j GDS projection. == Setting node captions @@ -53,16 +53,16 @@ for node in VG.nodes: Nodes can be colored directly by providing them with a color field, upon creation. This can for example be done by passing a color as a string to the `color` parameter of the -link:{api-uri}/node[Node] object. +link:{api-docs-uri}/node[Node] object. Alternatively, you can color nodes based on a field or property of the nodes after a `VisualizationGraph` object has been created. === The `color_nodes` method -By calling the link:{api-uri}/visualization-graph/#neo4j_viz.VisualizationGraph.color_nodes[`neo4j_viz.VisualizationGraph.color_nodes()`] method, you can color nodes based on a node field or property (members of the `Node.properties` map). +By calling the link:{api-docs-uri}/visualization-graph/#neo4j_viz.VisualizationGraph.color_nodes[`neo4j_viz.VisualizationGraph.color_nodes()`] method, you can color nodes based on a node field or property (members of the `Node.properties` map). -It's possible to color the nodes based on a discrete or continuous color space (see link:{api-uri}/colors[`ColorSpace`]). +It's possible to color the nodes based on a discrete or continuous color space (see link:{api-docs-uri}/colors[`ColorSpace`]). In the discrete case, a new color from the `colors` provided is assigned to each unique value of the node field/property. In the continuous case, the `colors` should be a list of colors representing a range that are used to create a gradient of colors based on the values of the node field/property. @@ -134,13 +134,13 @@ Since we only provided five colors in the range, the granularity of the gradient == Sizing nodes Nodes can be given a size directly by providing them with a size field, upon creation. -This can for example be done by passing a size as an integer to the `size` parameter of the link:{api-uri}/node[Node] object. +This can for example be done by passing a size as an integer to the `size` parameter of the link:{api-docs-uri}/node[Node] object. Alternatively, you can size nodes after a `VisualizationGraph` object has been created. === The `resize_nodes` method -By calling the link:{api-uri}/visualization-graph/#neo4j_viz.VisualizationGraph.resize_nodes[`neo4j_viz.VisualizationGraph.resize_nodes()`] method, you can resize nodes by: +By calling the link:{api-docs-uri}/visualization-graph/#neo4j_viz.VisualizationGraph.resize_nodes[`neo4j_viz.VisualizationGraph.resize_nodes()`] method, you can resize nodes by: * passing new nodes sizes as a dictionary `sizes`, mapping node IDs to sizes in pixels, or * providing a tuple of two numbers `node_radius_min_max`: minimum and maximum radii (sizes) in pixels to which the @@ -173,13 +173,13 @@ layout algorithm. This can be useful if you want to keep a node in a specific position, for example to highlight it. Nodes can be pinned directly upon creation. -This can for example be done by passing `pinned=True` to the link:{api-uri}/node[Node] object. +This can for example be done by passing `pinned=True` to the link:{api-docs-uri}/node[Node] object. Alternatively, you can toggle node pinning after a `VisualizationGraph` object has been created. === The `toggle_nodes_pinned` method -By calling the link:{api-uri}/visualization-graph/#neo4j_viz.VisualizationGraph.toggle_nodes_pinned[`neo4j_viz.VisualizationGraph.toggle_nodes_pinned()`] method, you can toggle whether nodes should be +By calling the link:{api-docs-uri}/visualization-graph/#neo4j_viz.VisualizationGraph.toggle_nodes_pinned[`neo4j_viz.VisualizationGraph.toggle_nodes_pinned()`] method, you can toggle whether nodes should be pinned or not. This method takes dictionary that maps node IDs to boolean values, where `True` means that the node is pinned, and `False` means that the node is not pinned. @@ -196,7 +196,7 @@ VG.toggle_nodes_pinned(1337: True, 42: False)}) Nodes and relationships can also be modified directly by accessing the `nodes` and `relationships` fields of an existing `VisualizationGraph` object. -These fields list of all the link:{api-uri}/node[Nodes] and link:{api-uri}/relationship[Relationships] in the graph, respectively. +These fields list of all the link:{api-docs-uri}/node[Nodes] and link:{api-docs-uri}/relationship[Relationships] in the graph, respectively. Each node and relationship has attributes that can be accessed and modified directly, as in the following example: diff --git a/docs/antora/modules/ROOT/pages/getting-started.adoc b/docs/antora/modules/ROOT/pages/getting-started.adoc index 9c767ba1..6d570337 100644 --- a/docs/antora/modules/ROOT/pages/getting-started.adoc +++ b/docs/antora/modules/ROOT/pages/getting-started.adoc @@ -5,11 +5,11 @@ We will use a small toy graph representing the purchase history of a few people To follow along with the example below, please make sure you have xref:installation.adoc[installed the library] first. -We start by instantiating the link:{api-uri}/node/[Nodes] and link:{api-uri}/relationship[Relationships] we want in our graph. +We start by instantiating the link:{api-docs-uri}/node/[Nodes] and link:{api-docs-uri}/relationship[Relationships] we want in our graph. The only mandatory fields for a node are the ā€œidā€, and ā€œsourceā€ and ā€œtargetā€ for a relationship. But the other fields can optionally be used to customize the appearance of the nodes and relationships in the visualization. -Lastly we create a link:{api-uri}/visualization-graph/[VisualizationGraph] object with the nodes and relationships we created, and call its `render` method to display the graph. +Lastly we create a link:{api-docs-uri}/visualization-graph/[VisualizationGraph] object with the nodes and relationships we created, and call its `render` method to display the graph. [source, python, role=nocollapse] ---- @@ -48,7 +48,7 @@ VG.render(initial_zoom=2) [TIP] ==== -See the link:{tutorials-uri}/getting-started/[Jupyter notebook] to interact with the graph. +See the link:{tutorials-docs-uri}/getting-started/[Jupyter notebook] to interact with the graph. ==== image::graph_2120034f.png["Graph"] @@ -72,7 +72,7 @@ VG.render(initial_zoom=2) [TIP] ==== -See the link:{tutorials-uri}/getting-started/[Jupyter notebook] to interact with the graph. +See the link:{tutorials-docs-uri}/getting-started/[Jupyter notebook] to interact with the graph. ==== image::graph_00ff5513.png["Graph with colors"] @@ -85,7 +85,7 @@ Now that we have covered the basics of creating and rendering a visualization gr Here are some suggestions for what to do next: -* Browse the link:{tutorials-uri}[notebook examples] for more examples and use cases +* Browse the link:{tutorials-docs-uri}[notebook examples] for more examples and use cases * Learn about the xref:integration.adoc[integrations] with other libraries such as Neo4j GDS and Pandas * Check out the xref:rendering.adoc[rendering options] and convenience methods of `VisualizationGraph` -* Read about our link:{api-uri}/[API reference] +* Read about our link:{api-docs-uri}/[API reference] diff --git a/docs/antora/modules/ROOT/pages/installation.adoc b/docs/antora/modules/ROOT/pages/installation.adoc index efed4748..47ef95f6 100644 --- a/docs/antora/modules/ROOT/pages/installation.adoc +++ b/docs/antora/modules/ROOT/pages/installation.adoc @@ -13,7 +13,7 @@ In addition, there are a few optional dependencies that you can install to enabl === Pandas DataFrames `from_dfs` importer -To install the additional dependencies required for the link:{api-uri}/from_pandas[`from_dfs`] importer you can run: +To install the additional dependencies required for the link:{api-docs-uri}/from_pandas[`from_dfs`] importer you can run: [source, console] ---- @@ -22,7 +22,7 @@ pip install neo4j-viz[pandas] === Neo4j `from_neo4j` importer -To install the additional dependencies required for the link:{api-uri}/from_neo4j[`from_neo4j`] importer you can run: +To install the additional dependencies required for the link:{api-docs-uri}/from_neo4j[`from_neo4j`] importer you can run: [source, console] ---- @@ -31,7 +31,7 @@ pip install neo4j-viz[neo4j] === Neo4j Graph Data Science `from_gds` importer -To install the additional dependencies required for the link:{api-uri}/from_gds[`from_gds`] importer you can run: +To install the additional dependencies required for the link:{api-docs-uri}/from_gds[`from_gds`] importer you can run: [source, console] ---- @@ -40,7 +40,7 @@ pip install neo4j-viz[gds] === Neo4j Graph Data Science `from_snowflake` importer -To install the additional dependencies required for the link:{api-uri}/from_snowflake[`from_snowflake`] importer you can run: +To install the additional dependencies required for the link:{api-docs-uri}/from_snowflake[`from_snowflake`] importer you can run: [source, console] ---- @@ -49,7 +49,7 @@ pip install neo4j-viz[snowflake] === Notebook tutorials -To install all the additional dependencies required for the link:{tutorials-uri}[notebook examples] you can run: +To install all the additional dependencies required for the link:{tutorials-docs-uri}[notebook examples] you can run: [source, console] ---- diff --git a/docs/antora/modules/ROOT/pages/integration.adoc b/docs/antora/modules/ROOT/pages/integration.adoc index 37ac6a7d..67c7422b 100644 --- a/docs/antora/modules/ROOT/pages/integration.adoc +++ b/docs/antora/modules/ROOT/pages/integration.adoc @@ -18,7 +18,7 @@ It requires and additional dependency to be installed, which you can do by runni pip install neo4j-viz[pandas] ---- -Once you have installed the additional dependency, you can use the link:{api-uri}/from_pandas[`from_pandas`] method +Once you have installed the additional dependency, you can use the link:{api-docs-uri}/from_pandas[`from_pandas`] method to import pandas DataFrames. The `from_dfs` method takes two mandatory positional parameters: @@ -26,19 +26,19 @@ The `from_dfs` method takes two mandatory positional parameters: * A Pandas `DataFrame`, or iterable (eg. list) of DataFrames representing the nodes of the graph. The rows of the DataFrame(s) should represent the individual nodes, and the columns should represent the node IDs and attributes. - The node ID will be set on the link:{api-uri}/node[Node], Other columns will be a key in each node's properties dictionary, that maps to the node's corresponding value in the column. + The node ID will be set on the link:{api-docs-uri}/node[Node], Other columns will be a key in each node's properties dictionary, that maps to the node's corresponding value in the column. If the graph has no node properties, the nodes can be derived from the relationships DataFrame alone. * A Pandas `DataFrame`, or iterable (eg. list) of DataFrames representing the relationships of the graph. The rows of the DataFrame(s) should represent the individual relationships, and the columns should represent the relationship IDs and attributes. - The relationship id, source and target node IDs will be set on the link:{api-uri}/relationship[Relationship]. + The relationship id, source and target node IDs will be set on the link:{api-docs-uri}/relationship[Relationship]. Other columns will be a key in each relationship's _properties_ dictionary, that maps to the relationship's corresponding value in the column. === Example In this small example, we import a tiny toy graph representing a social network from two Pandas DataFrames. -As we can see the column names of the DataFrames map directly to the fields of link:{api-uri}/node[Nodes] -and link:{api-uri}/relationship[Relationships]. +As we can see the column names of the DataFrames map directly to the fields of link:{api-docs-uri}/node[Nodes] +and link:{api-docs-uri}/relationship[Relationships]. [source, python] ---- @@ -71,7 +71,7 @@ It requires and additional dependency to be installed, which you can do by runni pip install neo4j-viz[gds] ---- -Once you have installed the additional dependency, you can use the link:{api-uri}/from_gds[`from_gds`] method +Once you have installed the additional dependency, you can use the link:{api-docs-uri}/from_gds[`from_gds`] method to import projections from the GDS library. The `from_gds` method takes two mandatory positional parameters: @@ -128,7 +128,7 @@ It requires and additional dependency to be installed, which you can do by runni pip install neo4j-viz[neo4j] ---- -Once you have installed the additional dependency, you can use the link:{api-uri}/from_neo4j[`from_neo4j`] method +Once you have installed the additional dependency, you can use the link:{api-docs-uri}/from_neo4j[`from_neo4j`] method to import query results from Neo4j. The `from_neo4j` method takes one mandatory positional parameter: A `data` argument representing either a query result in the shape of a `neo4j.graph.Graph` or `neo4j.Result`, or a `neo4j.Driver` in which case a simple default query will be executed internally to retrieve the graph data. @@ -166,7 +166,7 @@ See the link:/tutorials/neo4j-example[Visualizing Neo4j Graphs tutorial] for a m == GQL `CREATE` query -The `neo4j-viz` library provides convenience for creating visualization graphs from GQL `CREATE` queries via the link:{api-uri}/from_gql_create[`from_gql_create`] method. +The `neo4j-viz` library provides convenience for creating visualization graphs from GQL `CREATE` queries via the link:{api-docs-uri}/from_gql_create[`from_gql_create`] method. The `from_gql_create` method takes one mandatory positional parameter: @@ -207,7 +207,7 @@ It requires and additional dependency to be installed, which you can do by runni pip install neo4j-viz[snowflake] ---- -Once you have installed the additional dependency, you can use the link:{api-uri}/from_snowflake[`from_snowflake`] method to import Snowflake tables into a `VisualizationGraph`. +Once you have installed the additional dependency, you can use the link:{api-docs-uri}/from_snowflake[`from_snowflake`] method to import Snowflake tables into a `VisualizationGraph`. The `from_snowflake` method takes two mandatory positional parameters: @@ -216,7 +216,7 @@ The `from_snowflake` method takes two mandatory positional parameters: * A link:https://neo4j.com/docs/snowflake-graph-analytics/current/jobs/#jobs-project[project configuration] as a dictionary, that specifies how you want your tables to be projected as a graph. This configuration is the same as the project configuration of the link:https://neo4j.com/docs/snowflake-graph-analytics/current/[Neo4j Snowflake Graph Analytics application]. -You can further customize the visualization after the _VisualizationGraph_ has been created, by using the methods described in the link:{api-uri}/customizing/[Customizing the visualization] section. +You can further customize the visualization after the _VisualizationGraph_ has been created, by using the methods described in the link:{api-docs-uri}/customizing/[Customizing the visualization] section. === Default behavior diff --git a/docs/antora/modules/ROOT/pages/rendering.adoc b/docs/antora/modules/ROOT/pages/rendering.adoc index ab874fbc..2ce089ed 100644 --- a/docs/antora/modules/ROOT/pages/rendering.adoc +++ b/docs/antora/modules/ROOT/pages/rendering.adoc @@ -1,13 +1,13 @@ = Rendering a graph -In this section, we will discuss how to render a link:{api-uri}/visualization-graph[`VisualizationGraph` object] +In this section, we will discuss how to render a link:{api-docs-uri}/visualization-graph[`VisualizationGraph` object] to display the graph visualization. If you have not yet created a `VisualizationGraph` object, refer to one of the following sections: * xref:getting-started.adoc[Getting started] for creating a visualization graph from scratch using `neo4j-viz` - primitives like link:{api-uri}/node[Node] and link:{api-uri}/relationship[Relationship] and - link:{api-uri}/visualization-graph>[`VisualizationGraph`] directly. + primitives like link:{api-docs-uri}/node[Node] and link:{api-docs-uri}/relationship[Relationship] and + link:{api-docs-uri}/visualization-graph>[`VisualizationGraph`] directly. * xref:integration.adoc[] for importing data from a Pandas DataFrame or Neo4j GDS projection. == The `render` method @@ -17,7 +17,7 @@ This will return a HTML object that will be displayed in an environment that sup Jupyter notebooks or streamlit application. All parameter of the `render` method are optional, and the full list of parameters of them is listed in the API -reference: link:{api-uri}/visualization-graph/#neo4j_viz.VisualizationGraph.render[neo4j_viz.VisualizationGraph.render()]. +reference: link:{api-docs-uri}/visualization-graph/#neo4j_viz.VisualizationGraph.render[neo4j_viz.VisualizationGraph.render()]. The most important parameters to be aware of are the `width` and `height` parameters, which control the size of HTML object that will be rendered. diff --git a/docs/antora/preview.yml b/docs/antora/preview.yml index 193274bb..5ec71c4c 100644 --- a/docs/antora/preview.yml +++ b/docs/antora/preview.yml @@ -59,5 +59,5 @@ asciidoc: neo4j-base-uri: https://neo4j.com neo4j-docs-base-uri: '{neo4j-base-uri}/docs' common-license-page-uri: '{neo4j-docs-base-uri}/license' - api-uri: http://localhost:9000/api-reference - tutorials-uri: http://localhost:9000/tutorials + api-docs-uri: http://localhost:9000/api-reference + tutorials-docs-uri: http://localhost:9000/tutorials diff --git a/docs/antora/publish.yml b/docs/antora/publish.yml index 3a7ac8a6..8425ce5f 100644 --- a/docs/antora/publish.yml +++ b/docs/antora/publish.yml @@ -62,7 +62,7 @@ asciidoc: neo4j-docs-base-uri: /docs common-license-page-uri: '{neo4j-docs-base-uri}/license' #Ā Needs to be updated manually for now - docs-version: current - api-uri: https://neo4j.com/docs/nvl-python/{docs-version}/api-reference - tutorials-uri: https://neo4j.com/docs/nvl-python/{docs-version}/tutorials + api-docs-version: 0.6 + api-docs-uri: https://neo4j.com/docs/nvl-python/{api-version}/api-reference + tutorials-docs-uri: https://neo4j.com/docs/nvl-python/{api-version}/tutorials From c950bd7a69eb55701fbf39dde0d54a4851e996e1 Mon Sep 17 00:00:00 2001 From: Nicola Vitucci Date: Thu, 27 Nov 2025 10:58:26 +0000 Subject: [PATCH 08/15] Fix doc attribute name --- docs/antora/publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/antora/publish.yml b/docs/antora/publish.yml index 8425ce5f..a773ea90 100644 --- a/docs/antora/publish.yml +++ b/docs/antora/publish.yml @@ -63,6 +63,6 @@ asciidoc: common-license-page-uri: '{neo4j-docs-base-uri}/license' #Ā Needs to be updated manually for now api-docs-version: 0.6 - api-docs-uri: https://neo4j.com/docs/nvl-python/{api-version}/api-reference - tutorials-docs-uri: https://neo4j.com/docs/nvl-python/{api-version}/tutorials + api-docs-uri: https://neo4j.com/docs/nvl-python/{api-docs-version}/api-reference + tutorials-docs-uri: https://neo4j.com/docs/nvl-python/{api-docs-version}/tutorials From a634919953ee55fdfd168a5ed435ce1e1730d093 Mon Sep 17 00:00:00 2001 From: Nicola Vitucci Date: Tue, 2 Dec 2025 14:50:53 +0000 Subject: [PATCH 09/15] Change docs URI --- docs/antora/publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/antora/publish.yml b/docs/antora/publish.yml index a773ea90..ad6121b2 100644 --- a/docs/antora/publish.yml +++ b/docs/antora/publish.yml @@ -63,6 +63,6 @@ asciidoc: common-license-page-uri: '{neo4j-docs-base-uri}/license' #Ā Needs to be updated manually for now api-docs-version: 0.6 - api-docs-uri: https://neo4j.com/docs/nvl-python/{api-docs-version}/api-reference - tutorials-docs-uri: https://neo4j.com/docs/nvl-python/{api-docs-version}/tutorials + api-docs-uri: https://neo4j.com/docs/python-graph-visualization/{api-docs-version}/reference/api-reference + tutorials-docs-uri: https://neo4j.com/docs/python-graph-visualization/{api-docs-version}/reference/tutorials From 8b73d93f3804740438238748f1831b063edae0a0 Mon Sep 17 00:00:00 2001 From: Nicola Vitucci Date: Tue, 2 Dec 2025 15:09:22 +0000 Subject: [PATCH 10/15] Temporarily update links --- docs/antora/publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/antora/publish.yml b/docs/antora/publish.yml index ad6121b2..7bfabb96 100644 --- a/docs/antora/publish.yml +++ b/docs/antora/publish.yml @@ -63,6 +63,6 @@ asciidoc: common-license-page-uri: '{neo4j-docs-base-uri}/license' #Ā Needs to be updated manually for now api-docs-version: 0.6 - api-docs-uri: https://neo4j.com/docs/python-graph-visualization/{api-docs-version}/reference/api-reference - tutorials-docs-uri: https://neo4j.com/docs/python-graph-visualization/{api-docs-version}/reference/tutorials + api-docs-uri: https://development.neo4j.dev/docs/python-graph-visualization/{api-docs-version}/reference/api-reference + tutorials-docs-uri: https://development.neo4j.dev/docs/python-graph-visualization/{api-docs-version}/reference/tutorials From 78350c509e45cac560806054bab7d00f3d08da24 Mon Sep 17 00:00:00 2001 From: Nicola Vitucci Date: Fri, 5 Dec 2025 11:10:22 +0000 Subject: [PATCH 11/15] Update Antora conf files --- docs/antora/antora.yml | 6 ++++++ docs/antora/preview.yml | 1 + docs/antora/publish.yml | 7 +------ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/antora/antora.yml b/docs/antora/antora.yml index 7fbfa316..8454178c 100644 --- a/docs/antora/antora.yml +++ b/docs/antora/antora.yml @@ -4,3 +4,9 @@ version: '0.6' start_page: ROOT:index.adoc nav: - modules/ROOT/content-nav.adoc +asciidoc: + attributes: + #Ā Version needs to be updated manually for now + api-docs-version: '0.6' + api-docs-uri: '{neo4j-docs-base-uri}/python-graph-visualization/{api-docs-version}/reference/api-reference' + tutorials-docs-uri: '{neo4j-docs-base-uri}/python-graph-visualization/{api-docs-version}/reference/tutorials' \ No newline at end of file diff --git a/docs/antora/preview.yml b/docs/antora/preview.yml index 5ec71c4c..3845f156 100644 --- a/docs/antora/preview.yml +++ b/docs/antora/preview.yml @@ -59,5 +59,6 @@ asciidoc: neo4j-base-uri: https://neo4j.com neo4j-docs-base-uri: '{neo4j-base-uri}/docs' common-license-page-uri: '{neo4j-docs-base-uri}/license' + # Uses a local server to preview Sphinx docs api-docs-uri: http://localhost:9000/api-reference tutorials-docs-uri: http://localhost:9000/tutorials diff --git a/docs/antora/publish.yml b/docs/antora/publish.yml index 7bfabb96..e67574ec 100644 --- a/docs/antora/publish.yml +++ b/docs/antora/publish.yml @@ -60,9 +60,4 @@ asciidoc: # neo4j.com attributes. Always use when linking to neo4j.com URLs neo4j-base-uri: '' neo4j-docs-base-uri: /docs - common-license-page-uri: '{neo4j-docs-base-uri}/license' - #Ā Needs to be updated manually for now - api-docs-version: 0.6 - api-docs-uri: https://development.neo4j.dev/docs/python-graph-visualization/{api-docs-version}/reference/api-reference - tutorials-docs-uri: https://development.neo4j.dev/docs/python-graph-visualization/{api-docs-version}/reference/tutorials - + common-license-page-uri: '{neo4j-docs-base-uri}/license' \ No newline at end of file From ffb12f81119149bf6de7040676a5f08c5778349c Mon Sep 17 00:00:00 2001 From: Nicola Vitucci Date: Fri, 5 Dec 2025 12:03:40 +0000 Subject: [PATCH 12/15] Update link in Sphinx docs --- docs/source/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 8afe8767..1db5eeb3 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -23,6 +23,6 @@ If you have a suggestion on how we can improve the library or want to report a p :glob: :maxdepth: 1 - Graph Visualization docs + Graph Visualization docs tutorials/index.rst api-reference/index.rst From 2fc7b16a44462559956cdd21e4f2297514166ea4 Mon Sep 17 00:00:00 2001 From: Nicola Vitucci Date: Fri, 5 Dec 2025 12:07:18 +0000 Subject: [PATCH 13/15] Update version --- docs/antora/antora.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/antora/antora.yml b/docs/antora/antora.yml index 8454178c..a6172398 100644 --- a/docs/antora/antora.yml +++ b/docs/antora/antora.yml @@ -1,12 +1,12 @@ name: python-graph-visualization title: Neo4j Python Graph Visualization -version: '0.6' +version: '0.7' start_page: ROOT:index.adoc nav: - modules/ROOT/content-nav.adoc asciidoc: attributes: #Ā Version needs to be updated manually for now - api-docs-version: '0.6' - api-docs-uri: '{neo4j-docs-base-uri}/python-graph-visualization/{api-docs-version}/reference/api-reference' - tutorials-docs-uri: '{neo4j-docs-base-uri}/python-graph-visualization/{api-docs-version}/reference/tutorials' \ No newline at end of file + docs-version: '0.7' + api-docs-uri: '{neo4j-docs-base-uri}/python-graph-visualization/{docs-version}/reference/api-reference' + tutorials-docs-uri: '{neo4j-docs-base-uri}/python-graph-visualization/{docs-version}/reference/tutorials' \ No newline at end of file From 8f7dfe854ebb9a784b3d9243528d54dffb4e1693 Mon Sep 17 00:00:00 2001 From: Nicola Vitucci Date: Fri, 5 Dec 2025 13:04:48 +0000 Subject: [PATCH 14/15] Bump docs version to 1 --- docs/antora/antora.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/antora/antora.yml b/docs/antora/antora.yml index a6172398..319e2218 100644 --- a/docs/antora/antora.yml +++ b/docs/antora/antora.yml @@ -1,12 +1,12 @@ name: python-graph-visualization title: Neo4j Python Graph Visualization -version: '0.7' +version: '1' start_page: ROOT:index.adoc nav: - modules/ROOT/content-nav.adoc asciidoc: attributes: #Ā Version needs to be updated manually for now - docs-version: '0.7' + docs-version: '1' api-docs-uri: '{neo4j-docs-base-uri}/python-graph-visualization/{docs-version}/reference/api-reference' tutorials-docs-uri: '{neo4j-docs-base-uri}/python-graph-visualization/{docs-version}/reference/tutorials' \ No newline at end of file From 73f4c01c1cc992e39ae85104f516277016ad6939 Mon Sep 17 00:00:00 2001 From: Nicola Vitucci Date: Fri, 5 Dec 2025 14:31:33 +0000 Subject: [PATCH 15/15] Update package version --- docs/antora/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/antora/package.json b/docs/antora/package.json index 3af26edb..4a64a880 100644 --- a/docs/antora/package.json +++ b/docs/antora/package.json @@ -1,6 +1,6 @@ { "name": "python-graph-visualization", - "version": "0.6.1", + "version": "1.0.0", "description": "Neo4j Python Graph Visualization", "main": "server.js", "scripts": {