mirror of
https://github.com/Rapptz/discord.py.git
synced 2026-09-21 11:37:43 +00:00
Use iscoroutinefunction from inspect instead of asyncio on 3.12+
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user