refactor(providers): address PR #772 review round 2 — guard, naming, docs, tests
- _retry.py: replace `assert last_error is not None` with explicit `if last_error is None: raise RuntimeError(...)` so the original rate-limit error is preserved under `python -O`. - openai.py: drop the `_retry_factory` alias chain; rename the bound decorator to `_retry_429` to match the pattern in mistral.py. - mistral.py: comment the imports so future reviewers understand why `from mistralai.client import …` is the canonical path on 2.x (no top-level `__init__.py`; no `mistralai.models` subpackage either). - docs/configuration.md: add `OPENAI_GENERATION_MODEL` and `OLLAMA_GENERATION_MODEL` rows to the env-var reference table. - test_mistral.py: add direct unit test for the `_is_rate_limit` predicate (429 → True, 500 → False, missing-attr → False). - test_registry.py: stub `mistralai.client.Mistral` in the registry picker test, mirroring the Ollama sibling, so the test doesn't depend on the SDK accepting arbitrary keys. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
e360a7782b
commit
20f1770794
@@ -6,6 +6,10 @@ can be added later if needed; see ADR-015.
|
||||
|
||||
import logging
|
||||
|
||||
# mistralai 2.x ships no top-level __init__.py, so `from mistralai import …`
|
||||
# raises ImportError. The canonical public paths are `mistralai.client` (which
|
||||
# re-exports the SDK class via `client/__init__.py`) and `mistralai.client.errors`
|
||||
# (which lazy-loads SDKError). There is no `mistralai.models` subpackage either.
|
||||
from mistralai.client import Mistral
|
||||
from mistralai.client.errors import SDKError
|
||||
|
||||
|
||||
Reference in New Issue
Block a user