Add asyncio support with async client classes#2878
Merged
adamtheturtle merged 1 commit intomainfrom Feb 25, 2026
Merged
Conversation
1ca99c2 to
6eef236
Compare
6eef236 to
467562e
Compare
467562e to
0f08696
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
0f08696 to
1820a5e
Compare
1820a5e to
d4e323d
Compare
d4e323d to
a508525
Compare
a508525 to
30ad14d
Compare
30ad14d to
e4dd08a
Compare
Implement async versions of all three client classes (AsyncVWS, AsyncCloudRecoService, AsyncVuMarkService) alongside transport abstraction. Adds AsyncTransport protocol and AsyncHTTPXTransport using httpx.AsyncClient. Includes 99 new async integration tests with complete exception coverage. All 287 tests pass with strict mypy and ruff validation. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
e4dd08a to
db3fb18
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Implements full asyncio support for the vws-python library. Adds three new async client classes (
AsyncVWS,AsyncCloudRecoService,AsyncVuMarkService) that mirror their synchronous counterparts. IntroducesAsyncTransportprotocol andAsyncHTTPXTransportusinghttpx.AsyncClient, enabling async/await workflows in applications like FastAPI.Changes
_async_vws_request.py)AsyncTransportprotocol,AsyncHTTPXTransport)pytest-asyncio)Testing
All 287 tests pass (188 sync + 99 async). Strict validation: mypy, ruff, pylint, pyright all pass with zero errors.
🤖 Generated with Claude Code
Note
Medium Risk
Adds a large new async API surface (clients + transport) and resource-lifecycle behavior (
aclose/async context managers) without changing existing sync clients. Risk is mainly around async request correctness, transport compatibility, and ensuring no regressions in shared response/exception handling.Overview
Adds full asyncio support by introducing new async client classes (
AsyncVWS,AsyncCloudRecoService,AsyncVuMarkService) plus a shared authenticated request helper (_async_vws_request.py) to mirror the existing sync APIs.Introduces an async transport abstraction (
AsyncTransport) and default implementation (AsyncHTTPXTransportusinghttpx.AsyncClient), exports the new async clients fromvws.__init__, and updates Sphinx API docs to include the new modules.Expands the test suite with async fixtures and comprehensive async integration/exception/transport tests (via
pytest-asyncio), and updates tooling config (spelling dict,vultureignore list) accordingly.Written by Cursor Bugbot for commit db3fb18. This will update automatically on new commits. Configure here.