spdx_tools.spdx.parser.jsonlikedict.checksum_parser
1# SPDX-FileCopyrightText: 2022 spdx contributors 2# 3# SPDX-License-Identifier: Apache-2.0 4from beartype.typing import Dict, Optional 5 6from spdx_tools.spdx.model import Checksum, ChecksumAlgorithm 7from spdx_tools.spdx.parser.jsonlikedict.dict_parsing_functions import json_str_to_enum_name 8from spdx_tools.spdx.parser.logger import Logger 9from spdx_tools.spdx.parser.parsing_functions import ( 10 construct_or_raise_parsing_error, 11 raise_parsing_error_if_logger_has_messages, 12) 13 14 15class ChecksumParser: 16 logger: Logger 17 18 def __init__(self): 19 self.logger = Logger() 20 21 @staticmethod 22 def parse_checksum(checksum_dict: Dict) -> Checksum: 23 logger = Logger() 24 algorithm: str = json_str_to_enum_name(checksum_dict.get("algorithm", "")) 25 try: 26 checksum_algorithm = ChecksumAlgorithm[algorithm] 27 except KeyError: 28 logger.append(f"Invalid ChecksumAlgorithm: {algorithm}") 29 checksum_algorithm = None 30 checksum_value: Optional[str] = checksum_dict.get("checksumValue") 31 raise_parsing_error_if_logger_has_messages(logger, "Checksum") 32 checksum = construct_or_raise_parsing_error(Checksum, dict(algorithm=checksum_algorithm, value=checksum_value)) 33 return checksum
class
ChecksumParser:
16class ChecksumParser: 17 logger: Logger 18 19 def __init__(self): 20 self.logger = Logger() 21 22 @staticmethod 23 def parse_checksum(checksum_dict: Dict) -> Checksum: 24 logger = Logger() 25 algorithm: str = json_str_to_enum_name(checksum_dict.get("algorithm", "")) 26 try: 27 checksum_algorithm = ChecksumAlgorithm[algorithm] 28 except KeyError: 29 logger.append(f"Invalid ChecksumAlgorithm: {algorithm}") 30 checksum_algorithm = None 31 checksum_value: Optional[str] = checksum_dict.get("checksumValue") 32 raise_parsing_error_if_logger_has_messages(logger, "Checksum") 33 checksum = construct_or_raise_parsing_error(Checksum, dict(algorithm=checksum_algorithm, value=checksum_value)) 34 return checksum
22 @staticmethod 23 def parse_checksum(checksum_dict: Dict) -> Checksum: 24 logger = Logger() 25 algorithm: str = json_str_to_enum_name(checksum_dict.get("algorithm", "")) 26 try: 27 checksum_algorithm = ChecksumAlgorithm[algorithm] 28 except KeyError: 29 logger.append(f"Invalid ChecksumAlgorithm: {algorithm}") 30 checksum_algorithm = None 31 checksum_value: Optional[str] = checksum_dict.get("checksumValue") 32 raise_parsing_error_if_logger_has_messages(logger, "Checksum") 33 checksum = construct_or_raise_parsing_error(Checksum, dict(algorithm=checksum_algorithm, value=checksum_value)) 34 return checksum