diff options
author | H Lohaus <hlohaus@users.noreply.github.com> | 2024-01-14 16:42:30 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-14 16:42:30 +0100 |
commit | 32f49bc237842ff0c124e1bdfc001be68e0d5ed0 (patch) | |
tree | 98959dd21460dbf910ba6454d1aada10248b5b1c /g4f | |
parent | Fix unittests (#1472) (diff) | |
parent | Remove deprecation in get_event_loop (diff) | |
download | gpt4free-0.2.0.3.tar gpt4free-0.2.0.3.tar.gz gpt4free-0.2.0.3.tar.bz2 gpt4free-0.2.0.3.tar.lz gpt4free-0.2.0.3.tar.xz gpt4free-0.2.0.3.tar.zst gpt4free-0.2.0.3.zip |
Diffstat (limited to 'g4f')
-rw-r--r-- | g4f/Provider/helper.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/g4f/Provider/helper.py b/g4f/Provider/helper.py index 160074f7..fce1ee6f 100644 --- a/g4f/Provider/helper.py +++ b/g4f/Provider/helper.py @@ -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.' |