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
@staticmethod
def parse_checksum(checksum_dict: dict) -> spdx_tools.spdx.model.checksum.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