Skip to main content

Neo4j persistence adapter for Pydantic Graph

Project description

Pydantic Graph - Neo4j Persistence

PyPI Version License

Overview

pydantic_graph_neo4j_persistence is a persistence adapter for Neo4j that seamlessly integrates with Pydantic models. It enables saving node snapshots directly into a Neo4j database, facilitating efficient graph data management within Python applications.

Features

  • Seamless Integration: Effortlessly combine Pydantic's data validation with Neo4j's graph database capabilities.
  • Automatic Snapshotting: Automatically persist node states to Neo4j, ensuring data consistency.
  • Flexible Configuration: Tailor the persistence layer to fit various application architectures.

Installation

To install pydantic_graph_neo4j_persistence, use pip:

pip install pydantic_graph_neo4j_persistence

Quick Start

Here is a basic example demonstrating how to use pydantic_graph.neo4j_persistence:

from pydantic_graph_neo4j_persistence import Neo4jStatePersistence

async def run_as_cli(answer: str | None):
    persistence = Neo4jStatePersistence(
        uri="your_uri",
        username="your_username",
        password="your_password",
        execution_id="execution_id",
        verbose=False
    )

    persistence.set_graph_types(my_pydantic_graph)

    ...
    


if __name__ == '__main__':
    import asyncio
    import sys
    
    a = sys.argv[2] if len(sys.argv) > 2 else None
    asyncio.run(run_as_cli(a))

You can see a full example on the oficial pydantic documentation. From there just change the persistence variable to use the Neo4jStatePersistence

Nodes and Relationships

The Neo4jStatePersistence uses and require the following Nodes:

  • NodeSnapshot
  • EndSnapshot
  • Execution

And the following relationship:

  • HAS_SNAPSHOT

(e:Execution) ->[:HAS_SNAPSHOT]->(n:NodeSnapshot) (e:Execution) ->[:HAS_SNAPSHOT]->(n:EndSnapshot)

Contributing

We welcome contributions to enhance the functionality and usability of pydantic_graph.neo4j_persistence. To contribute:

Fork the repository.

Create a new branch for your feature or bug fix.

Ensure existing tests pass and add new tests for your changes.

Submit a pull request detailing your changes and the problem they address.

License

pydantic_graph.neo4j_persistence is licensed under the MIT License. See the LICENSE file for details.

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

pydantic_graph_neo4j_persistence-0.1.5.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file pydantic_graph_neo4j_persistence-0.1.5.tar.gz.

File metadata

File hashes

Hashes for pydantic_graph_neo4j_persistence-0.1.5.tar.gz
Algorithm Hash digest
SHA256 e38aae09dcda0f13c3a8d123b91c5da23f247d520daf0a68b77c7e1f6d0fa3e7
MD5 0027fbc1c461e029b482944411927fbc
BLAKE2b-256 115a8862b9989826caacbe8d077dec20ecfcc5de1b45a4e31798c90a44336762

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydantic_graph_neo4j_persistence-0.1.5.tar.gz:

Publisher: python-publish.yml on Goduu/pydantic_graph.neo4j_persistence

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pydantic_graph_neo4j_persistence-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for pydantic_graph_neo4j_persistence-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 796cd6bea9b974f6ba3cf01d136ded7628aaf7170146900777e871d4e229ffe9
MD5 bbe826e069e86b05479a9c7c5d8230d8
BLAKE2b-256 ec65b7f83f7a44625783dd80cb82fc3bdaf12098873751406bb5f777428489fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydantic_graph_neo4j_persistence-0.1.5-py3-none-any.whl:

Publisher: python-publish.yml on Goduu/pydantic_graph.neo4j_persistence

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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