|
1 | 1 | from __future__ import annotations
|
2 | 2 |
|
3 |
| -from typing import TYPE_CHECKING, Any, AsyncGenerator, Awaitable, Callable, Generator, TypeVar |
| 3 | +from typing import TYPE_CHECKING, Any, AsyncGenerator, Awaitable, Callable, Generator, Protocol, TypeVar |
4 | 4 |
|
5 | 5 | if TYPE_CHECKING:
|
6 | 6 | from typing_extensions import TypeAlias
|
|
23 | 23 | AfterRequestHookHandler: TypeAlias = (
|
24 | 24 | "Callable[[ASGIApp], SyncOrAsyncUnion[ASGIApp]] | Callable[[Response], SyncOrAsyncUnion[Response]]"
|
25 | 25 | )
|
26 |
| -AfterResponseHookHandler: TypeAlias = "Callable[[Request], SyncOrAsyncUnion[None]]" |
| 26 | + |
| 27 | +AfterResponseHookHandlerSimple: TypeAlias = "Callable[[Request], SyncOrAsyncUnion[None]]" |
| 28 | + |
| 29 | +class AfterResponseHookHandlerWithParentAsync(Protocol): |
| 30 | + async def __call__(self, request: "Request", /, *, parent: "AfterResponseHookHandler | None") -> Any: ... |
| 31 | +class AfterResponseHookHandlerWithParentSync(Protocol): |
| 32 | + def __call__(self, request: "Request", /, *, parent: "AfterResponseHookHandler | None") -> Any: ... |
| 33 | + |
| 34 | +AfterResponseHookHandler: TypeAlias = "AfterResponseHookHandlerSimple | AfterResponseHookHandlerWithParentAsync | AfterResponseHookHandlerWithParentSync" |
| 35 | + |
27 | 36 | AsyncAnyCallable: TypeAlias = Callable[..., Awaitable[Any]]
|
28 | 37 | AnyCallable: TypeAlias = Callable[..., Any]
|
29 | 38 | AnyGenerator: TypeAlias = "Generator[Any, Any, Any] | AsyncGenerator[Any, Any]"
|
30 | 39 | BeforeMessageSendHookHandler: TypeAlias = "Callable[[Message, Scope], SyncOrAsyncUnion[None]]"
|
31 |
| -BeforeRequestHookHandler: TypeAlias = "Callable[[Request], Any | Awaitable[Any]]" |
| 40 | + |
| 41 | +class BeforeRequestHookHandlerWithParentAsync(Protocol): |
| 42 | + async def __call__(self, request: "Request", /, *, parent: "BeforeRequestHookHandler | None") -> Any: ... |
| 43 | +class BeforeRequestHookHandlerWithParentSync(Protocol): |
| 44 | + def __call__(self, request: "Request", /, *, parent: "BeforeRequestHookHandler | None") -> Any: ... |
| 45 | + |
| 46 | +BeforeRequestHookHandlerSimple: TypeAlias = "Callable[[Request], Any | Awaitable[Any]]" |
| 47 | +BeforeRequestHookHandler: TypeAlias = "BeforeRequestHookHandlerSimple | BeforeRequestHookHandlerWithParentSync | BeforeRequestHookHandlerWithParentAsync" |
| 48 | + |
32 | 49 | CacheKeyBuilder: TypeAlias = "Callable[[Request], str]"
|
33 | 50 | ExceptionHandler: TypeAlias = "Callable[[Request, ExceptionT], Response]"
|
34 | 51 | ExceptionLoggingHandler: TypeAlias = "Callable[[Logger, Scope, list[str]], None]"
|
|
0 commit comments