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", ]