Skip to content

Commit 7a1fc04

Browse files
committed
fix(ISV-5784): improve typing
Signed-off-by: Martin Jediny <jedinym@proton.me>
1 parent 045a879 commit 7a1fc04

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

sbom/sbomlib.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -359,8 +359,12 @@ def get_purl_arch(purl_str: str) -> Optional[str]:
359359
"""
360360
Get the arch qualifier from a PackageURL.
361361
"""
362-
purl = PackageURL.from_string(purl_str).to_dict()
363-
return purl["qualifiers"].get("arch") # type: ignore
362+
purl = PackageURL.from_string(purl_str)
363+
if isinstance(purl.qualifiers, dict):
364+
return purl.qualifiers.get("arch")
365+
366+
logger.warning("Parsed qualifiers from purl %s are not a dictionary.", purl_str)
367+
return None
364368

365369

366370
def get_purl_digest(purl_str: str) -> str:
@@ -369,5 +373,5 @@ def get_purl_digest(purl_str: str) -> str:
369373
"""
370374
purl = PackageURL.from_string(purl_str)
371375
if purl.version is None:
372-
raise ValueError("SBOM contains invalid OCI Purl: %s", purl_str)
376+
raise SBOMError("SBOM contains invalid OCI Purl: %s", purl_str)
373377
return purl.version

sbom/test_create_product_sbom.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from sbom.create_product_sbom import ReleaseNotes, create_sbom
1111
from sbom.sbomlib import Component, Image, IndexImage, Snapshot
1212

13-
Digests = namedtuple("TestDigests", ["single_arch", "multi_arch"])
13+
Digests = namedtuple("Digests", ["single_arch", "multi_arch"])
1414
DIGESTS = Digests(
1515
single_arch="sha256:8f2e5e7f92d8e8d2e9b3e9c1a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0",
1616
multi_arch="sha256:e4d2f37a563fcfa4d3a1ab476ded714c56f75f916d30c3a33815d64d41f78534",

0 commit comments

Comments
 (0)