From 13c2db56fc03fc8f27feec3747a8a83741981229 Mon Sep 17 00:00:00 2001 From: Kolja Date: Wed, 8 Oct 2025 09:56:17 +0000 Subject: [PATCH 1/4] DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead --- ninja/signature/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ninja/signature/utils.py b/ninja/signature/utils.py index c3993d83e..fd2b26901 100644 --- a/ninja/signature/utils.py +++ b/ninja/signature/utils.py @@ -57,7 +57,7 @@ def get_path_param_names(path: str) -> Set[str]: def is_async(callable: Callable[..., Any]) -> bool: - return asyncio.iscoroutinefunction(callable) + return inspect.iscoroutinefunction(callable) def has_kwargs(func: Callable[..., Any]) -> bool: From d6ea54d58b7a960104680c1bab12f71c8fc87ce6 Mon Sep 17 00:00:00 2001 From: Kolja Date: Thu, 30 Oct 2025 13:41:35 +0100 Subject: [PATCH 2/4] support oder Python versions --- ninja/signature/utils.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ninja/signature/utils.py b/ninja/signature/utils.py index fd2b26901..1a4143897 100644 --- a/ninja/signature/utils.py +++ b/ninja/signature/utils.py @@ -1,6 +1,7 @@ import asyncio import inspect import re +import sys from typing import Any, Callable, ForwardRef, List, Set from django.urls import register_converter @@ -57,7 +58,10 @@ def get_path_param_names(path: str) -> Set[str]: def is_async(callable: Callable[..., Any]) -> bool: - return inspect.iscoroutinefunction(callable) + if sys.version_info >= (3, 12): + return inspect.iscoroutinefunction(callable) + else: + return asyncio.iscoroutinefunction(callable) def has_kwargs(func: Callable[..., Any]) -> bool: From c0c2cd8267a050915b745ddb3a288af3a10dac0b Mon Sep 17 00:00:00 2001 From: Kolja Date: Thu, 30 Oct 2025 13:47:52 +0100 Subject: [PATCH 3/4] Add no cover --- ninja/signature/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ninja/signature/utils.py b/ninja/signature/utils.py index 1a4143897..8e58f9052 100644 --- a/ninja/signature/utils.py +++ b/ninja/signature/utils.py @@ -61,7 +61,7 @@ def is_async(callable: Callable[..., Any]) -> bool: if sys.version_info >= (3, 12): return inspect.iscoroutinefunction(callable) else: - return asyncio.iscoroutinefunction(callable) + return asyncio.iscoroutinefunction(callable) # pragma: no cover def has_kwargs(func: Callable[..., Any]) -> bool: From 6c89b4de02becdfd49802e862ffbc7afdee89375 Mon Sep 17 00:00:00 2001 From: Kolja Date: Thu, 30 Oct 2025 13:56:00 +0100 Subject: [PATCH 4/4] Add remove TODO and update import --- ninja/signature/utils.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ninja/signature/utils.py b/ninja/signature/utils.py index 8e58f9052..bde832f0f 100644 --- a/ninja/signature/utils.py +++ b/ninja/signature/utils.py @@ -1,7 +1,7 @@ import asyncio import inspect import re -import sys +from sys import version_info from typing import Any, Callable, ForwardRef, List, Set from django.urls import register_converter @@ -58,7 +58,8 @@ def get_path_param_names(path: str) -> Set[str]: def is_async(callable: Callable[..., Any]) -> bool: - if sys.version_info >= (3, 12): + # TODO: Drop this condition once support for <= 3.11 is dropped + if version_info >= (3, 12): return inspect.iscoroutinefunction(callable) else: return asyncio.iscoroutinefunction(callable) # pragma: no cover