|
10 | 10 | from threading import get_ident as get_thread_id |
11 | 11 | from types import FunctionType |
12 | 12 | from typing import ( |
| 13 | + TYPE_CHECKING, |
13 | 14 | Any, |
14 | 15 | Awaitable, |
15 | 16 | Callable, |
|
31 | 32 | from idom.utils import Ref |
32 | 33 |
|
33 | 34 |
|
| 35 | +if not TYPE_CHECKING: |
| 36 | + # make flake8 think that this variable exists |
| 37 | + ellipsis = type(...) |
| 38 | + |
| 39 | + |
34 | 40 | __all__ = [ |
35 | 41 | "use_state", |
36 | 42 | "use_effect", |
@@ -103,22 +109,22 @@ def dispatch( |
103 | 109 | @overload |
104 | 110 | def use_effect( |
105 | 111 | function: None = None, |
106 | | - args: Sequence[Any] | "ellipsis" | None = ..., |
| 112 | + args: Sequence[Any] | ellipsis | None = ..., |
107 | 113 | ) -> Callable[[_EffectApplyFunc], None]: |
108 | 114 | ... |
109 | 115 |
|
110 | 116 |
|
111 | 117 | @overload |
112 | 118 | def use_effect( |
113 | 119 | function: _EffectApplyFunc, |
114 | | - args: Sequence[Any] | "ellipsis" | None = ..., |
| 120 | + args: Sequence[Any] | ellipsis | None = ..., |
115 | 121 | ) -> None: |
116 | 122 | ... |
117 | 123 |
|
118 | 124 |
|
119 | 125 | def use_effect( |
120 | 126 | function: Optional[_EffectApplyFunc] = None, |
121 | | - args: Sequence[Any] | "ellipsis" | None = ..., |
| 127 | + args: Sequence[Any] | ellipsis | None = ..., |
122 | 128 | ) -> Optional[Callable[[_EffectApplyFunc], None]]: |
123 | 129 | """See the full :ref:`Use Effect` docs for details |
124 | 130 |
|
@@ -215,22 +221,22 @@ def dispatch(action: _ActionType) -> None: |
215 | 221 | @overload |
216 | 222 | def use_callback( |
217 | 223 | function: None = None, |
218 | | - args: Sequence[Any] | "ellipsis" | None = ..., |
| 224 | + args: Sequence[Any] | ellipsis | None = ..., |
219 | 225 | ) -> Callable[[_CallbackFunc], _CallbackFunc]: |
220 | 226 | ... |
221 | 227 |
|
222 | 228 |
|
223 | 229 | @overload |
224 | 230 | def use_callback( |
225 | 231 | function: _CallbackFunc, |
226 | | - args: Sequence[Any] | "ellipsis" | None = ..., |
| 232 | + args: Sequence[Any] | ellipsis | None = ..., |
227 | 233 | ) -> _CallbackFunc: |
228 | 234 | ... |
229 | 235 |
|
230 | 236 |
|
231 | 237 | def use_callback( |
232 | 238 | function: Optional[_CallbackFunc] = None, |
233 | | - args: Sequence[Any] | "ellipsis" | None = ..., |
| 239 | + args: Sequence[Any] | ellipsis | None = ..., |
234 | 240 | ) -> Union[_CallbackFunc, Callable[[_CallbackFunc], _CallbackFunc]]: |
235 | 241 | """See the full :ref:`Use Callback` docs for details |
236 | 242 |
|
@@ -263,22 +269,22 @@ def __call__(self, func: Callable[[], _StateType]) -> _StateType: |
263 | 269 | @overload |
264 | 270 | def use_memo( |
265 | 271 | function: None = None, |
266 | | - args: Sequence[Any] | "ellipsis" | None = ..., |
| 272 | + args: Sequence[Any] | ellipsis | None = ..., |
267 | 273 | ) -> _LambdaCaller: |
268 | 274 | ... |
269 | 275 |
|
270 | 276 |
|
271 | 277 | @overload |
272 | 278 | def use_memo( |
273 | 279 | function: Callable[[], _StateType], |
274 | | - args: Sequence[Any] | "ellipsis" | None = ..., |
| 280 | + args: Sequence[Any] | ellipsis | None = ..., |
275 | 281 | ) -> _StateType: |
276 | 282 | ... |
277 | 283 |
|
278 | 284 |
|
279 | 285 | def use_memo( |
280 | 286 | function: Optional[Callable[[], _StateType]] = None, |
281 | | - args: Sequence[Any] | "ellipsis" | None = ..., |
| 287 | + args: Sequence[Any] | ellipsis | None = ..., |
282 | 288 | ) -> Union[_StateType, Callable[[Callable[[], _StateType]], _StateType]]: |
283 | 289 | """See the full :ref:`Use Memo` docs for details |
284 | 290 |
|
@@ -364,7 +370,7 @@ def _use_const(function: Callable[[], _StateType]) -> _StateType: |
364 | 370 |
|
365 | 371 | def _try_to_infer_closure_args( |
366 | 372 | func: Callable[..., Any] | None, |
367 | | - args: Sequence[Any] | "ellipsis" | None, |
| 373 | + args: Sequence[Any] | ellipsis | None, |
368 | 374 | ) -> Sequence[Any] | None: |
369 | 375 | if args is ...: |
370 | 376 | if isinstance(func, FunctionType): |
|
0 commit comments