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.6.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.6.tar.gz.

File metadata

File hashes

Hashes for pydantic_graph_neo4j_persistence-0.1.6.tar.gz
Algorithm Hash digest
SHA256 f02bc4ecb3a8b5c37d17a30ce5bd75800c0bbe0f10dba7ccb61b750c6df99bb6
MD5 c3c4eff841297f75bc38cecea5e91a9c
BLAKE2b-256 44338ffcd0db803e1fb869e7c97dfebe69d5149f8f0cdc1c42acb9a38e64ff3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydantic_graph_neo4j_persistence-0.1.6.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.6-py3-none-any.whl.

File metadata

File hashes

Hashes for pydantic_graph_neo4j_persistence-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 530b38fd89f50a715d37e0e8bc6768fcdff2f776359137df9ca33ddb8561142a
MD5 6ba71e78af86bfd235d430e92a824858
BLAKE2b-256 94fef4a702a0ee669f4f584bd2ff073bb4cf16ce72adaf51a991d828e28db2bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydantic_graph_neo4j_persistence-0.1.6-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