@ -58,7 +58,16 @@ from ..message import Message
from . . user import User
from . . member import Member
from . . permissions import Permissions
from . . utils import resolve_annotation , MISSING , is_inside_class , maybe_coroutine , async_all , _shorten , _to_kebab_case
from . . utils import (
resolve_annotation ,
MISSING ,
is_inside_class ,
maybe_coroutine ,
async_all ,
_iscoroutinefunction ,
_shorten ,
_to_kebab_case ,
)
if TYPE_CHECKING :
from typing_extensions import ParamSpec , Concatenate , Unpack
@ -346,7 +355,7 @@ def _populate_autocomplete(params: Dict[str, CommandParameter], autocomplete: Di
if callback is MISSING :
continue
if not inspect . iscoroutinefunction ( callback ) :
if not _ iscoroutinefunction( callback ) :
raise TypeError ( ' autocomplete callback must be a coroutine function ' )
if param . type not in ( AppCommandOptionType . string , AppCommandOptionType . number , AppCommandOptionType . integer ) :
@ -1037,7 +1046,7 @@ class Command(Generic[GroupT, P, T]):
The coroutine passed is not actually a coroutine .
"""
if not inspect . iscoroutinefunction ( coro ) :
if not _ iscoroutinefunction( coro ) :
raise TypeError ( ' The error handler must be a coroutine. ' )
self . on_error = coro
@ -1098,7 +1107,7 @@ class Command(Generic[GroupT, P, T]):
"""
def decorator ( coro : AutocompleteCallback [ GroupT , ChoiceT ] ) - > AutocompleteCallback [ GroupT , ChoiceT ] :
if not inspect . iscoroutinefunction ( coro ) :
if not _ iscoroutinefunction( coro ) :
raise TypeError ( ' The autocomplete callback must be a coroutine function. ' )
try :
@ -1347,7 +1356,7 @@ class ContextMenu:
The coroutine passed is not actually a coroutine .
"""
if not inspect . iscoroutinefunction ( coro ) :
if not _ iscoroutinefunction( coro ) :
raise TypeError ( ' The error handler must be a coroutine. ' )
self . on_error = coro
@ -1840,7 +1849,7 @@ class Group:
The coroutine passed is not actually a coroutine , or is an invalid coroutine .
"""
if not inspect . iscoroutinefunction ( coro ) :
if not _ iscoroutinefunction( coro ) :
raise TypeError ( ' The error handler must be a coroutine. ' )
params = inspect . signature ( coro ) . parameters
@ -1990,7 +1999,7 @@ class Group:
"""
def decorator ( func : CommandCallback [ GroupT , P , T ] ) - > Command [ GroupT , P , T ] :
if not inspect . iscoroutinefunction ( func ) :
if not _ iscoroutinefunction( func ) :
raise TypeError ( ' command function must be a coroutine function ' )
if description is MISSING :
@ -2051,7 +2060,7 @@ def command(
"""
def decorator ( func : CommandCallback [ GroupT , P , T ] ) - > Command [ GroupT , P , T ] :
if not inspect . iscoroutinefunction ( func ) :
if not _ iscoroutinefunction( func ) :
raise TypeError ( ' command function must be a coroutine function ' )
if description is MISSING :
@ -2123,7 +2132,7 @@ def context_menu(
"""
def decorator ( func : ContextMenuCallback ) - > ContextMenu :
if not inspect . iscoroutinefunction ( func ) :
if not _ iscoroutinefunction( func ) :
raise TypeError ( ' context menu function must be a coroutine function ' )
actual_name = func . __name__ . title ( ) if name is MISSING else name