1
1
from collections import namedtuple
2
- from typing import Any , Dict
2
+ from typing import Dict , cast
3
3
4
4
from .errors import WorkflowException
5
+ from .utils import CWLObjectType
5
6
6
7
MutationState = namedtuple ("MutationTracker" , ["generation" , "readers" , "stepname" ])
7
8
@@ -17,13 +18,12 @@ class MutationManager(object):
17
18
18
19
"""
19
20
20
- def __init__ (self ): # type: () -> None
21
+ def __init__ (self ) -> None :
21
22
"""Initialize."""
22
23
self .generations = {} # type: Dict[str, MutationState]
23
24
24
- def register_reader (self , stepname , obj ):
25
- # type: (str, Dict[str, Any]) -> None
26
- loc = obj ["location" ]
25
+ def register_reader (self , stepname : str , obj : CWLObjectType ) -> None :
26
+ loc = cast (str , obj ["location" ])
27
27
current = self .generations .get (loc , MutationState (0 , [], "" ))
28
28
obj_generation = obj .get (_generation , 0 )
29
29
@@ -38,9 +38,8 @@ def register_reader(self, stepname, obj):
38
38
current .readers .append (stepname )
39
39
self .generations [loc ] = current
40
40
41
- def release_reader (self , stepname , obj ):
42
- # type: (str, Dict[str, Any]) -> None
43
- loc = obj ["location" ]
41
+ def release_reader (self , stepname : str , obj : CWLObjectType ) -> None :
42
+ loc = cast (str , obj ["location" ])
44
43
current = self .generations .get (loc , MutationState (0 , [], "" ))
45
44
obj_generation = obj .get (_generation , 0 )
46
45
@@ -54,9 +53,8 @@ def release_reader(self, stepname, obj):
54
53
55
54
self .generations [loc ].readers .remove (stepname )
56
55
57
- def register_mutation (self , stepname , obj ):
58
- # type: (str, Dict[str, Any]) -> None
59
- loc = obj ["location" ]
56
+ def register_mutation (self , stepname : str , obj : CWLObjectType ) -> None :
57
+ loc = cast (str , obj ["location" ])
60
58
current = self .generations .get (loc , MutationState (0 , [], "" ))
61
59
obj_generation = obj .get (_generation , 0 )
62
60
@@ -79,10 +77,10 @@ def register_mutation(self, stepname, obj):
79
77
current .generation + 1 , current .readers , stepname
80
78
)
81
79
82
- def set_generation (self , obj ): # type: (Dict[str, str] ) -> None
83
- loc = obj ["location" ]
80
+ def set_generation (self , obj : CWLObjectType ) -> None :
81
+ loc = cast ( str , obj ["location" ])
84
82
current = self .generations .get (loc , MutationState (0 , [], "" ))
85
83
obj [_generation ] = current .generation
86
84
87
- def unset_generation (self , obj ): # type: (Dict[str, str] ) -> None
85
+ def unset_generation (self , obj : CWLObjectType ) -> None :
88
86
obj .pop (_generation , None )
0 commit comments