@@ -91,9 +91,13 @@ def updateScript(sc):
91
91
sc = sc .replace ("$self" , "self" )
92
92
return sc
93
93
94
- def _draftDraft3dev1toDev2 (doc ):
94
+ def _draftDraft3dev1toDev2 (doc , loader , baseuri ):
95
95
# Convert expressions
96
96
if isinstance (doc , dict ):
97
+ if "@import" in doc :
98
+ r , _ = loader .resolve_ref (doc ["@import" ], base_url = baseuri )
99
+ return _draftDraft3dev1toDev2 (r , loader , r ["id" ])
100
+
97
101
for a in doc :
98
102
ent = doc [a ]
99
103
if isinstance (ent , dict ) and "engine" in ent :
@@ -118,7 +122,7 @@ def _draftDraft3dev1toDev2(doc):
118
122
else :
119
123
doc [a ] = "$(%s)" % sc
120
124
else :
121
- doc [a ] = _draftDraft3dev1toDev2 (doc [a ])
125
+ doc [a ] = _draftDraft3dev1toDev2 (doc [a ], loader , baseuri )
122
126
123
127
if "class" in doc and (doc ["class" ] in ("CommandLineTool" , "Workflow" , "ExpressionTool" )):
124
128
added = False
@@ -139,12 +143,12 @@ def _draftDraft3dev1toDev2(doc):
139
143
doc ["requirements" ].append ({"class" :"InlineJavascriptRequirement" })
140
144
141
145
elif isinstance (doc , list ):
142
- return [_draftDraft3dev1toDev2 (a ) for a in doc ]
146
+ return [_draftDraft3dev1toDev2 (a , loader , baseuri ) for a in doc ]
143
147
144
148
return doc
145
149
146
150
def draftDraft3dev1toDev2 (doc , loader , baseuri ):
147
- return (_draftDraft3dev1toDev2 (doc ), "https://w3id.org/cwl/cwl#draft-3.dev2" )
151
+ return (_draftDraft3dev1toDev2 (doc , loader , baseuri ), "https://w3id.org/cwl/cwl#draft-3.dev2" )
148
152
149
153
def update (doc , loader , baseuri ):
150
154
updates = {
0 commit comments