1111 TYPE_CHECKING ,
1212)
1313
14+ import yaml
15+
1416from bioblend .galaxy .client import Client
1517
1618if TYPE_CHECKING :
@@ -193,7 +195,9 @@ def import_shared_workflow(self, workflow_id: str) -> dict[str, Any]:
193195 url = self ._make_url ()
194196 return self ._post (url = url , payload = payload )
195197
196- def export_workflow_dict (self , workflow_id : str , version : Optional [int ] = None ) -> dict [str , Any ]:
198+ def export_workflow_dict (
199+ self , workflow_id : str , version : Optional [int ] = None , style : Optional [Literal ["ga" , "format2" ]] = None
200+ ) -> dict [str , Any ]:
197201 """
198202 Exports a workflow.
199203
@@ -203,15 +207,24 @@ def export_workflow_dict(self, workflow_id: str, version: Optional[int] = None)
203207 :type version: int
204208 :param version: Workflow version to export
205209
210+ :type style
211+ :param style: Either "ga" for the original JSON format or "format2" for
212+ the modern YAML gxformat2 format.
213+
206214 :rtype: dict
207215 :return: Dictionary representing the requested workflow
208216 """
209217 params : dict [str , Any ] = {}
210218 if version is not None :
211219 params ["version" ] = version
212-
220+ if style :
221+ params ["style" ] = style
213222 url = "/" .join ((self ._make_url (), "download" , workflow_id ))
214- return self ._get (url = url , params = params )
223+ json = style != "format2"
224+ response = self ._get (url = url , params = params , json = json )
225+ if not json :
226+ return yaml .safe_load (response .text )
227+ return response
215228
216229 def export_workflow_to_local_path (
217230 self , workflow_id : str , file_local_path : str , use_default_filename : bool = True
0 commit comments