summaryrefslogtreecommitdiffstats
path: root/g4f/Provider/base_provider.py
diff options
context:
space:
mode:
authorH Lohaus <hlohaus@users.noreply.github.com>2024-02-14 09:22:32 +0100
committerGitHub <noreply@github.com>2024-02-14 09:22:32 +0100
commit51686409f86e187d9c13cbea9388f31f567a118c (patch)
treec4291ff5375b77d70622cfa25490f5a02a5ee970 /g4f/Provider/base_provider.py
parentUpdate client.md (diff)
parentAdd unitests for the client (diff)
downloadgpt4free-51686409f86e187d9c13cbea9388f31f567a118c.tar
gpt4free-51686409f86e187d9c13cbea9388f31f567a118c.tar.gz
gpt4free-51686409f86e187d9c13cbea9388f31f567a118c.tar.bz2
gpt4free-51686409f86e187d9c13cbea9388f31f567a118c.tar.lz
gpt4free-51686409f86e187d9c13cbea9388f31f567a118c.tar.xz
gpt4free-51686409f86e187d9c13cbea9388f31f567a118c.tar.zst
gpt4free-51686409f86e187d9c13cbea9388f31f567a118c.zip
Diffstat (limited to 'g4f/Provider/base_provider.py')
-rw-r--r--g4f/Provider/base_provider.py23
1 files changed, 14 insertions, 9 deletions
diff --git a/g4f/Provider/base_provider.py b/g4f/Provider/base_provider.py
index 4b312ffc..8659f506 100644
--- a/g4f/Provider/base_provider.py
+++ b/g4f/Provider/base_provider.py
@@ -196,15 +196,20 @@ class AsyncGeneratorProvider(AsyncProvider):
generator = cls.create_async_generator(model, messages, stream=stream, **kwargs)
gen = generator.__aiter__()
- while True:
- try:
- yield loop.run_until_complete(gen.__anext__())
- except StopAsyncIteration:
- break
-
- if new_loop:
- loop.close()
- asyncio.set_event_loop(None)
+ # Fix for RuntimeError: async generator ignored GeneratorExit
+ async def await_callback(callback):
+ return await callback()
+
+ try:
+ while True:
+ yield loop.run_until_complete(await_callback(gen.__anext__))
+ except StopAsyncIteration:
+ ...
+ # Fix for: ResourceWarning: unclosed event loop
+ finally:
+ if new_loop:
+ loop.close()
+ asyncio.set_event_loop(None)
@classmethod
async def create_async(