Graphinate. Data to Graphs.
Project description
Graphinate. Data to Graphs.
| Package |
|
| Code |
|
| Tools |
|
| CI/CD |
|
| Scans |
|
| Mentions |
|
| Badge |
|
Table of Contents
Introduction
Meet Graphinate
Graphinate turns your data into Graphs. Effortlessly.
It is a Python library designed to streamline the pipeline from raw data to structured Graph representations. With Graphinate, you can easily map complex data hierarchies and payloads directly to nodes and edges, creating an efficient retrieval system.
Whether you need to visualize relationships, analyze structure, or serve data via an API, Graphinate provides the tools to bring your graph to life.
Graphinate uses and builds upon the excellent NetworkX.
Library at a Glance
📐 The Architect (graphinate.modeling)
Define the blueprint of your graph by decorating simple functions that yield your data as nodes and edges.
🏗️ The Construction Crew (graphinate.builders)
Takes your graph blueprint and constructs various outputs, whether it's a queryable NetworkX object, a Mermaid diagram, or a GraphQL schema.
🎨 The Artists (graphinate.renderers)
A suite of tools to visualize your graphs, from matplotlib plots to interactive Mermaid diagrams.
📡 The Broadcaster (graphinate.server)
Instantly serve your graph data as an interactive GraphQL API, ready for consumption by web applications.
⌨️ The Command Center (graphinate.cli)
A handy command-line tool to manage and interact with your graph definitions without writing boilerplate code.
Links
- Website (including documentation): https://erivlis.github.io/graphinate
- Source: https://github.com/erivlis/graphinate
- Package: https://pypi.org/project/graphinate
Quick Start
Install
Graphinate is available on PyPI:
pip install graphinate
or
uv add graphinate
To install with server support
pip install graphinate[server]
or
uv add graphinate[server]
Graphinate officially supports Python >= 3.10.
Example
import graphinate
N: int = 8
# First Define a GraphModel instance.
# It will be used to hold the graph definitions
graph_model: graphinate.GraphModel = graphinate.model(name="Octagonal Graph")
# Register in the Graph Model the edges' supplier generator function
@graph_model.edge()
def edge():
for i in range(N):
yield {'source': i, 'target': i + 1}
yield {'source': N, 'target': 0}
# Use the NetworkX Builder
builder = graphinate.builders.NetworkxBuilder(graph_model)
# build the NetworkX GraphRepresentation
# the output in this case is a nx.Graph instance
graph = builder.build()
# this supplied plot method uses matplotlib to display the graph
graphinate.matplotlib.plot(graph, with_edge_labels=True)
# or use the Mermaid Builder
builder = graphinate.builders.MermaidBuilder(graph_model)
# to create a Mermaid diagram
diagram: str = builder.build()
# and get Markdown or single page HTML to display it
mermaid_markdown: str = graphinate.mermaid.markdown(diagram)
mermaid_html: str = graphinate.mermaid.html(diagram, title=graph_model.name)
# or use the GraphQL Builder
builder = graphinate.builders.GraphQLBuilder(.graph_model)
# to create a Strawberry GraphQL schema
schema = builder.build()
# and serve it using Uvicorn web server
graphinate.graphql.server(schema)
CLI
For detailed information on the command-line interface, please see the CLI Usage Guide in the official documentation.
Gallery
Python Class AST
matplotlib
3D Force-Directed Animation
GitHub Repository
Web Links
Development
For instructions on how to set up your development environment, run tests, and contribute to the project, please see the Development Guide in the official documentation.
Acknowledgements
For a list of the dependencies and tools that make Graphinate possible, please see the Acknowledgements page in the official documentation.
Copyright © 2023-2026 Eran Rivlis
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file graphinate-0.13.1.tar.gz.
File metadata
- Download URL: graphinate-0.13.1.tar.gz
- Upload date:
- Size: 2.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba61f5d52fae4246bc9e27af97d942d0e381206e6aa405794aeaa51868dc2d5c
|
|
| MD5 |
03548715f47c159d6c9b5ac2b64869a5
|
|
| BLAKE2b-256 |
753372e2829b1b6e5e731de6eeae4860494778187eca274fc6fb897af4ae2a1f
|
File details
Details for the file graphinate-0.13.1-py3-none-any.whl.
File metadata
- Download URL: graphinate-0.13.1-py3-none-any.whl
- Upload date:
- Size: 115.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32ac23731b6daa88248ad2f036fe72c72fde1a3301ed545090fe7f100b32bb3e
|
|
| MD5 |
5902d77e3897d192b6d8b7cba6f1e966
|
|
| BLAKE2b-256 |
97e46387bed851fc7e62cb1b4a76ccb1189600338b33df61949a8c6bdfa0f3f7
|