Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/npm/loader.py
Show First 20 Lines • Show All 206 Lines • ▼ Show 20 Lines | - new format sample:: | ||||
}, | }, | ||||
}], | }], | ||||
... | ... | ||||
} | } | ||||
""" | """ | ||||
shasum = p_info.shasum | shasum = p_info.shasum | ||||
for rev_id, known_artifact in known_artifacts.items(): | for rev_id, known_artifact in known_artifacts.items(): | ||||
original_hash = _artifact_to_sha1(known_artifact) | |||||
if shasum == original_hash: | |||||
return rev_id | |||||
return None | |||||
def _artifact_to_sha1(known_artifact: Dict) -> Optional[str]: | |||||
"""Returns the sha1 from an NPM 'original_artifact' dict""" | |||||
known_original_artifact = known_artifact.get("original_artifact") | known_original_artifact = known_artifact.get("original_artifact") | ||||
if not known_original_artifact: | if not known_original_artifact: | ||||
# previous loader-npm version kept original artifact elsewhere | # previous loader-npm version kept original artifact elsewhere | ||||
known_original_artifact = known_artifact.get("package_source") | known_original_artifact = known_artifact.get("package_source") | ||||
if not known_original_artifact: | if not known_original_artifact: | ||||
continue | return None | ||||
original_hash = known_original_artifact["sha1"] | return known_original_artifact["sha1"] | ||||
else: | else: | ||||
assert isinstance(known_original_artifact, list) | assert isinstance(known_original_artifact, list) | ||||
original_hash = known_original_artifact[0]["checksums"]["sha1"] | return known_original_artifact[0]["checksums"]["sha1"] | ||||
if shasum == original_hash: | |||||
return rev_id | |||||
return None | |||||
def _author_str(author_data: Union[Dict, List, str]) -> str: | def _author_str(author_data: Union[Dict, List, str]) -> str: | ||||
"""Parse author from package.json author fields | """Parse author from package.json author fields | ||||
""" | """ | ||||
if isinstance(author_data, dict): | if isinstance(author_data, dict): | ||||
author_str = "" | author_str = "" | ||||
▲ Show 20 Lines • Show All 110 Lines • Show Last 20 Lines |