Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/cassandra/converters.py
Show All 30 Lines | def revision_to_db(revision: Revision) -> Dict[str, Any]: | ||||
# want to modify original metadata (embedded in the Model entity), so we | # want to modify original metadata (embedded in the Model entity), so we | ||||
# non-recursively convert it as a dict but make a deep copy. | # non-recursively convert it as a dict but make a deep copy. | ||||
db_revision = deepcopy(attr.asdict(revision, recurse=False)) | db_revision = deepcopy(attr.asdict(revision, recurse=False)) | ||||
metadata = revision.metadata | metadata = revision.metadata | ||||
extra_headers = revision.extra_headers | extra_headers = revision.extra_headers | ||||
if not extra_headers and metadata and "extra_headers" in metadata: | if not extra_headers and metadata and "extra_headers" in metadata: | ||||
extra_headers = db_revision["metadata"].pop("extra_headers") | extra_headers = db_revision["metadata"].pop("extra_headers") | ||||
db_revision["metadata"] = json.dumps( | db_revision["metadata"] = json.dumps( | ||||
dict(db_revision["metadata"] if db_revision["metadata"] is not None else None) | dict(db_revision["metadata"]) if db_revision["metadata"] is not None else None | ||||
) | ) | ||||
db_revision["extra_headers"] = extra_headers | db_revision["extra_headers"] = extra_headers | ||||
db_revision["type"] = db_revision["type"].value | db_revision["type"] = db_revision["type"].value | ||||
return db_revision | return db_revision | ||||
def revision_from_db(db_revision: Row, parents: Tuple[Sha1Git]) -> Revision: | def revision_from_db(db_revision: Row, parents: Tuple[Sha1Git]) -> Revision: | ||||
revision = db_revision._asdict() # type: ignore | revision = db_revision._asdict() # type: ignore | ||||
▲ Show 20 Lines • Show All 49 Lines • Show Last 20 Lines |