Skip to main content

Graphinate. Data to Graphs.

Project description

Graphinate. Data to Graphs.

Graphinate. Data to Graphs.

PyPI PyPI - Status PyPI - Python Version PyPI - Downloads GitHub GitHub repo size GitHub last commit (by committer)
Contributors Tests Publish

[!WARNING]

UNDER DEVELOPMENT

This library is alpha-quality


Introduction

What is Graphinate?

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.


Quick Start

Install

Graphinate is available on PyPI:

pip install graphinate

To install with server support

pip install graphinate[server]

Graphinate officially supports Python 3.9+.

Example

import graphinate

N: int = 8

# Define GraphModel
graph_model = graphinate.GraphModel(name="Octagonal Graph")


# Register edges supplier function
@graph_model.edge()
def edge():
    for i in range(N):
        yield {'source': i, 'target': i + 1}
    yield {'source': N, 'target': 0}


# Materialize the GraphModel
graphinate.materialize(graph_model)

[!NOTE]

graphinate.GraphModel class

This class is used to declaratively register Edge and/or Node data supplier functions by using decorators.

graphinate.materialize function

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 dialog.

CLI

Commands

Usage: python -m graphinate [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  save
  server

Save

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.

Server

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.

Gallery

Python AST

d3_graph_ast

GitHub Repository

repo_graph

Python AST - 3D Force-Directed Animation

AST 3D Force animation

Development

Ruff

ruff check src

Docs

test

python -m mkdocs serve

build

python -m mkdocs build

Build

python -m build

Test

 python -m pytest ./tests --cov=./src --cov-branch --doctest-modules --cov-report=xml --junitxml=test_results.xml

Acknowledgements

Dependencies

Python

Click Logo. Loguru Logo. matplotlib Logo. NetworkX Logo. Strawberry GraphQL Logo.

Javascript and HTML

3D Force-Directed Graph Logo. Graphql Voyager Logo.

Dev Tools

Hatch logo. pytest logo. Ruff logo.

IDE

PyCharm logo.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

graphinate-0.1.0.tar.gz (241.5 kB view details)

Uploaded Source

Built Distribution

graphinate-0.1.0-py3-none-any.whl (70.5 kB view details)

Uploaded Python 3

File details

Details for the file graphinate-0.1.0.tar.gz.

File metadata

  • Download URL: graphinate-0.1.0.tar.gz
  • Upload date:
  • Size: 241.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for graphinate-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f0a0137b89645941af490f8ec0df012a8bf5f6f90bea1aef6a61dbad98eba3c2
MD5 e91820d63aed51b4227a29f3f601af2e
BLAKE2b-256 a750666a7e4ca3b133441e18aa5f3b0cec52d9601fc6bec896d136524bd67866

See more details on using hashes here.

File details

Details for the file graphinate-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: graphinate-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 70.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for graphinate-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 905a67b51ec4eeaddbfdc565127ed5ea507be5634352c6cea19efc33c56a04ae
MD5 2a0f45e9cde62d1a0f37dd40ae0503be
BLAKE2b-256 88936610cc9a14faefbd3ca9b39a354f6d891173927790a8d8e6244561e1f605

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page