Update supported Python versions, ensure httpx responses closed and use#13
Update supported Python versions, ensure httpx responses closed and use#13thejcfactor wants to merge 1 commit intomainfrom
Conversation
3ccd722 to
eef4b40
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates the SDK’s declared Python support (3.10–3.14), refreshes dependency lockfiles, and refactors request/response handling to (a) make request dataclasses keyword-only and (b) ensure httpx responses are closed before raising status-code-derived errors.
Changes:
- Bump supported Python versions to 3.10–3.14 across docs/config/CI metadata.
- Refactor request dataclasses to
kw_only=Trueand simplify request building/sending to always passdata/json. - Move HTTP status-code error handling so responses can be closed prior to raising mapped errors.
Reviewed changes
Copilot reviewed 19 out of 21 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| requirements.txt | Regenerated with uv targeting Python 3.10. |
| requirements-sphinx.txt | Regenerated; drops <3.10 conditional deps. |
| requirements-dev.txt | Regenerated; updates aiohttp and related pins. |
| requirements-dev.in | Updates aiohttp constraint for dev group. |
| README.md | Updates documented supported Python version range. |
| pyproject.toml | Raises requires-python, updates classifiers/dev deps, adds [tool.uv]. |
| couchbase_analytics/protocol/streaming.py | Adds status-code checking before iterating rows; adds extra debug logging. |
| couchbase_analytics/protocol/errors.py | Refactors status-code mapping helper to return an error instead of raising. |
| couchbase_analytics/protocol/_core/response.py | Adjusts where ignore_not_found_status is applied when processing responses. |
| couchbase_analytics/protocol/_core/request.py | Makes request dataclasses keyword-only and reshapes request fields/builders. |
| couchbase_analytics/protocol/_core/request_context.py | Introduces check_for_http_status_error() and defers status checks to later. |
| couchbase_analytics/protocol/_core/client_adapter.py | Simplifies httpx request construction (always passes data/json). |
| acouchbase_analytics/protocol/streaming.py | Async equivalent status-code checking before iteration. |
| acouchbase_analytics/protocol/_core/response.py | Passes ignore_not_found_status into async response processing. |
| acouchbase_analytics/protocol/_core/request_context.py | Async equivalent check_for_http_status_error() and deferred status checks. |
| acouchbase_analytics/protocol/_core/client_adapter.py | Async equivalent simplified httpx request construction. |
| .pre-commit-config.yaml | Updates pip-compile hooks to use Python 3.10. |
| .github/workflows/verify_release.yml | Updates default/supported Python versions. |
| .github/workflows/tests.yml | Updates default/supported Python versions. |
| .github/workflows/publish.yml | Updates default/supported Python versions. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
eef4b40 to
e0294de
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 19 out of 21 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
e0294de to
dc373de
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 19 out of 21 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
kw_only for request dataclasses Changes ------- * PYCO-95: Updated supported Python versions to be 3.10 - 3.14 * PYCO-96: Use kw_only=True for request dataclasses * PYCO-97: Close httpx response when raising WrappedError from HTTP status code * Update dependencies * Update pyproject.toml and requirement.txt files
dc373de to
de588f8
Compare
kw_only for request dataclasses
Changes