|
| 1 | +from __future__ import annotations |
| 2 | + |
1 | 3 | import inspect |
2 | 4 | import logging |
3 | 5 | import operator |
4 | | -from typing import Any, Callable, Iterable, Optional, Type, Union |
| 6 | +from typing import TYPE_CHECKING, Any, Callable, Iterable |
5 | 7 |
|
6 | 8 | from backoff import _async, _sync |
7 | 9 | from backoff._common import ( |
|
11 | 13 | _prepare_logger, |
12 | 14 | ) |
13 | 15 | from backoff._jitter import full_jitter |
14 | | -from backoff._typing import ( |
15 | | - _CallableT, |
16 | | - _Handler, |
17 | | - _Jitterer, |
18 | | - _MaybeCallable, |
19 | | - _MaybeLogger, |
20 | | - _MaybeSequence, |
21 | | - _Predicate, |
22 | | - _WaitGenerator, |
23 | | -) |
| 16 | + |
| 17 | +if TYPE_CHECKING: |
| 18 | + from backoff._typing import ( |
| 19 | + _CallableT, |
| 20 | + _Handler, |
| 21 | + _Jitterer, |
| 22 | + _MaybeCallable, |
| 23 | + _MaybeLogger, |
| 24 | + _MaybeSequence, |
| 25 | + _Predicate, |
| 26 | + _WaitGenerator, |
| 27 | + ) |
24 | 28 |
|
25 | 29 |
|
26 | 30 | def on_predicate( |
27 | 31 | wait_gen: _WaitGenerator, |
28 | 32 | predicate: _Predicate[Any] = operator.not_, |
29 | 33 | *, |
30 | | - max_tries: Optional[_MaybeCallable[int]] = None, |
31 | | - max_time: Optional[_MaybeCallable[float]] = None, |
32 | | - jitter: Union[_Jitterer, None] = full_jitter, |
33 | | - on_success: Union[_Handler, Iterable[_Handler], None] = None, |
34 | | - on_backoff: Union[_Handler, Iterable[_Handler], None] = None, |
35 | | - on_giveup: Union[_Handler, Iterable[_Handler], None] = None, |
| 34 | + max_tries: _MaybeCallable[int] | None = None, |
| 35 | + max_time: _MaybeCallable[float] | None = None, |
| 36 | + jitter: _Jitterer | None = full_jitter, |
| 37 | + on_success: _Handler | Iterable[_Handler] | None = None, |
| 38 | + on_backoff: _Handler | Iterable[_Handler] | None = None, |
| 39 | + on_giveup: _Handler | Iterable[_Handler] | None = None, |
36 | 40 | logger: _MaybeLogger = "backoff", |
37 | 41 | backoff_log_level: int = logging.INFO, |
38 | 42 | giveup_log_level: int = logging.ERROR, |
@@ -124,15 +128,15 @@ def decorate(target): |
124 | 128 |
|
125 | 129 | def on_exception( |
126 | 130 | wait_gen: _WaitGenerator, |
127 | | - exception: _MaybeSequence[Type[Exception]], |
| 131 | + exception: _MaybeSequence[type[Exception]], |
128 | 132 | *, |
129 | | - max_tries: Optional[_MaybeCallable[int]] = None, |
130 | | - max_time: Optional[_MaybeCallable[float]] = None, |
131 | | - jitter: Union[_Jitterer, None] = full_jitter, |
| 133 | + max_tries: _MaybeCallable[int] | None = None, |
| 134 | + max_time: _MaybeCallable[float] | None = None, |
| 135 | + jitter: _Jitterer | None = full_jitter, |
132 | 136 | giveup: _Predicate[Exception] = lambda e: False, |
133 | | - on_success: Union[_Handler, Iterable[_Handler], None] = None, |
134 | | - on_backoff: Union[_Handler, Iterable[_Handler], None] = None, |
135 | | - on_giveup: Union[_Handler, Iterable[_Handler], None] = None, |
| 137 | + on_success: _Handler | Iterable[_Handler] | None = None, |
| 138 | + on_backoff: _Handler | Iterable[_Handler] | None = None, |
| 139 | + on_giveup: _Handler | Iterable[_Handler] | None = None, |
136 | 140 | raise_on_giveup: bool = True, |
137 | 141 | logger: _MaybeLogger = "backoff", |
138 | 142 | backoff_log_level: int = logging.INFO, |
|
0 commit comments