diff --git a/swh/web/common/identifiers.py b/swh/web/common/identifiers.py --- a/swh/web/common/identifiers.py +++ b/swh/web/common/identifiers.py @@ -234,16 +234,11 @@ """ try: # ensure core part of SWHID is in lower case to avoid parsing error - qualifiers_pos = swhid.find(";") - if qualifiers_pos == -1: - swhid = swhid.lower() - else: - swhid = swhid[:qualifiers_pos].lower() + swhid[qualifiers_pos:] - swhid_parsed = QualifiedSWHID.from_string(swhid) + (core, sep, qualifiers) = swhid.partition(";") + core = core.lower() + return QualifiedSWHID.from_string(core + sep + qualifiers) except ValidationError as ve: raise BadInputExc("Error when parsing identifier: %s" % " ".join(ve.messages)) - else: - return swhid_parsed def group_swhids(swhids: Iterable[QualifiedSWHID],) -> Dict[str, List[bytes]]: