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