Skip to content

Update supported Python versions, ensure httpx responses closed and use#13

Open
thejcfactor wants to merge 1 commit intomainfrom
PYCO95_PYCO96_PYCO97
Open

Update supported Python versions, ensure httpx responses closed and use#13
thejcfactor wants to merge 1 commit intomainfrom
PYCO95_PYCO96_PYCO97

Conversation

@thejcfactor
Copy link
Copy Markdown
Collaborator

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

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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=True and simplify request building/sending to always pass data/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.

Comment thread couchbase_analytics/protocol/_core/request.py
Comment thread couchbase_analytics/protocol/_core/response.py
Comment thread acouchbase_analytics/protocol/_core/request_context.py
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread couchbase_analytics/protocol/_core/response.py Outdated
Comment thread acouchbase_analytics/protocol/_core/response.py Outdated
Comment thread couchbase_analytics/protocol/_core/request.py
Comment thread couchbase_analytics/protocol/streaming.py Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread couchbase_analytics/protocol/_core/request.py
Comment thread couchbase_analytics/protocol/_core/request.py
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
@thejcfactor thejcfactor force-pushed the PYCO95_PYCO96_PYCO97 branch from dc373de to de588f8 Compare May 6, 2026 15:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants