chunkr-ai 0.0.29__py3-none-any.whl → 0.0.31__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- chunkr_ai/api/decorators.py +8 -3
- chunkr_ai/api/misc.py +1 -1
- {chunkr_ai-0.0.29.dist-info → chunkr_ai-0.0.31.dist-info}/METADATA +1 -1
- {chunkr_ai-0.0.29.dist-info → chunkr_ai-0.0.31.dist-info}/RECORD +7 -7
- {chunkr_ai-0.0.29.dist-info → chunkr_ai-0.0.31.dist-info}/LICENSE +0 -0
- {chunkr_ai-0.0.29.dist-info → chunkr_ai-0.0.31.dist-info}/WHEEL +0 -0
- {chunkr_ai-0.0.29.dist-info → chunkr_ai-0.0.31.dist-info}/top_level.txt +0 -0
chunkr_ai/api/decorators.py
CHANGED
@@ -66,17 +66,21 @@ def retry_on_429(max_retries: int = 25, initial_delay: float = 0.5) -> Callable[
|
|
66
66
|
|
67
67
|
Args:
|
68
68
|
max_retries: Maximum number of retry attempts (default: 25)
|
69
|
-
initial_delay: Initial delay in seconds, will be exponentially increased (default: 0.5)
|
69
|
+
initial_delay: Initial delay in seconds, will be exponentially increased with jitter (default: 0.5)
|
70
70
|
"""
|
71
71
|
def decorator(async_func: Callable[P, Awaitable[T]]) -> Callable[P, Awaitable[T]]:
|
72
72
|
@functools.wraps(async_func)
|
73
73
|
async def wrapper(*args: P.args, **kwargs: P.kwargs) -> T:
|
74
|
+
import random
|
74
75
|
retries = 0
|
75
76
|
while True:
|
76
77
|
try:
|
77
78
|
return await async_func(*args, **kwargs)
|
78
79
|
except httpx.HTTPStatusError as e:
|
79
|
-
if e.response.status_code != 429
|
80
|
+
if e.response.status_code != 429:
|
81
|
+
raise
|
82
|
+
if retries >= max_retries:
|
83
|
+
print("Max retries reached")
|
80
84
|
raise
|
81
85
|
retries += 1
|
82
86
|
delay = initial_delay * (2 ** retries)
|
@@ -87,6 +91,7 @@ def retry_on_429(max_retries: int = 25, initial_delay: float = 0.5) -> Callable[
|
|
87
91
|
delay = float(retry_after)
|
88
92
|
except (ValueError, TypeError):
|
89
93
|
pass
|
90
|
-
|
94
|
+
jitter = random.uniform(0, 0.25) * delay
|
95
|
+
await asyncio.sleep(delay + jitter)
|
91
96
|
return wrapper
|
92
97
|
return decorator
|
chunkr_ai/api/misc.py
CHANGED
@@ -32,7 +32,7 @@ async def prepare_file(file: Union[str, Path, BinaryIO, Image.Image], client: ht
|
|
32
32
|
):
|
33
33
|
if not client:
|
34
34
|
raise ValueError("Client must be provided to download files from URLs")
|
35
|
-
response = client.get(file)
|
35
|
+
response = await client.get(file)
|
36
36
|
response.raise_for_status()
|
37
37
|
|
38
38
|
# Try to get filename from Content-Disposition header first
|
@@ -5,12 +5,12 @@ chunkr_ai/api/auth.py,sha256=hlv0GiUmlsbFO1wLL9sslqOnsBSoBqkL_6Mk2SDvxgE,413
|
|
5
5
|
chunkr_ai/api/chunkr.py,sha256=VnbuAPlWLqyf8xCCU_kpdybgjVPTwZLarDQoD3uozY0,3065
|
6
6
|
chunkr_ai/api/chunkr_base.py,sha256=giW56fL7xxJphdOTpIH52dXxpNt7OdP8pNiPSqbNjGM,5835
|
7
7
|
chunkr_ai/api/configuration.py,sha256=m8QL6s2j1_xSo9bERzJ3UG5j8cE6o-cZIiQGxsSf7Ow,3805
|
8
|
-
chunkr_ai/api/decorators.py,sha256=
|
9
|
-
chunkr_ai/api/misc.py,sha256=
|
8
|
+
chunkr_ai/api/decorators.py,sha256=hu3wdd0s7P6askR3Td8g6OM-RoUCggDGv06HQUsMI6E,4284
|
9
|
+
chunkr_ai/api/misc.py,sha256=gTL8UG_R6bunQdKSXwm_SpyIyTmLprzdX3re_X-mMto,5730
|
10
10
|
chunkr_ai/api/protocol.py,sha256=LjPrYSq52m1afIlAo0yVGXlGZxPRh8J6g7S4PAit3Zo,388
|
11
11
|
chunkr_ai/api/task_response.py,sha256=uvM5uNIImDnivsgujjOh2kxRYuUoqKDhLE1nOH2dJjo,6091
|
12
|
-
chunkr_ai-0.0.
|
13
|
-
chunkr_ai-0.0.
|
14
|
-
chunkr_ai-0.0.
|
15
|
-
chunkr_ai-0.0.
|
16
|
-
chunkr_ai-0.0.
|
12
|
+
chunkr_ai-0.0.31.dist-info/LICENSE,sha256=w3R12yNDyZpMiy2lxy_hvNbsldC75ww79sF0u11rkho,1069
|
13
|
+
chunkr_ai-0.0.31.dist-info/METADATA,sha256=nVqhTSTn_YeGrWUgZ-e-CvLE5MMfgxNt3YGuY6hVt9w,6996
|
14
|
+
chunkr_ai-0.0.31.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
15
|
+
chunkr_ai-0.0.31.dist-info/top_level.txt,sha256=0IZY7PZIiS8bw5r4NUQRUQ-ATi-L_3vLQVq3ZLouOW8,10
|
16
|
+
chunkr_ai-0.0.31.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|