Changeset View
Changeset View
Standalone View
Standalone View
swh/provenance/__init__.py
Show First 20 Lines • Show All 81 Lines • ▼ Show 20 Lines | if cls in ["local", "postgresql"]: | ||||
'use "postgresql" class instead.', | 'use "postgresql" class instead.', | ||||
DeprecationWarning, | DeprecationWarning, | ||||
) | ) | ||||
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) | ||||
return ProvenanceStoragePostgreSql(conn, raise_on_commit) | return ProvenanceStoragePostgreSql(conn, raise_on_commit) | ||||
elif cls == "mongodb": | |||||
from pymongo import MongoClient | |||||
from .mongo.backend import ProvenanceStorageMongoDb | |||||
dbname = kwargs["db"].pop("dbname") | |||||
db = MongoClient(**kwargs["db"]).get_database(dbname) | |||||
return ProvenanceStorageMongoDb(db) | |||||
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 |