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