Skip to content

Extract shared helpers and fix strict-kwargs call sites#2883

Closed
adamtheturtle wants to merge 3 commits intomainfrom
adamtheturtle/reduce-sync-async-duplication
Closed

Extract shared helpers and fix strict-kwargs call sites#2883
adamtheturtle wants to merge 3 commits intomainfrom
adamtheturtle/reduce-sync-async-duplication

Conversation

@adamtheturtle
Copy link
Member

@adamtheturtle adamtheturtle commented Feb 25, 2026

This refactor extracts shared VWS and CloudReco request/response helper logic into common modules to reduce duplication between sync and async clients. It updates the sync/async query, VWS, and VuMark service implementations to call the shared helpers. It also switches shared helper invocations to keyword arguments so the branch passes the project's mypy strict-kwargs checks. Pre-push checks (including mypy, pyright, pyrefly, and ty) passed during push.


Note

Medium Risk
Mostly a refactor, but it centralizes request signing/header construction and result-code→exception mapping; any mismatch could change how requests are authenticated or which errors are raised in both sync and async clients.

Overview
Refactors the sync/async VWS, CloudReco query, and VuMark clients to deduplicate request/response logic by introducing shared helpers (_vws_request.build_vws_request_args, _vws_common, _query_common) and routing existing code through them.

This centralizes VWS request signing + header/url construction, result-code→exception mapping for VWS/VuMark/CloudReco, and JSON body construction for add_target/update_target, while updating call sites to pass arguments via keywords (to satisfy strict kwargs type-checking) and making minor result parsing calls explicit via response_dict=.

Written by Cursor Bugbot for commit 1d7eabb. This will update automatically on new commits. Configure here.

adamtheturtle and others added 2 commits February 25, 2026 09:01
Move duplicated exception-raising, response-parsing, and request-building
logic into shared modules (_vws_common.py, _query_common.py) so the sync
and async client implementations can share the same code.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

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.

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.

1 participant