🤖 [Experimental] SDK Quality Improvements - Generated by Claude Code #140
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Author: @jwang (via Claude Code / Claude Opus 4.5)
This PR was generated entirely by Claude Code as an experiment to improve the exa-py SDK quality. Please review carefully before merging!
Summary
This PR addresses critical issues identified in a comprehensive SDK quality analysis:
ValueErrorfor everything)Changes
🆕 New: Custom Exception Hierarchy (
exa_py/exceptions.py)Exception classes:
ExaError- Base exceptionExaAPIError- API errors (4xx/5xx)ExaAuthenticationError- 401/403ExaRateLimitError- 429 withretry_afterExaNotFoundError- 404ExaServerError- 5xxExaValidationError- Invalid parametersExaTimeoutError- Timeout withtimeoutattributeExaNetworkError- Connection issues🆕 New: Retry with Exponential Backoff
🆕 New: Configurable Timeout
🆕 New: Async Context Manager
🔧 Fixed: Parameter Naming Consistency
🔧 Fixed: Missing Dependencies
Added to
setup.py:httpx,pydantic,httpcore,python-dotenv📚 New: Documentation
QUICKSTART.md- 5-minute getting started guideCHANGELOG.md- Release notes and migration guideBreaking Changes
AsyncExaparameterapi_baserenamed tobase_urlTest Plan
🤖 Generated with Claude Code