5
5
import traceback
6
6
from typing import (Any , Callable , Dict , Text , # pylint: disable=unused-import
7
7
Tuple , Union )
8
+ from copy import deepcopy
8
9
9
10
import six
10
11
from six .moves import urllib
@@ -349,6 +350,7 @@ def _draft3toDraft4dev1(doc, loader, baseuri):
349
350
# type: (Any, Loader, Text) -> Any
350
351
if isinstance (doc , dict ):
351
352
if "class" in doc and doc ["class" ] == "Workflow" :
353
+
352
354
def fixup (f ): # type: (Text) -> Text
353
355
doc , frg = urllib .parse .urldefrag (f )
354
356
frg = '/' .join (frg .rsplit ('.' , 1 ))
@@ -371,6 +373,8 @@ def fixup(f): # type: (Text) -> Text
371
373
for out in doc ["outputs" ]:
372
374
out ["source" ] = fixup (out ["source" ])
373
375
for key , value in doc .items ():
376
+ if key == 'run' :
377
+ value = deepcopy (value )
374
378
doc [key ] = _draft3toDraft4dev1 (value , loader , baseuri )
375
379
elif isinstance (doc , list ):
376
380
for i , a in enumerate (doc ):
@@ -393,6 +397,8 @@ def _draft4Dev1toDev2(doc, loader, baseuri):
393
397
out ["outputSource" ] = out ["source" ]
394
398
del out ["source" ]
395
399
for key , value in doc .items ():
400
+ if key == 'run' :
401
+ value = deepcopy (value )
396
402
doc [key ] = _draft4Dev1toDev2 (value , loader , baseuri )
397
403
elif isinstance (doc , list ):
398
404
for i , a in enumerate (doc ):
0 commit comments