spdx_tools.spdx.parser.parsing_functions

 1# SPDX-FileCopyrightText: 2023 spdx contributors
 2#
 3# SPDX-License-Identifier: Apache-2.0
 4from beartype.typing import Any, Dict
 5
 6from spdx_tools.common.typing.constructor_type_errors import ConstructorTypeErrors
 7from spdx_tools.spdx.parser.error import SPDXParsingError
 8from spdx_tools.spdx.parser.logger import Logger
 9
10
11def construct_or_raise_parsing_error(object_to_construct: Any, args_for_construction: Dict) -> Any:
12    try:
13        constructed_object = object_to_construct(**args_for_construction)
14    except ConstructorTypeErrors as err:
15        raise SPDXParsingError([f"Error while constructing {object_to_construct.__name__}: {err.get_messages()}"])
16    except TypeError as err:
17        raise SPDXParsingError([f"Error while constructing {object_to_construct.__name__}: {err.args[0]}"])
18    return constructed_object
19
20
21def raise_parsing_error_if_logger_has_messages(logger: Logger, parsed_object_name: str = None):
22    if logger.has_messages():
23        if parsed_object_name:
24            raise SPDXParsingError([f"Error while parsing {parsed_object_name}: {logger.get_messages()}"])
25        else:
26            raise SPDXParsingError(logger.get_messages())
def construct_or_raise_parsing_error(object_to_construct: Any, args_for_construction: dict) -> Any:
12def construct_or_raise_parsing_error(object_to_construct: Any, args_for_construction: Dict) -> Any:
13    try:
14        constructed_object = object_to_construct(**args_for_construction)
15    except ConstructorTypeErrors as err:
16        raise SPDXParsingError([f"Error while constructing {object_to_construct.__name__}: {err.get_messages()}"])
17    except TypeError as err:
18        raise SPDXParsingError([f"Error while constructing {object_to_construct.__name__}: {err.args[0]}"])
19    return constructed_object
def raise_parsing_error_if_logger_has_messages( logger: spdx_tools.spdx.parser.logger.Logger, parsed_object_name: str = None):
22def raise_parsing_error_if_logger_has_messages(logger: Logger, parsed_object_name: str = None):
23    if logger.has_messages():
24        if parsed_object_name:
25            raise SPDXParsingError([f"Error while parsing {parsed_object_name}: {logger.get_messages()}"])
26        else:
27            raise SPDXParsingError(logger.get_messages())