Remove deprecation in get_event_loop

This commit is contained in:
Heiner Lohaus 2024-01-14 16:38:59 +01:00
parent c3d48ae4d0
commit 66576b3941
1 changed files with 10 additions and 4 deletions

View File

@ -5,7 +5,7 @@ import os
import random
import secrets
import string
from asyncio import AbstractEventLoop
from asyncio import AbstractEventLoop, BaseEventLoop
from platformdirs import user_config_dir
from browser_cookie3 import (
chrome, chromium, opera, opera_gx,
@ -27,13 +27,19 @@ def get_event_loop() -> AbstractEventLoop:
AbstractEventLoop: The current or new event loop.
"""
try:
loop = asyncio.get_running_loop()
loop = asyncio.get_event_loop()
if isinstance(loop, BaseEventLoop):
loop._check_closed()
except RuntimeError:
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
try:
asyncio.get_running_loop()
if not hasattr(loop.__class__, "_nest_patched"):
import nest_asyncio
nest_asyncio.apply(loop)
except RuntimeError:
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
pass
except ImportError:
raise RuntimeError(
'Use "create_async" instead of "create" function in a running event loop. Or install "nest_asyncio" package.'