Skip to content

Commit 642e983

Browse files
committed
defensive guard for dict instances
reaction to: | File "/galaxy/lib/galaxy/managers/histories.py", line 685, in get_record_metadata | export_metadata = ExportObjectMetadata.parse_raw(json_metadata) if json_metadata else None | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | File "/galaxy/.venv/lib/python3.12/site-packages/pydantic/main.py", line 1388, in parse_raw | raise pydantic_core.ValidationError.from_exception_data(cls.__name__, [error]) | pydantic_core._pydantic_core.ValidationError: 1 validation error for ExportObjectMetadata | __root__ | the JSON object must be str, bytes or bytearray, not dict [type=type_error, input_value={'request_data': {'object...41/150mb9.rocrate.zip'}}, input_type=dict]
1 parent 3e86390 commit 642e983

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

lib/galaxy/managers/histories.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -680,7 +680,12 @@ def create_export_association(self, history_id: int) -> model.StoreExportAssocia
680680

681681
def get_record_metadata(self, export: model.StoreExportAssociation) -> Optional[ExportObjectMetadata]:
682682
json_metadata = export.export_metadata
683-
export_metadata = ExportObjectMetadata.parse_raw(json_metadata) if json_metadata else None
683+
if not json_metadata:
684+
return None
685+
if isinstance(json_metadata, dict):
686+
export_metadata = ExportObjectMetadata.model_validate(json_metadata)
687+
else:
688+
export_metadata = ExportObjectMetadata.parse_raw(json_metadata)
684689
return export_metadata
685690

686691
def _serialize_task_export(self, export: model.StoreExportAssociation, history: model.History):

0 commit comments

Comments
 (0)