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, Licensing
 6
 7from spdx_tools.spdx.model import SpdxNoAssertion, SpdxNone
 8from spdx_tools.spdx.parser.error import SPDXParsingError
 9
10
11class LicenseExpressionParser:
12    @staticmethod
13    def parse_license_expression(license_expression_str: str) -> Union[LicenseExpression, SpdxNone, SpdxNoAssertion]:
14        if isinstance(license_expression_str, str):
15            if license_expression_str.upper() == "NOASSERTION":
16                return SpdxNoAssertion()
17            if license_expression_str.upper() == "NONE":
18                return SpdxNone()
19
20        try:
21            license_expression = Licensing().parse(license_expression_str)
22        except ExpressionError as err:
23            err_msg = f'Error parsing LicenseExpression: "{license_expression_str}"'
24            if err.args:
25                err_msg += f": {err.args[0]}"
26            raise SPDXParsingError([err_msg])
27
28        return license_expression
class LicenseExpressionParser:
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 = 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
@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]:
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 = 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