Coverage for asyncer/_compat.py: 100%
16 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-11-11 11:00 +0000
« prev ^ index » next coverage.py v7.16.2, created at 2026-11-11 11:00 +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, Unpack 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[[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( 1nopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!#$%'()*+,-./:;=?
26 func, *args, abandon_on_cancel=abandon_on_cancel, limiter=limiter
27 )
28else:
30 async def run_sync( 1ij
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( 2@ [ ] ^ _ ` { | } ~ abbb
37 func, *args, cancellable=abandon_on_cancel, limiter=limiter
38 )