Source code for edri.abstract
from .manager.manager_base import ManagerBase
from .manager.manager_priority_base import ManagerPriorityBase
from .manager.async_manager_base import AsyncManagerBase
from .manager.worker import (
WorkerExit, WorkerNotFoundError, WorkerOutcome, WorkerPolicy, WorkerState,
WorkerStopReason, WorkerTimeout,
)
from .manager.worker_controller import WorkerController, WorkerView
from typing import Any, Callable, TypeVar, cast, overload
_F = TypeVar("_F", bound=Callable[..., Any])
@overload
def request(func: _F, /, *, cache: str | None = None) -> _F: ...
@overload
def request(func: None = ..., /, *, cache: str | None = None) -> Callable[[_F], _F]: ...
[docs]
def request(func: _F | None = None, /, *, cache: str | None = None) -> _F | Callable[[_F], _F]:
def wrapper(func: _F) -> _F:
cast(Any, func).__purpose__ = "request"
cast(Any, func).__cache__ = cache
return func
if func is None:
return wrapper
return wrapper(func)
[docs]
def response(func: _F) -> _F:
cast(Any, func).__purpose__ = "response"
return func
__all__ = [
"ManagerBase", "ManagerPriorityBase", "AsyncManagerBase", "request", "response",
"WorkerController", "WorkerExit", "WorkerNotFoundError", "WorkerOutcome",
"WorkerPolicy", "WorkerState", "WorkerStopReason", "WorkerTimeout", "WorkerView",
]