Source code for runic.ogm.driver.factory
"""Driver factory — create_driver() for backend-agnostic driver construction."""
from __future__ import annotations
from typing import Any
from runic.ogm.driver import GraphDriver
[docs]
def create_driver(backend: str, **kwargs: Any) -> GraphDriver:
"""Return a :class:`~runic.ogm.driver.GraphDriver` for the given *backend*.
Parameters
----------
backend:
``"falkordb"``, ``"arcadedb"``, ``"neo4j"``, ``"memgraph"``, or
``"age"``.
**kwargs:
Backend-specific keyword arguments forwarded to the driver constructor.
Raises
------
ValueError
When *backend* is unknown.
Examples
--------
FalkorDB::
driver = create_driver(
"falkordb", host="localhost", port=6379, graph="my_graph"
)
ArcadeDB::
driver = create_driver(
"arcadedb",
host="localhost",
port=7687,
database="MyDB",
username="root",
password="secret",
)
Neo4j::
driver = create_driver(
"neo4j",
host="localhost",
port=7687,
database="neo4j",
username="neo4j",
password="secret",
encrypted=True,
)
Memgraph::
driver = create_driver(
"memgraph",
host="localhost",
port=7687,
database="memgraph",
username="",
password="",
)
Apache AGE::
driver = create_driver(
"age",
host="localhost",
port=5432,
database="postgres",
graph="my_graph",
username="postgres",
password="secret",
)
"""
if backend == "falkordb":
from runic.ogm.driver.falkordb import create_falkordb_driver
return create_falkordb_driver(**kwargs)
if backend == "arcadedb":
from runic.ogm.driver.arcadedb import create_arcadedb_driver
return create_arcadedb_driver(**kwargs)
if backend == "neo4j":
from runic.ogm.driver.neo4j import create_neo4j_driver
return create_neo4j_driver(**kwargs)
if backend == "memgraph":
from runic.ogm.driver.memgraph import create_memgraph_driver
return create_memgraph_driver(**kwargs)
if backend == "age":
from runic.ogm.driver.age import create_age_driver
return create_age_driver(**kwargs)
raise ValueError(
f"Unknown driver backend {backend!r}. "
"Supported: 'falkordb', 'arcadedb', 'neo4j', 'memgraph', 'age'."
)