Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,13 @@
from spdx_tools.spdx.parser.parsing_functions import raise_parsing_error_if_logger_has_messages


def json_str_to_enum_name(json_str: str) -> str:
def json_str_to_enum_name(json_str: str, convert_to_upper: bool = True) -> str:
if not isinstance(json_str, str):
raise SPDXParsingError([f"Type for enum must be str not {type(json_str).__name__}"])
return json_str.replace("-", "_").upper()
enum_name = json_str.replace("-", "_")
if convert_to_upper:
enum_name = enum_name.upper()
return enum_name


def parse_field_or_log_error(
Expand Down
4 changes: 2 additions & 2 deletions src/spdx_tools/spdx/parser/jsonlikedict/package_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ def parse_external_ref(self, external_ref_dict: Dict) -> ExternalPackageRef:
@staticmethod
def parse_external_ref_category(external_ref_category_str: str) -> ExternalPackageRefCategory:
try:
external_ref_category = ExternalPackageRefCategory[json_str_to_enum_name(external_ref_category_str)]
external_ref_category = ExternalPackageRefCategory[json_str_to_enum_name(external_ref_category_str, False)]
except KeyError:
raise SPDXParsingError([f"Invalid ExternalPackageRefCategory: {external_ref_category_str}"])

Expand All @@ -213,6 +213,6 @@ def parse_package_verification_code(verification_code_dict: Dict) -> PackageVeri
@staticmethod
def parse_primary_package_purpose(primary_package_purpose: str) -> PackagePurpose:
try:
return PackagePurpose[json_str_to_enum_name(primary_package_purpose)]
return PackagePurpose[json_str_to_enum_name(primary_package_purpose, False)]
except KeyError:
raise SPDXParsingError([f"Invalid PrimaryPackagePurpose: {primary_package_purpose}"])
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ def parse_relationship(self, relationship_dict: Dict) -> Relationship:
@staticmethod
def parse_relationship_type(relationship_type_str: str) -> RelationshipType:
try:
relationship_type = RelationshipType[json_str_to_enum_name(relationship_type_str)]
relationship_type = RelationshipType[json_str_to_enum_name(relationship_type_str, False)]
except KeyError:
raise SPDXParsingError([f"Invalid RelationshipType: {relationship_type_str}"])
return relationship_type
Expand Down