summaryrefslogtreecommitdiffstats
path: root/g4f/client/helper.py
diff options
context:
space:
mode:
authorH Lohaus <hlohaus@users.noreply.github.com>2024-04-07 11:27:26 +0200
committerGitHub <noreply@github.com>2024-04-07 11:27:26 +0200
commitd327afc60620913f5d2b0a9985b03a7934468ad4 (patch)
tree395de9142af3e6b9c0e5e3968ee7f8234b8b25e2 /g4f/client/helper.py
parentUpdate Gemini.py (diff)
parentUpdate provider.py (diff)
downloadgpt4free-d327afc60620913f5d2b0a9985b03a7934468ad4.tar
gpt4free-d327afc60620913f5d2b0a9985b03a7934468ad4.tar.gz
gpt4free-d327afc60620913f5d2b0a9985b03a7934468ad4.tar.bz2
gpt4free-d327afc60620913f5d2b0a9985b03a7934468ad4.tar.lz
gpt4free-d327afc60620913f5d2b0a9985b03a7934468ad4.tar.xz
gpt4free-d327afc60620913f5d2b0a9985b03a7934468ad4.tar.zst
gpt4free-d327afc60620913f5d2b0a9985b03a7934468ad4.zip
Diffstat (limited to 'g4f/client/helper.py')
-rw-r--r--g4f/client/helper.py20
1 files changed, 17 insertions, 3 deletions
diff --git a/g4f/client/helper.py b/g4f/client/helper.py
index 32aa9183..c502d478 100644
--- a/g4f/client/helper.py
+++ b/g4f/client/helper.py
@@ -1,6 +1,9 @@
+from __future__ import annotations
+
import re
+from typing import Iterable, AsyncIterator
-def read_json(text: str) -> dict:
+def filter_json(text: str) -> str:
"""
Parses JSON code block from a string.
@@ -15,7 +18,7 @@ def read_json(text: str) -> dict:
return match.group("code")
return text
-def find_stop(stop, content: str, chunk: str):
+def find_stop(stop, content: str, chunk: str = None):
first = -1
word = None
if stop is not None:
@@ -24,10 +27,21 @@ def find_stop(stop, content: str, chunk: str):
if first != -1:
content = content[:first]
break
- if stream and first != -1:
+ if chunk is not None and first != -1:
first = chunk.find(word)
if first != -1:
chunk = chunk[:first]
else:
first = 0
return first, content, chunk
+
+def filter_none(**kwargs) -> dict:
+ return {
+ key: value
+ for key, value in kwargs.items()
+ if value is not None
+ }
+
+async def cast_iter_async(iter: Iterable) -> AsyncIterator:
+ for chunk in iter:
+ yield chunk \ No newline at end of file