diff --git a/asyncer/_compat.py b/asyncer/_compat.py index ade175e..bd08ff1 100644 --- a/asyncer/_compat.py +++ b/asyncer/_compat.py @@ -1,6 +1,4 @@ -# AnyIO 4.1.0 renamed cancellable to abandon_on_cancel -import importlib -import importlib.metadata +import inspect from typing import Callable, TypeVar, Union import anyio @@ -8,12 +6,15 @@ from anyio import CapacityLimiter from typing_extensions import TypeVarTuple, Unpack -ANYIO_VERSION = importlib.metadata.version("anyio") - T_Retval = TypeVar("T_Retval") PosArgsT = TypeVarTuple("PosArgsT") -if ANYIO_VERSION >= "4.1.0": +# Use abandon_on_cancel if available +RUN_SYNC_AOC = ( + "abandon_on_cancel" in inspect.getfullargspec(anyio.to_thread.run_sync).kwonlyargs +) + +if RUN_SYNC_AOC: async def run_sync( func: Callable[[Unpack[PosArgsT]], T_Retval],