1
1
from typing import Any , Literal , Union , cast , overload
2
2
3
3
from .base import StreamFunction
4
- from .types import (
5
- TransformCallback ,
6
- TransformExpandedCallback ,
7
- TransformWallClockCallback ,
8
- TransformWallClockExpandedCallback ,
9
- VoidExecutor ,
10
- )
4
+ from .types import TransformCallback , TransformExpandedCallback , VoidExecutor
11
5
12
6
__all__ = ("TransformFunction" ,)
13
7
@@ -29,81 +23,28 @@ class TransformFunction(StreamFunction):
29
23
30
24
@overload
31
25
def __init__ (
32
- self ,
33
- func : TransformCallback ,
34
- expand : Literal [False ] = False ,
35
- wall_clock : Literal [False ] = False ,
36
- ) -> None : ...
37
-
38
- @overload
39
- def __init__ (
40
- self ,
41
- func : TransformExpandedCallback ,
42
- expand : Literal [True ],
43
- wall_clock : Literal [False ] = False ,
44
- ) -> None : ...
45
-
46
- @overload
47
- def __init__ (
48
- self ,
49
- func : TransformWallClockCallback ,
50
- expand : Literal [False ] = False ,
51
- wall_clock : Literal [True ] = True ,
26
+ self , func : TransformCallback , expand : Literal [False ] = False
52
27
) -> None : ...
53
28
54
29
@overload
55
30
def __init__ (
56
- self ,
57
- func : TransformWallClockExpandedCallback ,
58
- expand : Literal [True ],
59
- wall_clock : Literal [True ],
31
+ self , func : TransformExpandedCallback , expand : Literal [True ]
60
32
) -> None : ...
61
33
62
34
def __init__ (
63
35
self ,
64
- func : Union [
65
- TransformCallback ,
66
- TransformExpandedCallback ,
67
- TransformWallClockCallback ,
68
- TransformWallClockExpandedCallback ,
69
- ],
36
+ func : Union [TransformCallback , TransformExpandedCallback ],
70
37
expand : bool = False ,
71
- wall_clock : bool = False ,
72
38
):
73
39
super ().__init__ (func )
74
40
75
- self .func : Union [
76
- TransformCallback ,
77
- TransformExpandedCallback ,
78
- TransformWallClockCallback ,
79
- TransformWallClockExpandedCallback ,
80
- ]
41
+ self .func : Union [TransformCallback , TransformExpandedCallback ]
81
42
self .expand = expand
82
- self .wall_clock = wall_clock
83
43
84
44
def get_executor (self , * child_executors : VoidExecutor ) -> VoidExecutor :
85
45
child_executor = self ._resolve_branching (* child_executors )
86
46
87
- if self .expand and self .wall_clock :
88
- wall_clock_expanded_func = cast (
89
- TransformWallClockExpandedCallback , self .func
90
- )
91
-
92
- def wrapper (
93
- value : Any ,
94
- key : Any ,
95
- timestamp : int ,
96
- headers : Any ,
97
- ):
98
- for (
99
- new_value ,
100
- new_key ,
101
- new_timestamp ,
102
- new_headers ,
103
- ) in wall_clock_expanded_func (timestamp ):
104
- child_executor (new_value , new_key , new_timestamp , new_headers )
105
-
106
- elif self .expand :
47
+ if self .expand :
107
48
expanded_func = cast (TransformExpandedCallback , self .func )
108
49
109
50
def wrapper (
@@ -116,22 +57,8 @@ def wrapper(
116
57
for new_value , new_key , new_timestamp , new_headers in result :
117
58
child_executor (new_value , new_key , new_timestamp , new_headers )
118
59
119
- elif self .wall_clock :
120
- wall_clock_func = cast (TransformWallClockCallback , self .func )
121
-
122
- def wrapper (
123
- value : Any ,
124
- key : Any ,
125
- timestamp : int ,
126
- headers : Any ,
127
- ):
128
- new_value , new_key , new_timestamp , new_headers = wall_clock_func (
129
- timestamp
130
- )
131
- child_executor (new_value , new_key , new_timestamp , new_headers )
132
-
133
60
else :
134
- regular_func = cast (TransformCallback , self .func )
61
+ func = cast (TransformCallback , self .func )
135
62
136
63
def wrapper (
137
64
value : Any ,
@@ -140,7 +67,7 @@ def wrapper(
140
67
headers : Any ,
141
68
):
142
69
# Execute a function on a single value and return its result
143
- new_value , new_key , new_timestamp , new_headers = regular_func (
70
+ new_value , new_key , new_timestamp , new_headers = func (
144
71
value , key , timestamp , headers
145
72
)
146
73
child_executor (new_value , new_key , new_timestamp , new_headers )
0 commit comments