File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -2178,15 +2178,16 @@ def dereference_callback(data_request: DataRequestUri) -> DataRequestInternalHda
21782178 new_hdas .append (DereferencedDatasetPair (hda , data_request ))
21792179 return DataRequestInternalHda (id = hda .id , src = "hda" )
21802180
2181- def dereference_dce_callback (data_request : DataRequestInternalDce ) -> DataRequestInternalHda :
2181+ def dereference_dce_callback (
2182+ data_request : DataRequestInternalDce ,
2183+ ) -> Optional [DataRequestInternalHda ]:
21822184 dce = trans .sa_session .get (model .DatasetCollectionElement , data_request .id )
21832185 if dce is None :
21842186 raise RequestParameterInvalidException (f"Dataset collection element { data_request .id } not found" )
21852187 hda = dce .hda
21862188 if hda is None :
2187- raise RequestParameterInvalidException (
2188- f"Dataset collection element { data_request .id } does not reference a dataset"
2189- )
2189+ # Sub-collection DCE, pass through for collection parameter expansion
2190+ return None
21902191 return DataRequestInternalHda (id = hda .id , src = "hda" )
21912192
21922193 tool_state = RequestInternalToolState (tool_request .request )
Original file line number Diff line number Diff line change 7171EncodeFunctionT = Callable [[int ], str ]
7272DereferenceCallable = Callable [[DataRequestUri ], DataRequestInternalHda ]
7373DereferenceCollectionCallable = Callable [[DataRequestCollectionUri ], DataRequestInternalHdca ]
74- DereferenceDceCallable = Callable [[DataRequestInternalDce ], DataRequestInternalHda ]
74+ DereferenceDceCallable = Callable [[DataRequestInternalDce ], Optional [ DataRequestInternalHda ] ]
7575# interfaces for adapting test data dictionaries to tool request dictionaries
7676# e.g. {class: File, path: foo.bed} => {src: hda, id: ab1235cdfea3}
7777AdaptDatasets = Callable [[JsonTestDatasetDefDict ], DataRequestHda ]
@@ -244,8 +244,10 @@ def dereference_dict(src_dict: dict):
244244 return data_request_hdca .model_dump ()
245245 elif src == "dce" and dereference_dce is not None :
246246 data_request_dce : DataRequestInternalDce = DataRequestInternalDce .model_validate (src_dict )
247- data_request_hda_from_dce : DataRequestInternalHda = dereference_dce (data_request_dce )
248- return data_request_hda_from_dce .model_dump ()
247+ data_request_hda_from_dce = dereference_dce (data_request_dce )
248+ if data_request_hda_from_dce is not None :
249+ return data_request_hda_from_dce .model_dump ()
250+ return src_dict
249251 else :
250252 return src_dict
251253
You can’t perform that action at this time.
0 commit comments