chunkr-ai 0.0.29__tar.gz → 0.0.30__tar.gz

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.
Files changed (22) hide show
  1. {chunkr_ai-0.0.29/src/chunkr_ai.egg-info → chunkr_ai-0.0.30}/PKG-INFO +1 -1
  2. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/pyproject.toml +1 -1
  3. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/src/chunkr_ai/api/decorators.py +8 -3
  4. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30/src/chunkr_ai.egg-info}/PKG-INFO +1 -1
  5. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/LICENSE +0 -0
  6. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/README.md +0 -0
  7. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/setup.cfg +0 -0
  8. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/src/chunkr_ai/__init__.py +0 -0
  9. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/src/chunkr_ai/api/__init__.py +0 -0
  10. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/src/chunkr_ai/api/auth.py +0 -0
  11. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/src/chunkr_ai/api/chunkr.py +0 -0
  12. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/src/chunkr_ai/api/chunkr_base.py +0 -0
  13. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/src/chunkr_ai/api/configuration.py +0 -0
  14. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/src/chunkr_ai/api/misc.py +0 -0
  15. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/src/chunkr_ai/api/protocol.py +0 -0
  16. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/src/chunkr_ai/api/task_response.py +0 -0
  17. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/src/chunkr_ai/models.py +0 -0
  18. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/src/chunkr_ai.egg-info/SOURCES.txt +0 -0
  19. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/src/chunkr_ai.egg-info/dependency_links.txt +0 -0
  20. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/src/chunkr_ai.egg-info/requires.txt +0 -0
  21. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/src/chunkr_ai.egg-info/top_level.txt +0 -0
  22. {chunkr_ai-0.0.29 → chunkr_ai-0.0.30}/tests/test_chunkr.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: chunkr-ai
3
- Version: 0.0.29
3
+ Version: 0.0.30
4
4
  Summary: Python client for Chunkr: open source document intelligence
5
5
  Author-email: Ishaan Kapoor <ishaan@lumina.sh>
6
6
  License: MIT License
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "chunkr-ai"
7
- version = "0.0.29"
7
+ version = "0.0.30"
8
8
  authors = [{"name" = "Ishaan Kapoor", "email" = "ishaan@lumina.sh"}]
9
9
  description = "Python client for Chunkr: open source document intelligence"
10
10
  readme = "README.md"
@@ -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 or retries >= max_retries:
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
- await asyncio.sleep(delay)
94
+ jitter = random.uniform(0, 0.25) * delay
95
+ await asyncio.sleep(delay + jitter)
91
96
  return wrapper
92
97
  return decorator
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: chunkr-ai
3
- Version: 0.0.29
3
+ Version: 0.0.30
4
4
  Summary: Python client for Chunkr: open source document intelligence
5
5
  Author-email: Ishaan Kapoor <ishaan@lumina.sh>
6
6
  License: MIT License
File without changes
File without changes
File without changes