1
1
import json
2
- from typing import Any , Generic , List , Optional , TypeVar , Union
2
+ from typing import Any , Coroutine , Generic , List , Optional , TypeVar , Union , overload
3
3
4
4
import pydantic
5
5
from taskiq import AsyncBroker , AsyncTaskiqTask
@@ -36,7 +36,7 @@ class Pipeline(Generic[_FuncParams, _ReturnType]):
36
36
but it's nice to have.
37
37
"""
38
38
39
- def __init__ ( # noqa: WPS234
39
+ def __init__ (
40
40
self ,
41
41
broker : AsyncBroker ,
42
42
task : Optional [
@@ -51,6 +51,19 @@ def __init__( # noqa: WPS234
51
51
if task :
52
52
self .call_next (task )
53
53
54
+ @overload
55
+ def call_next (
56
+ self : "Pipeline[_FuncParams, _ReturnType]" ,
57
+ task : Union [
58
+ AsyncKicker [Any , Coroutine [Any , Any , _T2 ]],
59
+ AsyncTaskiqDecoratedTask [Any , Coroutine [Any , Any , _T2 ]],
60
+ ],
61
+ param_name : Optional [str ] = None ,
62
+ ** additional_kwargs : Any ,
63
+ ) -> "Pipeline[_FuncParams, _T2]" :
64
+ ...
65
+
66
+ @overload
54
67
def call_next (
55
68
self : "Pipeline[_FuncParams, _ReturnType]" ,
56
69
task : Union [
@@ -60,6 +73,17 @@ def call_next(
60
73
param_name : Optional [str ] = None ,
61
74
** additional_kwargs : Any ,
62
75
) -> "Pipeline[_FuncParams, _T2]" :
76
+ ...
77
+
78
+ def call_next (
79
+ self ,
80
+ task : Union [
81
+ AsyncKicker [Any , Any ],
82
+ AsyncTaskiqDecoratedTask [Any , Any ],
83
+ ],
84
+ param_name : Optional [str ] = None ,
85
+ ** additional_kwargs : Any ,
86
+ ) -> Any :
63
87
"""
64
88
Adds sequential step.
65
89
@@ -85,8 +109,23 @@ def call_next(
85
109
task_id = "" ,
86
110
),
87
111
)
88
- return self # type: ignore
112
+ return self
113
+
114
+ @overload
115
+ def map (
116
+ self : "Pipeline[_FuncParams, _ReturnType]" ,
117
+ task : Union [
118
+ AsyncKicker [Any , Coroutine [Any , Any , _T2 ]],
119
+ AsyncTaskiqDecoratedTask [Any , Coroutine [Any , Any , _T2 ]],
120
+ ],
121
+ param_name : Optional [str ] = None ,
122
+ skip_errors : bool = False ,
123
+ check_interval : float = 0.5 ,
124
+ ** additional_kwargs : Any ,
125
+ ) -> "Pipeline[_FuncParams, List[_T2]]" :
126
+ ...
89
127
128
+ @overload
90
129
def map (
91
130
self : "Pipeline[_FuncParams, _ReturnType]" ,
92
131
task : Union [
@@ -98,6 +137,19 @@ def map(
98
137
check_interval : float = 0.5 ,
99
138
** additional_kwargs : Any ,
100
139
) -> "Pipeline[_FuncParams, List[_T2]]" :
140
+ ...
141
+
142
+ def map (
143
+ self ,
144
+ task : Union [
145
+ AsyncKicker [Any , Any ],
146
+ AsyncTaskiqDecoratedTask [Any , Any ],
147
+ ],
148
+ param_name : Optional [str ] = None ,
149
+ skip_errors : bool = False ,
150
+ check_interval : float = 0.5 ,
151
+ ** additional_kwargs : Any ,
152
+ ) -> Any :
101
153
"""
102
154
Create new map task.
103
155
@@ -128,7 +180,7 @@ def map(
128
180
task_id = "" ,
129
181
),
130
182
)
131
- return self # type: ignore
183
+ return self
132
184
133
185
def dumps (self ) -> str :
134
186
"""
0 commit comments