11#!/usr/bin/env python3
22import sys
3- import CommonWorkflowLanguage as cwl
3+ import cwl_utils .parser_v1_0 as cwl
4+
45
56def main ():
67 top = cwl .load_document (sys .argv [1 ])
78 traverse (top )
89
10+
911def extract_software_packages (process : cwl .Process ):
1012 for req in extract_software_reqs (process ):
1113 print (process .id )
1214 process_software_requirement (req )
1315
16+
1417def extract_software_reqs (process : cwl .Process ):
1518 if process .requirements :
1619 for req in process .requirements :
@@ -22,22 +25,25 @@ def extract_software_reqs(process: cwl.Process):
2225 yield cwl .load_field (req , cwl .SoftwareRequirementLoader ,
2326 process .id , process .loadingOptions )
2427
28+
2529def process_software_requirement (req : cwl .SoftwarePackage ):
2630 for package in req .packages :
2731 print ("Package: {}, version: {}, specs: {}" .format (
28- package .package , package .version , package .specs ))
32+ package .package , package .version , package .specs ))
2933
3034
3135def traverse (process : cwl .Process ):
3236 extract_software_packages (process )
3337 if isinstance (process , cwl .Workflow ):
3438 traverse_workflow (process )
3539
40+
3641def get_process_from_step (step : cwl .WorkflowStep ):
3742 if isinstance (step .run , str ):
3843 return cwl .load_document (step .run )
3944 return step .run
4045
46+
4147def traverse_workflow (workflow : cwl .Workflow ):
4248 for step in workflow .steps :
4349 extract_software_packages (step )
0 commit comments