Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/archive/loader.py
Show All 35 Lines | def extid(self, manifest_format: Optional[string.Template] = None) -> PartialExtID: | ||||
"""Returns a unique intrinsic identifier of this package info | """Returns a unique intrinsic identifier of this package info | ||||
``manifest_format`` allows overriding the class' default MANIFEST_FORMAT""" | ``manifest_format`` allows overriding the class' default MANIFEST_FORMAT""" | ||||
manifest_format = manifest_format or self.MANIFEST_FORMAT | manifest_format = manifest_format or self.MANIFEST_FORMAT | ||||
# TODO: use parsed attributes instead of self.raw_info | # TODO: use parsed attributes instead of self.raw_info | ||||
manifest = manifest_format.substitute( | manifest = manifest_format.substitute( | ||||
{k: str(v) for (k, v) in self.raw_info.items()} | {k: str(v) for (k, v) in self.raw_info.items()} | ||||
) | ) | ||||
return (self.EXTID_TYPE, hashlib.sha256(manifest.encode()).digest()) | return ( | ||||
self.EXTID_TYPE, | |||||
self.EXTID_VERSION, | |||||
hashlib.sha256(manifest.encode()).digest(), | |||||
) | |||||
@classmethod | @classmethod | ||||
def from_metadata(cls, a_metadata: Dict[str, Any]) -> "ArchivePackageInfo": | def from_metadata(cls, a_metadata: Dict[str, Any]) -> "ArchivePackageInfo": | ||||
url = a_metadata["url"] | url = a_metadata["url"] | ||||
filename = a_metadata.get("filename") | filename = a_metadata.get("filename") | ||||
return cls( | return cls( | ||||
url=url, | url=url, | ||||
filename=filename if filename else path.split(url)[-1], | filename=filename if filename else path.split(url)[-1], | ||||
▲ Show 20 Lines • Show All 110 Lines • Show Last 20 Lines |