Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/deposit/loader.py
Show First 20 Lines • Show All 61 Lines • ▼ Show 20 Lines | class DepositPackageInfo(BasePackageInfo): | ||||
def from_metadata( | def from_metadata( | ||||
cls, metadata: Dict[str, Any], url: str, filename: str, version: str | cls, metadata: Dict[str, Any], url: str, filename: str, version: str | ||||
) -> "DepositPackageInfo": | ) -> "DepositPackageInfo": | ||||
# Note: | # Note: | ||||
# `date` and `committer_date` are always transmitted by the deposit read api | # `date` and `committer_date` are always transmitted by the deposit read api | ||||
# which computes itself the values. The loader needs to use those to create the | # which computes itself the values. The loader needs to use those to create the | ||||
# release. | # release. | ||||
metadata_raw: str = metadata["metadata_raw"] | raw_metadata: str = metadata["raw_metadata"] | ||||
depo = metadata["deposit"] | depo = metadata["deposit"] | ||||
return cls( | return cls( | ||||
url=url, | url=url, | ||||
filename=filename, | filename=filename, | ||||
version=version, | version=version, | ||||
author_date=depo["author_date"], | author_date=depo["author_date"], | ||||
commit_date=depo["committer_date"], | commit_date=depo["committer_date"], | ||||
client=depo["client"], | client=depo["client"], | ||||
id=depo["id"], | id=depo["id"], | ||||
collection=depo["collection"], | collection=depo["collection"], | ||||
author=parse_author(depo["author"]), | author=parse_author(depo["author"]), | ||||
committer=parse_author(depo["committer"]), | committer=parse_author(depo["committer"]), | ||||
release_notes=depo["release_notes"], | release_notes=depo["release_notes"], | ||||
directory_extrinsic_metadata=[ | directory_extrinsic_metadata=[ | ||||
RawExtrinsicMetadataCore( | RawExtrinsicMetadataCore( | ||||
discovery_date=now(), | discovery_date=now(), | ||||
metadata=metadata_raw.encode(), | metadata=raw_metadata.encode(), | ||||
format="sword-v2-atom-codemeta-v2", | format="sword-v2-atom-codemeta-v2", | ||||
) | ) | ||||
], | ], | ||||
) | ) | ||||
def extid(self) -> None: | def extid(self) -> None: | ||||
# For now, we don't try to deduplicate deposits. There is little point anyway, | # For now, we don't try to deduplicate deposits. There is little point anyway, | ||||
# as it only happens when the exact same tarball was deposited twice. | # as it only happens when the exact same tarball was deposited twice. | ||||
▲ Show 20 Lines • Show All 107 Lines • ▼ Show 20 Lines | ) -> Optional[Release]: | ||||
date=TimestampWithTimezone.from_dict(p_info.author_date), | date=TimestampWithTimezone.from_dict(p_info.author_date), | ||||
target=directory, | target=directory, | ||||
target_type=ObjectType.DIRECTORY, | target_type=ObjectType.DIRECTORY, | ||||
synthetic=True, | synthetic=True, | ||||
) | ) | ||||
def get_extrinsic_origin_metadata(self) -> List[RawExtrinsicMetadataCore]: | def get_extrinsic_origin_metadata(self) -> List[RawExtrinsicMetadataCore]: | ||||
metadata = self.metadata() | metadata = self.metadata() | ||||
metadata_raw: str = metadata["metadata_raw"] | raw_metadata: str = metadata["raw_metadata"] | ||||
origin_metadata = json.dumps( | origin_metadata = json.dumps( | ||||
{ | { | ||||
"metadata": [metadata_raw], | "metadata": [raw_metadata], | ||||
"provider": metadata["provider"], | "provider": metadata["provider"], | ||||
"tool": metadata["tool"], | "tool": metadata["tool"], | ||||
} | } | ||||
).encode() | ).encode() | ||||
return [ | return [ | ||||
RawExtrinsicMetadataCore( | RawExtrinsicMetadataCore( | ||||
discovery_date=now(), | discovery_date=now(), | ||||
metadata=metadata_raw.encode(), | metadata=raw_metadata.encode(), | ||||
format="sword-v2-atom-codemeta-v2", | format="sword-v2-atom-codemeta-v2", | ||||
), | ), | ||||
RawExtrinsicMetadataCore( | RawExtrinsicMetadataCore( | ||||
discovery_date=now(), | discovery_date=now(), | ||||
metadata=origin_metadata, | metadata=origin_metadata, | ||||
format="original-artifacts-json", | format="original-artifacts-json", | ||||
), | ), | ||||
] | ] | ||||
▲ Show 20 Lines • Show All 151 Lines • Show Last 20 Lines |