diff --git a/spdx/package.py b/spdx/package.py index 75c50dbe6..93b62e2cd 100644 --- a/spdx/package.py +++ b/spdx/package.py @@ -12,14 +12,16 @@ from datetime import datetime from enum import Enum from functools import reduce -from typing import Optional +from typing import Optional, Union from spdx import creationinfo from spdx import license from spdx import utils from spdx.checksum import Checksum, ChecksumAlgorithm +from spdx.creationinfo import Creator from spdx.parsers.builderexceptions import SPDXValueError from spdx.parsers.loggers import ErrorMessages +from spdx.utils import NoAssert class PackagePurpose(Enum): @@ -95,8 +97,8 @@ def __init__( self.spdx_id = spdx_id self.version = version self.file_name = file_name - self.supplier = supplier - self.originator = originator + self.supplier: Optional[Union[Creator, NoAssert]] = supplier + self.originator: Optional[Union[Creator, NoAssert]] = originator self.download_location = download_location self.files_analyzed = None self.homepage = None diff --git a/spdx/parsers/jsonyamlxml.py b/spdx/parsers/jsonyamlxml.py index 5469376b0..ab384a017 100644 --- a/spdx/parsers/jsonyamlxml.py +++ b/spdx/parsers/jsonyamlxml.py @@ -20,7 +20,7 @@ from spdx.parsers.builderexceptions import SPDXValueError, CardinalityError, OrderError from spdx.parsers.loggers import ErrorMessages from spdx.snippet import Snippet -from spdx.utils import UnKnown +from spdx.utils import UnKnown, NoAssert ERROR_MESSAGES = rdf.ERROR_MESSAGES @@ -1243,6 +1243,8 @@ def parse_pkg_supplier(self, pkg_supplier): - pkg_supplier: Python str/unicode """ if isinstance(pkg_supplier, str): + if pkg_supplier == "NOASSERTION": + return self.builder.set_pkg_supplier(self.document, NoAssert()) entity = self.builder.create_entity(self.document, pkg_supplier) try: return self.builder.set_pkg_supplier(self.document, entity) @@ -1261,6 +1263,8 @@ def parse_pkg_originator(self, pkg_originator): - pkg_originator: Python str/unicode """ if isinstance(pkg_originator, str): + if pkg_originator == "NOASSERTION": + return self.builder.set_pkg_originator(self.document, NoAssert()) entity = self.builder.create_entity(self.document, pkg_originator) try: return self.builder.set_pkg_originator(self.document, entity)