Coverage for asyncer / _compat.py: 100%
16 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-05-05 09:41 +0000
« prev ^ index » next coverage.py v7.13.4, created at 2026-05-05 09:41 +0000
1# AnyIO 4.1.0 renamed cancellable to abandon_on_cancel
2import importlib 1abcdefg
3import importlib.metadata 1abcdefg
4from collections.abc import Callable 1abcdefg
5from typing import TypeVar 1abcdefg
7import anyio 1abcdefg
8import anyio.to_thread 1abcdefg
9from anyio import CapacityLimiter 1abcdefg
10from typing_extensions import TypeVarTuple, Unpack 1abcdefg
12ANYIO_VERSION = importlib.metadata.version("anyio") 1abcdefg
14T_Retval = TypeVar("T_Retval") 1abcdefg
15PosArgsT = TypeVarTuple("PosArgsT") 1abcdefg
17if ANYIO_VERSION >= "4.1.0": 1abcdefg
19 async def run_sync( 1abcdg
20 func: Callable[[Unpack[PosArgsT]], T_Retval],
21 *args: Unpack[PosArgsT],
22 abandon_on_cancel: bool = False,
23 limiter: CapacityLimiter | None = None,
24 ) -> T_Retval:
25 return await anyio.to_thread.run_sync( 1hijklmnopqrstuvwxyzABCDEFGHIJK
26 func, *args, abandon_on_cancel=abandon_on_cancel, limiter=limiter
27 )
28else:
30 async def run_sync( 1ef
31 func: Callable[[Unpack[PosArgsT]], T_Retval],
32 *args: Unpack[PosArgsT],
33 abandon_on_cancel: bool = False,
34 limiter: CapacityLimiter | None = None,
35 ) -> T_Retval:
36 return await anyio.to_thread.run_sync( 1LMNOPQRSTUVW
37 func, *args, cancellable=abandon_on_cancel, limiter=limiter
38 )