diff --git a/asyncer/_compat.py b/asyncer/_compat.py index 5e390e6e..3ee39fdf 100644 --- a/asyncer/_compat.py +++ b/asyncer/_compat.py @@ -1,6 +1,5 @@ # AnyIO 4.1.0 renamed cancellable to abandon_on_cancel -import importlib -import importlib.metadata +import inspect from collections.abc import Callable from typing import TypeVar @@ -9,12 +8,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],