Changeset View
Changeset View
Standalone View
Standalone View
swh/provenance/__init__.py
Show First 20 Lines • Show All 67 Lines • ▼ Show 20 Lines | Returns: | ||||
an instance of storage object | an instance of storage object | ||||
Raises: | Raises: | ||||
:cls:`ValueError` if passed an unknown archive class. | :cls:`ValueError` if passed an unknown archive class. | ||||
""" | """ | ||||
if cls == "local": | if cls == "local": | ||||
from swh.core.db import BaseDb | from swh.core.db import BaseDb | ||||
from .postgresql.provenancedb_base import ProvenanceDBBase | from .postgresql.provenancedb import ProvenanceDB | ||||
conn = BaseDb.connect(**kwargs["db"]).conn | conn = BaseDb.connect(**kwargs["db"]).conn | ||||
raise_on_commit = kwargs.get("raise_on_commit", False) | raise_on_commit = kwargs.get("raise_on_commit", False) | ||||
if "with-path" in ProvenanceDBBase(conn, raise_on_commit).flavor: | return ProvenanceDB(conn, raise_on_commit) | ||||
from .postgresql.provenancedb_with_path import ProvenanceWithPathDB | |||||
return ProvenanceWithPathDB(conn, raise_on_commit) | |||||
else: | |||||
from .postgresql.provenancedb_without_path import ProvenanceWithoutPathDB | |||||
return ProvenanceWithoutPathDB(conn, raise_on_commit) | |||||
elif cls == "remote": | elif cls == "remote": | ||||
from .api.client import RemoteProvenanceStorage | from .api.client import RemoteProvenanceStorage | ||||
storage = RemoteProvenanceStorage(**kwargs) | storage = RemoteProvenanceStorage(**kwargs) | ||||
assert isinstance(storage, ProvenanceStorageInterface) | assert isinstance(storage, ProvenanceStorageInterface) | ||||
return storage | return storage | ||||
else: | else: | ||||
raise ValueError | raise ValueError |