Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/loader.py
Show All 10 Lines | |||||
from typing import Any, Dict, Generator, List, Mapping, Optional, Sequence, Tuple | from typing import Any, Dict, Generator, List, Mapping, Optional, Sequence, Tuple | ||||
import attr | import attr | ||||
import sentry_sdk | import sentry_sdk | ||||
from swh.core.tarball import uncompress | from swh.core.tarball import uncompress | ||||
from swh.core.config import SWHConfig | from swh.core.config import SWHConfig | ||||
from swh.model import from_disk | from swh.model import from_disk | ||||
from swh.model.collections import ImmutableDict | |||||
from swh.model.hashutil import hash_to_hex | from swh.model.hashutil import hash_to_hex | ||||
from swh.model.model import ( | from swh.model.model import ( | ||||
BaseModel, | BaseModel, | ||||
Sha1Git, | Sha1Git, | ||||
Revision, | Revision, | ||||
TargetType, | TargetType, | ||||
Snapshot, | Snapshot, | ||||
Origin, | Origin, | ||||
▲ Show 20 Lines • Show All 390 Lines • ▼ Show 20 Lines | def _load_revision(self, p_info, origin) -> Optional[Sha1Git]: | ||||
revision = self.build_revision( | revision = self.build_revision( | ||||
p_info["raw"], uncompressed_path, directory=directory.hash | p_info["raw"], uncompressed_path, directory=directory.hash | ||||
) | ) | ||||
if not revision: | if not revision: | ||||
# Some artifacts are missing intrinsic metadata | # Some artifacts are missing intrinsic metadata | ||||
# skipping those | # skipping those | ||||
return None | return None | ||||
metadata = revision.metadata or {} | extra_metadata: Tuple[str, Any] = ( | ||||
metadata.update( | "original_artifact", | ||||
{"original_artifact": [hashes for _, hashes in dl_artifacts],} | [hashes for _, hashes in dl_artifacts], | ||||
) | ) | ||||
revision = attr.evolve(revision, metadata=metadata) | if revision.metadata is not None: | ||||
rev_metadata = list(revision.metadata.items()) | |||||
if rev_metadata: | |||||
full_metadata = [extra_metadata] + rev_metadata | |||||
vlorentz: Replace these three lines with:
`full_metadata = list(revision.metadata.items()) +… | |||||
ardumontAuthorUnsubmitted Done Inline Actions+1 ;) ardumont: +1 ;) | |||||
else: | |||||
full_metadata = [extra_metadata] | |||||
revision = attr.evolve(revision, metadata=ImmutableDict(full_metadata)) | |||||
logger.debug("Revision: %s", revision) | logger.debug("Revision: %s", revision) | ||||
self.storage.revision_add([revision]) | self.storage.revision_add([revision]) | ||||
return revision.id | return revision.id | ||||
def _load_snapshot( | def _load_snapshot( | ||||
self, | self, | ||||
▲ Show 20 Lines • Show All 43 Lines • Show Last 20 Lines |
Replace these three lines with:
full_metadata = list(revision.metadata.items()) + [extra_metadata]
it's shorter and spares a copy