Skip to main content

Graphinate. Data to Graphs.

Project description

Graphinate. Data to Graphs.

Graphinate. Data to Graphs.
Package PyPI - version PyPI - Status PyPI - Python Version PyPI - Downloads
GitHub GitHub repo size GitHub last commit (by committer) Contributors
Tools PyCharm ruff uv mkdocs-material pipdeptree
CI/CD Tests Publish Publish Docs
Scans Coverage
Quality Gate Status Security Rating Maintainability Rating Reliability Rating
Lines of Code Vulnerabilities Bugs
Codacy Badge Codacy Coverage Scrutinizer

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.

Links

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

Example

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)

graphinate.model function

[!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.

graphinate.materialize function

[!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.

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

Web Page Links

Web Page Links

Development

Ruff

ruff check src

Test

Standard (cobertura) XML Coverage Report

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

HTML Coverage Report

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

Docs

test

python -m mkdocs serve

build

python -m mkdocs build

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. Material for MkDocs pytest logo. Ruff logo.

IDE

PyCharm logo.


Star Chart

Copyright © 2023 Eran Rivlis

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.3.1.tar.gz (317.6 kB view details)

Uploaded Source

Built Distribution

graphinate-0.3.1-py3-none-any.whl (106.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: graphinate-0.3.1.tar.gz
  • Upload date:
  • Size: 317.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for graphinate-0.3.1.tar.gz
Algorithm Hash digest
SHA256 3bbc32a1eb4a3e72db11446c00b4be33990c5de2d22813b9ecd28a3a727b71d0
MD5 f719690e8ab21407042840060c50c71a
BLAKE2b-256 c6bce6c2a7439c8083007f87564804e5b0a8fccda3e2d6b9b00d5c19a06ae709

See more details on using hashes here.

File details

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

File metadata

  • Download URL: graphinate-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 106.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for graphinate-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d1734d14a163848dad4aed99f688cd57941591cead66791670be9dfacb4109f9
MD5 cf8ec6b1871d21c6021f101dcf254d92
BLAKE2b-256 b9955cc06ff10efc1409b626855274e51c82f27967d4d026afbb041ed93b252c

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