cat-stack 1.6.3__tar.gz → 1.6.4__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.
- {cat_stack-1.6.3 → cat_stack-1.6.4}/PKG-INFO +1 -1
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/__about__.py +1 -1
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/_providers.py +6 -2
- {cat_stack-1.6.3 → cat_stack-1.6.4}/.gitignore +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/LICENSE +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/README.md +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/pyproject.toml +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/cat_stack/__init__.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/__init__.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/_batch.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/_category_analysis.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/_chunked.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/_embeddings.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/_formatter.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/_pilot_test.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/_prompts.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/_review_ui.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/_tiebreaker.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/_utils.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/_web_fetch.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/_wrapper_helpers.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/calls/CoVe.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/calls/__init__.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/calls/image_CoVe.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/calls/image_stepback.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/calls/pdf_CoVe.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/calls/pdf_stepback.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/calls/stepback.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/calls/top_n.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/classify.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/explore.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/extract.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/image_functions.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/images/circle.png +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/images/cube.png +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/images/diamond.png +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/images/overlapping_pentagons.png +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/images/rectangles.png +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/model_reference_list.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/pdf_functions.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/prompt_tune.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/summarize.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/text_functions.py +0 -0
- {cat_stack-1.6.3 → cat_stack-1.6.4}/src/catstack/text_functions_ensemble.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cat-stack
|
|
3
|
-
Version: 1.6.
|
|
3
|
+
Version: 1.6.4
|
|
4
4
|
Summary: Domain-agnostic text, image, PDF, and DOCX classification engine powered by LLMs
|
|
5
5
|
Project-URL: Documentation, https://github.com/chrissoria/cat-stack#readme
|
|
6
6
|
Project-URL: Issues, https://github.com/chrissoria/cat-stack/issues
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# SPDX-FileCopyrightText: 2025-present Christopher Soria <chrissoria@berkeley.edu>
|
|
2
2
|
#
|
|
3
3
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
4
|
-
__version__ = "1.6.
|
|
4
|
+
__version__ = "1.6.4"
|
|
5
5
|
__author__ = "Chris Soria"
|
|
6
6
|
__email__ = "chrissoria@berkeley.edu"
|
|
7
7
|
__title__ = "cat-stack"
|
|
@@ -855,7 +855,9 @@ class UnifiedLLMClient:
|
|
|
855
855
|
wait_time = _backoff_with_jitter(initial_delay, attempt, multiplier=5.0)
|
|
856
856
|
elapsed = time.monotonic() - start
|
|
857
857
|
if attempt < max_retries - 1 and elapsed + wait_time <= _MAX_TOTAL_WAIT_SECONDS:
|
|
858
|
-
|
|
858
|
+
# Name the throttling provider/model so multi-model
|
|
859
|
+
# ensemble runs can attribute the slowdown.
|
|
860
|
+
print(f"[{self.provider}/{self.model}] Rate limited. Waiting {wait_time:.1f}s...")
|
|
859
861
|
time.sleep(wait_time)
|
|
860
862
|
continue
|
|
861
863
|
else:
|
|
@@ -893,7 +895,9 @@ class UnifiedLLMClient:
|
|
|
893
895
|
wait_time = _backoff_with_jitter(initial_delay, attempt)
|
|
894
896
|
elapsed = time.monotonic() - start
|
|
895
897
|
if attempt < max_retries - 1 and elapsed + wait_time <= _MAX_TOTAL_WAIT_SECONDS:
|
|
896
|
-
|
|
898
|
+
# Name the failing provider/model — same rationale as
|
|
899
|
+
# the 429 handler above.
|
|
900
|
+
print(f"[{self.provider}/{self.model}] Server error {response.status_code}. Retrying in {wait_time:.1f}s...")
|
|
897
901
|
time.sleep(wait_time)
|
|
898
902
|
continue
|
|
899
903
|
else:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|