| from typing import TypeVar, Any | |
| import logging | |
| from collections.abc import Callable | |
| from concurrent.futures import Future | |
| from .shared_types import ExecutorProtocol, TypedExecutorProtocol | |
| T = TypeVar("T") | |
| A = TypeVar("A") | |
| B = TypeVar("B") | |
| class TimeoutExecutor(ExecutorProtocol): | |
| def __init__( | |
| self, | |
| delegate: ExecutorProtocol | TypedExecutorProtocol[object, object], | |
| timeout: float | int, | |
| logger: logging.Logger | None = ..., | |
| name: str = ..., | |
| ): ... | |
| def submit_timeout( | |
| self, timeout: float | int, fn: Callable[..., T], *args, **kwargs | |
| ) -> Future[T]: ... | |
| def __enter__(self) -> TimeoutExecutor: ... | |
| class TypedTimeoutExecutor(TypedExecutorProtocol[A, B]): | |
| def submit_timeout( | |
| self, timeout: float | int, fn: Callable[..., A], *args, **kwargs | |
| ) -> Future[B]: ... | |
| def __enter__(self) -> TypedTimeoutExecutor[A, B]: ... |