Changeset View
Changeset View
Standalone View
Standalone View
swh/clearlydefined/mapping_utils.py
Show First 20 Lines • Show All 55 Lines • ▼ Show 20 Lines | |||||
FETCHER = MetadataFetcher( | FETCHER = MetadataFetcher( | ||||
name="swh-clearlydefined", | name="swh-clearlydefined", | ||||
version="0.0.1", | version="0.0.1", | ||||
metadata=None, | metadata=None, | ||||
) | ) | ||||
def is_sha1(s): | def is_sha1(s): | ||||
return bool(re.match("^[a-fA-F0-9]+$", s)) | return bool(re.match("^[a-fA-F0-9]{40}$", s)) | ||||
def map_row_data_with_metadata( | def map_row_data_with_metadata( | ||||
target: ExtendedSWHID, | target: ExtendedSWHID, | ||||
origin: Optional[Origin], | origin: Optional[Origin], | ||||
metadata: Dict, | metadata: Dict, | ||||
date: datetime, | date: datetime, | ||||
format: str, | format: str, | ||||
▲ Show 20 Lines • Show All 177 Lines • ▼ Show 20 Lines | if url: | ||||
assert isinstance(url, str) | assert isinstance(url, str) | ||||
origin = Origin(url=url) | origin = Origin(url=url) | ||||
if not sha1_git: | if not sha1_git: | ||||
sha1_git = source.get("revision") | sha1_git = source.get("revision") | ||||
if sha1_git: | if sha1_git: | ||||
assert isinstance(sha1_git, str) | assert isinstance(sha1_git, str) | ||||
if len(sha1_git) != 40 and not is_sha1(sha1_git): | if not is_sha1(sha1_git): | ||||
return MappingStatus.IGNORE, [] | return MappingStatus.IGNORE, [] | ||||
if not sha1_git_in_revisions(sha1_git=sha1_git, storage=storage): | if not sha1_git_in_revisions(sha1_git=sha1_git, storage=storage): | ||||
return MappingStatus.UNMAPPED, [] | return MappingStatus.UNMAPPED, [] | ||||
swhid = ExtendedSWHID( | swhid = ExtendedSWHID( | ||||
object_type=ExtendedObjectType.REVISION, object_id=hash_to_bytes(sha1_git) | object_type=ExtendedObjectType.REVISION, object_id=hash_to_bytes(sha1_git) | ||||
) | ) | ||||
else: | else: | ||||
▲ Show 20 Lines • Show All 83 Lines • Show Last 20 Lines |