1
1
#!/usr/bin/env python3
2
2
import sys
3
- import CommonWorkflowLanguage as cwl
3
+ import cwl_utils .parser_v1_0 as cwl
4
+
4
5
5
6
def main ():
6
7
top = cwl .load_document (sys .argv [1 ])
7
8
traverse (top )
8
9
10
+
9
11
def extract_software_packages (process : cwl .Process ):
10
12
for req in extract_software_reqs (process ):
11
13
print (process .id )
12
14
process_software_requirement (req )
13
15
16
+
14
17
def extract_software_reqs (process : cwl .Process ):
15
18
if process .requirements :
16
19
for req in process .requirements :
@@ -22,22 +25,25 @@ def extract_software_reqs(process: cwl.Process):
22
25
yield cwl .load_field (req , cwl .SoftwareRequirementLoader ,
23
26
process .id , process .loadingOptions )
24
27
28
+
25
29
def process_software_requirement (req : cwl .SoftwarePackage ):
26
30
for package in req .packages :
27
31
print ("Package: {}, version: {}, specs: {}" .format (
28
- package .package , package .version , package .specs ))
32
+ package .package , package .version , package .specs ))
29
33
30
34
31
35
def traverse (process : cwl .Process ):
32
36
extract_software_packages (process )
33
37
if isinstance (process , cwl .Workflow ):
34
38
traverse_workflow (process )
35
39
40
+
36
41
def get_process_from_step (step : cwl .WorkflowStep ):
37
42
if isinstance (step .run , str ):
38
43
return cwl .load_document (step .run )
39
44
return step .run
40
45
46
+
41
47
def traverse_workflow (workflow : cwl .Workflow ):
42
48
for step in workflow .steps :
43
49
extract_software_packages (step )
0 commit comments