|
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 AfterResponseHookHandlerWithParent(Protocol): |
| 30 | + async def __call__(self, request: "Request", /, *, parent: "AfterResponseHookHandler | None" = None) -> None: ... |
| 31 | + |
| 32 | +AfterResponseHookHandler: TypeAlias = "AfterResponseHookHandlerSimple | AfterResponseHookHandlerWithParent" |
| 33 | + |
27 | 34 | AsyncAnyCallable: TypeAlias = Callable[..., Awaitable[Any]]
|
28 | 35 | AnyCallable: TypeAlias = Callable[..., Any]
|
29 | 36 | AnyGenerator: TypeAlias = "Generator[Any, Any, Any] | AsyncGenerator[Any, Any]"
|
30 | 37 | BeforeMessageSendHookHandler: TypeAlias = "Callable[[Message, Scope], SyncOrAsyncUnion[None]]"
|
31 |
| -BeforeRequestHookHandler: TypeAlias = "Callable[[Request], Any | Awaitable[Any]]" |
| 38 | + |
| 39 | +class BeforeRequestHookHandlerWithParent(Protocol): |
| 40 | + async def __call__(self, request: "Request", /, *, parent: "BeforeRequestHookHandler | None" = None) -> Any: ... |
| 41 | + |
| 42 | +BeforeRequestHookHandlerSimple: TypeAlias = "Callable[[Request], Any | Awaitable[Any]]" |
| 43 | +BeforeRequestHookHandler: TypeAlias = "BeforeRequestHookHandlerSimple | BeforeRequestHookHandlerWithParent" |
| 44 | + |
32 | 45 | CacheKeyBuilder: TypeAlias = "Callable[[Request], str]"
|
33 | 46 | ExceptionHandler: TypeAlias = "Callable[[Request, ExceptionT], Response]"
|
34 | 47 | ExceptionLoggingHandler: TypeAlias = "Callable[[Logger, Scope, list[str]], None]"
|
|
0 commit comments