![Graphinate. Data to Graphs.](https://private-user-images.githubusercontent.com/9897520/273338842-dae41f9f-69e5-4eb5-a488-87ce7f51fa32.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQxNDM3OTUsIm5iZiI6MTcyNDE0MzQ5NSwicGF0aCI6Ii85ODk3NTIwLzI3MzMzODg0Mi1kYWU0MWY5Zi02OWU1LTRlYjUtYTQ4OC04N2NlN2Y1MWZhMzIucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgyMCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MjBUMDg0NDU1WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzVmMmI5ZDJiYzJhMzljNDRjMmIwMThlMDY2MDM5ZmViM2NjODUxOTFlZmQ2ZTQ1M2RhNTk1MGIyYmQzMTU5OCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.JawVvA856u6UPcoqPl74zUpyZns38c2PXJun9ChBpuw)
Package |
|
Tools |
|
CI/CD |
|
Scans |
|
Graphinate is a python library that aims to simplify the generation of Graph Data Structures from Data Sources.
It can help create an efficient retrieval pipeline from a given data source, while also enabling the developer to easily map data payloads and hierarchies to a Graph.
In addition, there are several modes of output to enable examination of the Graph, and it's content.
Graphinate utilizes and builds upon the excellent NetworkX.
- Website (including documentation): https://erivlis.github.io/graphinate
- Source: https://github.com/erivlis/graphinate
- Package: https://pypi.org/project/graphinate
Graphinate is available on PyPI:
pip install graphinate
To install with server support
pip install graphinate[server]
Graphinate officially supports Python >= 3.10.
import graphinate
N: int = 8
# Define GraphModel
graph_model = graphinate.model(name="Octagonal Graph")
# Register edges supplier function
@graph_model.edge()
def edge():
for i in range(N - 1):
yield {'source': i, 'target': i + 1}
yield {'source': N - 1, 'target': 0}
# Materialize the GraphModel
graphinate.materialize(graph_model)
Note
This function creates GraphModel
class that is used to declaratively register Edge and/or Node data
supplier functions by using the GraphModel.node()
and GraphModel.edge()
decorators.
Note
This function can be used to easily generate an output from a GraphModel
instance.
By default, it will prompt the user to choose the output format, using a popup GUI dialog box.
Usage: python -m graphinate [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
save
server
Usage: python -m graphinate save [OPTIONS]
Options:
-m, --model MODEL A GraphModel instance reference {module-
name}:{GraphModel-instance-variable-name} For example,
given var `model=GraphModel()` defined in app.py file,
then the reference should be app:model
--help Show this message and exit.
Usage: python -m graphinate server [OPTIONS]
Options:
-m, --model MODEL A GraphModel instance reference {module-
name}:{GraphModel-instance-variable-name} For example,
given var `model=GraphModel()` defined in app.py file,
then the reference should be app:model
-p, --port INTEGER Port number.
--help Show this message and exit.
ruff check src
python -m pytest tests -n auto --cov=src --cov-branch --doctest-modules --cov-report=xml --junitxml=test_results.xml
python -m pytest tests -n auto --cov=src --cov-branch --doctest-modules --cov-report=html --junitxml=test_results.xml
python -m mkdocs serve
python -m mkdocs build
Copyright © 2023 Eran Rivlis