mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2026-05-14 03:51:46 -04:00
Update uvloop to 0.22.1 (#6705)
This commit is contained in:
+33
-1
@@ -3,13 +3,15 @@ import asyncio
|
||||
import logging
|
||||
import sys
|
||||
from enum import IntEnum
|
||||
from typing import Optional
|
||||
from typing import Any, Coroutine, Optional, TypeVar
|
||||
|
||||
import discord
|
||||
from discord import __version__ as discord_version
|
||||
|
||||
from redbot.core.utils._internal_utils import cli_level_to_log_level
|
||||
|
||||
_T = TypeVar("_T")
|
||||
|
||||
|
||||
# This needs to be an int enum to be used
|
||||
# with sys.exit
|
||||
@@ -368,3 +370,33 @@ def parse_cli_flags(args):
|
||||
args.logging_level = cli_level_to_log_level(args.logging_level)
|
||||
|
||||
return args
|
||||
|
||||
|
||||
def asyncio_run(coro: Coroutine[Any, Any, _T]) -> _T:
|
||||
if sys.version_info >= (3, 11):
|
||||
with asyncio.Runner(loop_factory=new_event_loop) as runner:
|
||||
return runner.run(coro)
|
||||
|
||||
if sys.implementation.name == "cpython":
|
||||
# Let's not force this dependency, uvloop is much faster on cpython
|
||||
try:
|
||||
import uvloop
|
||||
except ImportError:
|
||||
pass
|
||||
else:
|
||||
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
|
||||
|
||||
return asyncio.run(coro)
|
||||
|
||||
|
||||
def new_event_loop() -> asyncio.AbstractEventLoop:
|
||||
if sys.implementation.name == "cpython":
|
||||
# Let's not force this dependency, uvloop is much faster on cpython
|
||||
try:
|
||||
import uvloop
|
||||
except ImportError:
|
||||
pass
|
||||
else:
|
||||
return uvloop.new_event_loop()
|
||||
|
||||
return asyncio.new_event_loop()
|
||||
|
||||
Reference in New Issue
Block a user