Skip to content

Commit 853cef1

Browse files
Fix crash on cargo workspace
Signed-off-by: Ayan Sinha Mahapatra <ayansmahapatra@gmail.com>
1 parent aa249b5 commit 853cef1

32 files changed

+1618
-140
lines changed

src/packagedcode/licensing.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -684,6 +684,12 @@ def get_normalized_license_detections(
684684
if detections:
685685
license_detections.extend(detections)
686686

687+
if not license_detections:
688+
unknown_dict_object = repr(dict(extracted_license.items()))
689+
unknown_detection = get_unknown_license_detection(query_string=unknown_dict_object)
690+
license_detections.append(unknown_detection)
691+
if TRACE:
692+
logger_debug(f'get_normalized_license_detections: dict: unknown_dict_object: {unknown_dict_object}, unknown_detection: {saneyaml.dump(unknown_detection.to_dict())}')
687693
else:
688694
extracted_license_statement = saneyaml.dump(extracted_license)
689695
license_detections = get_license_detections_for_extracted_license_statement(
@@ -728,7 +734,6 @@ def get_normalized_license_detections(
728734

729735
else:
730736
extracted_license_statement = saneyaml.dump(extracted_license_item)
731-
732737
detections = get_license_detections_for_extracted_license_statement(
733738
extracted_license_statement=extracted_license_statement,
734739
try_as_expression=try_as_expression,
@@ -794,6 +799,7 @@ def get_license_detections_and_expression(
794799
if not license_detections:
795800
if not isinstance(extracted_license_statement, str):
796801
extracted_license_statement = saneyaml.dump(extracted_license_statement)
802+
797803
license_detection = get_unknown_license_detection(query_string=extracted_license_statement)
798804
license_detections = [license_detection]
799805

src/packagedcode/models.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -781,7 +781,10 @@ def populate_license_fields(self):
781781
)
782782

783783
if self.extracted_license_statement and not isinstance(self.extracted_license_statement, str):
784-
self.extracted_license_statement = saneyaml.dump(self.extracted_license_statement)
784+
if isinstance(self.extracted_license_statement, dict):
785+
self.extracted_license_statement = saneyaml.dump(dict(self.extracted_license_statement.items()))
786+
else:
787+
self.extracted_license_statement = saneyaml.dump(self.extracted_license_statement)
785788

786789
def to_dict(self, with_details=True, **kwargs):
787790
mapping = super().to_dict(with_details=with_details, **kwargs)

0 commit comments

Comments
 (0)