Skip to main content

The project contains the PuppyGraph client and PuppyGraph's Agentic Graph RAG libraries for Python. PuppyGraph client enables dynamic graph querying across multiple data sources with zero ETL, flexible schema management, and support for Cypher and Gremlin queries. PuppyGraph agentic graph RAG library makes graph-aware AI Agents.

Project description

PuppyGraph

This repository contains the PuppyGraph client for Python as well as PuppyGraph's Agentic Graph RAG libraries.

Key Features

  • Zero ETL: Query data directly from your lakes and databases without data duplication.
  • Dynamic Schema Management: Modify graph schemas on the fly, without needing to rebuild databases.
  • Petabyte Scalability: Auto-sharded, distributed computation for handling vast datasets.
  • Support for Cypher and Gremlin: Interoperable query support with robust performance.
  • AI-Native: Ideal for Graph-RAG applications, with ultra-fast response times.

Installation

You can install the latest version via pip:

pip install puppygraph

Quick Example

Setup the client

    from puppygraph import PuppyGraphClient, PuppyGraphHostConfig
    client = PuppyGraphClient(PuppyGraphHostConfig("localhost"))

Query the graph

    # Cypher Query
    client.cypher_query("MATCH (actor:Actor)-[:ACTED_IN]->(movie:Movie) WHERE actor.name = \"Tom Hanks\"
                        "RETURN movie.title")

    # Gremlin Query 
    client.gremlin_query("g.V().hasLabel('person').has('name', 'Tom Hanks').out('ACTED_IN').values('title')")

Set the schema

    # A sample schema for the IMDb dataset
    client.set_schema(
    {
        "catalogs": [
            {
                "name": "imdb_catalog",
                "type": "DELTALAKE",
                "params": {
                    "metastore_param": {
                        "token": "your_token",
                        "host": "your_host",
                        "unity_catalog_name": "imdb_catalog",
                    },
                    "storage_param": {
                        "use_instance_profile": "false",
                        "region": "us-west-2",
                        "access_key": "your_access_key",
                        "secret_key": "your_secret_key",
                        "enable_ssl": "true",
                        "type": "S3",
                    },
                },
            }
        ],
        "vertices": [
            {
                "table_source": {
                    "catalog_name": "imdb_catalog",
                    "schema_name": "public",
                    "table_name": "movies",
                },
                "label": "Movie",
                "description": "A movie in the IMDb database",
                "attributes": [
                    {
                        "name": "title",
                        "from_field": "title",
                        "type": "String",
                        "description": "The title of the movie",
                    },
                    {
                        "name": "release_year",
                        "from_field": "release_year",
                        "type": "Integer",
                        "description": "The year the movie was released",
                    },
                ],
                "id": [
                    {"name": "movie_id", "from_field": "movie_id", "type": "String"}
                ],
            },
            {
                "table_source": {
                    "catalog_name": "imdb_catalog",
                    "schema_name": "public",
                    "table_name": "actors",
                },
                "label": "Actor",
                "description": "An actor who starred in movies",
                "attributes": [
                    {
                        "name": "name",
                        "from_field": "name",
                        "type": "String",
                        "description": "The name of the actor",
                    }
                ],
                "id": [
                    {"name": "actor_id", "from_field": "actor_id", "type": "String"}
                ],
            },
        ],
        "edges": [
            {
                "table_source": {
                    "catalog_name": "imdb_catalog",
                    "schema_name": "public",
                    "table_name": "acted_in",
                },
                "label": "ACTED_IN",
                "from_label": "Actor",
                "to_label": "Movie",
                "description": "An actor acted in a movie",
                "attributes": [],
                "id": [
                    {
                        "name": "acted_in_id",
                        "from_field": "acted_in_id",
                        "type": "String",
                    }
                ],
                "from_id": [
                    {"name": "actor_id", "from_field": "actor_id", "type": "String"}
                ],
                "to_id": [
                    {"name": "movie_id", "from_field": "movie_id", "type": "String"}
                ],
            }
        ],
    }
)
    

About PuppyGraph

PuppyGraph is a zero-ETL graph analytics engine enabling seamless graph querying across one or multiple data sources. Unlike traditional graph databases, PuppyGraph connects directly to your data warehouses and lakes without requiring complex ETL pipelines, making it both cost-efficient and scalable.

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

puppygraph-0.1.6.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

puppygraph-0.1.6-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file puppygraph-0.1.6.tar.gz.

File metadata

  • Download URL: puppygraph-0.1.6.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.12.3 Linux/6.6.111+

File hashes

Hashes for puppygraph-0.1.6.tar.gz
Algorithm Hash digest
SHA256 50afe004dea16cd446ac5354f8d2df89d1e978421b0a9b68ce31407e91d41b8b
MD5 1456675d4d85842a03d81cd1365286d6
BLAKE2b-256 b26024889923930ee4ce27f5e40c6932c07de23edfd6717217b222e82fdd92cf

See more details on using hashes here.

File details

Details for the file puppygraph-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: puppygraph-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 20.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.12.3 Linux/6.6.111+

File hashes

Hashes for puppygraph-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 00978806902f37a60fd6bb6cce2483e880cebcdff345b2bd9b02e493e682a72e
MD5 7a37e9c2e0c7f428da5715cf46c9dd1b
BLAKE2b-256 6014addc816ffe0f42c7bea6ac74c734038e2b43d8e5396409c69361488a00a4

See more details on using hashes here.

Supported by

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