Changeset View
Changeset View
Standalone View
Standalone View
swh/provenance/__init__.py
Show First 20 Lines • Show All 70 Lines • ▼ Show 20 Lines | 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_base import ProvenanceDBBase | ||||
conn = BaseDb.connect(**kwargs["db"]).conn | conn = BaseDb.connect(**kwargs["db"]).conn | ||||
if ProvenanceDBBase(conn).flavor == "with-path": | raise_on_commit = kwargs.get("raise_on_commit", False) | ||||
if ProvenanceDBBase(conn, raise_on_commit).flavor == "with-path": | |||||
from .postgresql.provenancedb_with_path import ProvenanceWithPathDB | from .postgresql.provenancedb_with_path import ProvenanceWithPathDB | ||||
return ProvenanceWithPathDB(conn) | return ProvenanceWithPathDB(conn, raise_on_commit) | ||||
else: | else: | ||||
from .postgresql.provenancedb_without_path import ProvenanceWithoutPathDB | from .postgresql.provenancedb_without_path import ProvenanceWithoutPathDB | ||||
return ProvenanceWithoutPathDB(conn) | return ProvenanceWithoutPathDB(conn, raise_on_commit) | ||||
elif cls == "remote": | |||||
from .api.client import RemoteProvenanceStorage | |||||
storage = RemoteProvenanceStorage(**kwargs) | |||||
assert isinstance(storage, ProvenanceStorageInterface) | |||||
return storage | |||||
else: | else: | ||||
raise ValueError | raise ValueError |