Skip to main content

Graphinate. Data to Graphs.

Graphinate. Data to Graphs.
Package PyPI - version PyPI - Status PyPI - Python Version PyPI - Downloads PyPI - Dependents Libraries.io SourceRank
Code GitHub GitHub repo size GitHub last commit (by committer) Contributors
Tools PyCharm uv ruff mkdocs-material mdformat Hatch project commitizen agentskills
CI/CD Test Test (Beta) CodSpeed Publish Publish Docs
Scans Coverage Quality Gate Status Security Rating Maintainability Rating Reliability Rating Lines of Code Vulnerabilities Bugs Codacy Badge Codacy Coverage CodeFactor DeepSource DeepSource Snyk CodSpeed
Mentions PythonBytes Podcast Python Hub
Badge Graphinate

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.

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.

Python Class AST

matplotlib

graph_ast

3D Force-Directed Animation

GitHub Repository

repo_graph

Web Page 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.


Alt


Work on my Machine

Copyright © 2023-2026 Eran Rivlis

Metadata

Release files for Graphinate 0.15.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Graphinate 0.15.2
File Size Uploaded
graphinate-0.15.2.tar.gz 2.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for Graphinate 0.15.2
File Interpreter ABI Platform
graphinate-0.15.2-py3-none-any.whl Python 3 none any Details

Total release size: 2.7 MB

Release files / graphinate-0.15.2.tar.gz

Download URL graphinate-0.15.2.tar.gz
Size 2.6 MB
Tags Source
SHA-256 checksum
How to use checksums
93d30a2899896202b7bfd796dba67c2fe0f3f32335491cbe76663852c3ca37cf
BLAKE2b-256 checksum
How to use checksums
7d7678f0c7f80302d9a458234c919e0a0b3bfa69d99810b393398fa694c1fafe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / graphinate-0.15.2-py3-none-any.whl

Download URL graphinate-0.15.2-py3-none-any.whl
Size 121.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1697ba6d08ec4962f814853bc3e5e9bd082c7af6c420f513fe3bf1ddb3be6ce0
BLAKE2b-256 checksum
How to use checksums
592c9ec48eefe139959a29a770fbaeac843f22381298eec2c215e9c05362b367
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.15.2 This release

2 release files

0.14.0

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.11.0

2 release files

0.10.1

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.6

2 release files

0.8.5

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.21

2 release files

0.2.19

2 release files

0.2.18

2 release files

0.2.17

2 release files

0.2.15

2 release files

0.2.14

2 release files

0.2.13

2 release files

0.2.11

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page