Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/loader.py
Show First 20 Lines • Show All 326 Lines • ▼ Show 20 Lines | ) -> Optional[CoreSWHID]: | ||||
if extid_target.object_type == ObjectType.RELEASE | if extid_target.object_type == ObjectType.RELEASE | ||||
} | } | ||||
extid_target2 = self.select_extid_target(p_info, release_extid_targets) | extid_target2 = self.select_extid_target(p_info, release_extid_targets) | ||||
if extid_target2: | if extid_target2: | ||||
return extid_target2 | return extid_target2 | ||||
# If there is no release extid (ie. if the package was only loaded with | # If there is no release extid (ie. if the package was only loaded with | ||||
# older versions of this loader, which produced revision objects instead | # older versions of this loader, which produced revision objects instead | ||||
# of releases), return a revision extid. | # of releases), return a revision extid when possible. | ||||
revision_extid_targets = { | |||||
extid_target | |||||
for extid_target in extid_targets | |||||
if extid_target.object_type == ObjectType.REVISION | |||||
} | |||||
if revision_extid_targets: | |||||
assert len(extid_targets) == 1, extid_targets | assert len(extid_targets) == 1, extid_targets | ||||
extid_target = list(extid_targets)[0] | extid_target = list(extid_targets)[0] | ||||
assert extid_target.object_type == ObjectType.REVISION, extid_targets | |||||
return extid_target | return extid_target | ||||
else: | |||||
# No target found (this is probably a new package version) | # No target found (this is probably a new package version) | ||||
return None | return None | ||||
def select_extid_target( | def select_extid_target( | ||||
self, p_info: TPackageInfo, extid_targets: Set[CoreSWHID] | self, p_info: TPackageInfo, extid_targets: Set[CoreSWHID] | ||||
) -> Optional[CoreSWHID]: | ) -> Optional[CoreSWHID]: | ||||
"""Given a list of release extid targets, choses one appropriate for the | """Given a list of release extid targets, choses one appropriate for the | ||||
given package info. | given package info. | ||||
Package loaders shyould implement this if their ExtIDs may map to multiple | Package loaders shyould implement this if their ExtIDs may map to multiple | ||||
▲ Show 20 Lines • Show All 730 Lines • Show Last 20 Lines |