Coverage for asyncer/_compat.py: 100%
16 statements
« prev ^ index » next coverage.py v7.17.2, created at 2026-11-13 17:11 +0000
« prev ^ index » next coverage.py v7.17.2, created at 2026-11-13 17:11 +0000
1# AnyIO 4.1.0 renamed cancellable to abandon_on_cancel
2import importlib 1abcdefghijklm
3import importlib.metadata 1abcdefghijklm
4from collections.abc import Callable 1abcdefghijklm
5from typing import TypeVar 1abcdefghijklm
7import anyio 1abcdefghijklm
8import anyio.to_thread 1abcdefghijklm
9from anyio import CapacityLimiter 1abcdefghijklm
10from typing_extensions import TypeVarTuple 1abcdefghijklm
12ANYIO_VERSION = importlib.metadata.version("anyio") 1abcdefghijklm
14T_Retval = TypeVar("T_Retval") 1abcdefghijklm
15PosArgsT = TypeVarTuple("PosArgsT") 1abcdefghijklm
17if ANYIO_VERSION >= "4.1.0": 1abcdefghijklm
19 async def run_sync( 1abcdefghklm
20 func: Callable[[*PosArgsT], T_Retval],
21 *args: *PosArgsT,
22 abandon_on_cancel: bool = False,
23 limiter: CapacityLimiter | None = None,
24 ) -> T_Retval:
25 return await anyio.to_thread.run_sync( 1nopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!#$%'()*+,-./:;=?
26 func, *args, abandon_on_cancel=abandon_on_cancel, limiter=limiter
27 )
28else:
30 async def run_sync( 1ij
31 func: Callable[[*PosArgsT], T_Retval],
32 *args: *PosArgsT,
33 abandon_on_cancel: bool = False,
34 limiter: CapacityLimiter | None = None,
35 ) -> T_Retval:
36 return await anyio.to_thread.run_sync( 2@ [ ] ^ _ ` { | } ~ abbb
37 func, *args, cancellable=abandon_on_cancel, limiter=limiter
38 )