spdx_tools.spdx.parser.jsonlikedict.license_expression_parser

 1# SPDX-FileCopyrightText: 2022 spdx contributors
 2#
 3# SPDX-License-Identifier: Apache-2.0
 4from beartype.typing import Union
 5from license_expression import ExpressionError, LicenseExpression
 6
 7from spdx_tools.common.spdx_licensing import spdx_licensing
 8from spdx_tools.spdx.model import SpdxNoAssertion, SpdxNone
 9from spdx_tools.spdx.parser.error import SPDXParsingError
10
11
12class LicenseExpressionParser:
13    @staticmethod
14    def parse_license_expression(license_expression_str: str) -> Union[LicenseExpression, SpdxNone, SpdxNoAssertion]:
15        if isinstance(license_expression_str, str):
16            if license_expression_str.upper() == "NOASSERTION":
17                return SpdxNoAssertion()
18            if license_expression_str.upper() == "NONE":
19                return SpdxNone()
20
21        try:
22            license_expression = spdx_licensing.parse(license_expression_str)
23        except ExpressionError as err:
24            err_msg = f'Error parsing LicenseExpression: "{license_expression_str}"'
25            if err.args:
26                err_msg += f": {err.args[0]}"
27            raise SPDXParsingError([err_msg])
28
29        return license_expression
class LicenseExpressionParser:
13class LicenseExpressionParser:
14    @staticmethod
15    def parse_license_expression(license_expression_str: str) -> Union[LicenseExpression, SpdxNone, SpdxNoAssertion]:
16        if isinstance(license_expression_str, str):
17            if license_expression_str.upper() == "NOASSERTION":
18                return SpdxNoAssertion()
19            if license_expression_str.upper() == "NONE":
20                return SpdxNone()
21
22        try:
23            license_expression = spdx_licensing.parse(license_expression_str)
24        except ExpressionError as err:
25            err_msg = f'Error parsing LicenseExpression: "{license_expression_str}"'
26            if err.args:
27                err_msg += f": {err.args[0]}"
28            raise SPDXParsingError([err_msg])
29
30        return license_expression
@staticmethod
def parse_license_expression( license_expression_str: str) -> Union[boolean.boolean.Expression, spdx_tools.spdx.model.spdx_none.SpdxNone, spdx_tools.spdx.model.spdx_no_assertion.SpdxNoAssertion]:
14    @staticmethod
15    def parse_license_expression(license_expression_str: str) -> Union[LicenseExpression, SpdxNone, SpdxNoAssertion]:
16        if isinstance(license_expression_str, str):
17            if license_expression_str.upper() == "NOASSERTION":
18                return SpdxNoAssertion()
19            if license_expression_str.upper() == "NONE":
20                return SpdxNone()
21
22        try:
23            license_expression = spdx_licensing.parse(license_expression_str)
24        except ExpressionError as err:
25            err_msg = f'Error parsing LicenseExpression: "{license_expression_str}"'
26            if err.args:
27                err_msg += f": {err.args[0]}"
28            raise SPDXParsingError([err_msg])
29
30        return license_expression