Skip to content

[MISC] sync spec from unstract-llm-whisperer #756 and regenerate - #39

Merged
johnyrahul merged 1 commit into
mainfrom
spec-sync-hide-internal-params
Sep 18, 2026
Merged

johnyrahul merged 1 commit into
mainfrom
spec-sync-hide-internal-params

Conversation

@chandrasekharan-zipstack

Copy link
Copy Markdown
Collaborator

What

  • specs/llmwhisperer.json copied byte-for-byte from Zipstack/unstract-llm-whisperer#756 (branch spec-hide-internal-params, head c4cc7f14); SPEC_SOURCE_REV in tools/gen_sdk.sh moved with it.
  • tools/gen_sdk.sh run (openapi-python-client 0.29.0). Generated diff is limited to two models:
    • models/extract_mode.py: ExtractMode Literal / EXTRACT_MODE_VALUES lose excel, document_insights
    • models/extract_output_mode.py: ExtractOutputMode Literal / EXTRACT_OUTPUT_MODE_VALUES lose line-printer, dump-text
  • No facade changes. whisper() keeps derotate_threshold, min_table_width, ignore_vertical_text (upstream marks them x-internal but keeps them declared precisely so this client's forwarding into _get_kwargs() keeps working). Docstrings already list only public mode / output_mode values.

Why

Upstream decision (Johny, Slack: https://zipstack.slack.com/archives/C058WQU0R6E/p1789714932972689?thread_ts=1786949312.062819&cid=C058WQU0R6E): line-printer/dump-text are v1 spellings, excel is set by ingestion itself, document_insights is unreleased. See Zipstack/unstract-llm-whisperer#756.

Runtime unchanged. The request path (client_v2.py _build_request → generated extract._get_kwargs) never calls check_extract_mode / check_extract_output_mode (verified: zero references), and the facade takes str. A caller still passing mode="excel" or output_mode="line-printer" goes to the wire exactly as before; only static type checkers see the narrower Literals. The generator ignores x-internal (regenerating from a spec with only the marker added produced an empty diff).

Version proposal (Chandru decides at dispatch)

  • Public surface (client_v2) identical → api-surface gate green → not major by the skill's rule.
  • Narrowed Literals live in the private _sdk_llmwhisperer subpackage.
  • Proposal: patch (2.9.1). Pick minor (2.10.0) instead if the narrowed Literals should be signalled to type-checking callers.

Before leaving draft

  • SPEC_SOURCE_REV currently points at the #756 branch head; rewrite it to the squash-merge sha of #756 once merged, then re-run tools/gen_sdk.sh (no diff expected) and push.

Notes on Testing

  • uv run pytest tests/unit → 290 passed
  • tests/integration → 17 failed / 2 passed, identical on origin/main: 15× HTTP 402 "breached your free processing limit of 100 pages max per day" from the key in .env, 1× usage_info missing current_page_count_document_insights on the target service, unrelated to this change.
  • Baseline (tests/baseline/) not refreshed — a spec sync alone is not a reason to move the parity reference (per spec-upgrade skill).

🤖 Generated with Claude Code

https://claude.ai/code/session_01WQ8fZBmtfZJG13fbm5FSan

Upstream hides the v1 output_mode spellings (line-printer, dump-text) and the
internal modes (excel, document_insights) from the published enums, and marks
three internal knobs x-internal without removing them. Only the two generated
Literal models change; the facade and the wire are untouched.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WQ8fZBmtfZJG13fbm5FSan
@chandrasekharan-zipstack
chandrasekharan-zipstack marked this pull request as ready for review September 18, 2026 10:29
@greptile-apps

greptile-apps Bot commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

via Greptile

RetriggerConfidence Score: 5/5

The PR appears safe to merge after completing the already-declared source-revision update when the upstream squash commit is available.

Summary

This PR synchronizes the OpenAPI specification with its upstream source and regenerates the affected enum models.

  • Removes internal or obsolete extraction mode spellings from generated Literal aliases and value sets.
  • Marks three retained extraction parameters as internal without changing their generated request behavior.
  • Updates the recorded upstream specification revision.
  • Leaves the public facade and runtime wire behavior unchanged.
Diagram
%%{init: {'theme': 'neutral'}}%%
flowchart LR
    U[Upstream OpenAPI specification] --> S[Committed specification]
    S --> G[Pinned SDK generator]
    G --> M[Narrowed generated enum models]
    M --> F[Unchanged public client facade]
    F --> W[Unchanged wire request behavior]
Loading

Reviews (1) · Last reviewed commit: "chore(spec): sync spec from unstract-llm..."

@github-actions

Copy link
Copy Markdown
Contributor
filepath function $$\textcolor{#23d18b}{\tt{passed}}$$ SUBTOTAL
$$\textcolor{#23d18b}{\tt{tests/integration/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_get\_usage\_info}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/integration/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_v2}}$$ $$\textcolor{#23d18b}{\tt{9}}$$ $$\textcolor{#23d18b}{\tt{9}}$$
$$\textcolor{#23d18b}{\tt{tests/integration/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_highlight}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/integration/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_v2\_url\_in\_post}}$$ $$\textcolor{#23d18b}{\tt{4}}$$ $$\textcolor{#23d18b}{\tt{4}}$$
$$\textcolor{#23d18b}{\tt{tests/integration/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_webhook}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/integration/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_detail}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/integration/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_detail\_not\_found}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/integration/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_line\_splitter\_strategy\_reaches\_service}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_register\_webhook}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_get\_webhook\_details}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_detail\_success}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_detail\_not\_found}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_json\_string\_response\_error}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_json\_string\_response\_202}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_invalid\_json\_response\_error}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_invalid\_json\_response\_202}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_default\_word\_confidence\_threshold}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_custom\_word\_confidence\_threshold}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_sends\_corrected\_param\_names}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_sends\_page\_separator\_under\_both\_spellings}}$$ $$\textcolor{#23d18b}{\tt{2}}$$ $$\textcolor{#23d18b}{\tt{2}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_defaults\_when\_no\_param\_passed}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_deprecated\_page\_seperator\_is\_forwarded}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_deprecated\_filename\_is\_forwarded}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_deprecated\_line\_spitter\_strategy\_is\_ignored}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_rejects\_both\_spellings}}$$ $$\textcolor{#23d18b}{\tt{3}}$$ $$\textcolor{#23d18b}{\tt{3}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_retry\_on\_connection\_error}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_retry\_on\_timeout}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_retry\_on\_429}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_retry\_on\_500}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_no\_retry\_on\_400}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_no\_retry\_on\_401}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_retries\_exhausted\_raises}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_retries\_exhausted\_500\_returns\_response}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_retry\_disabled}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_post\_uses\_min\_of\_api\_timeout\_and\_wait\_timeout}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_post\_uses\_wait\_timeout\_when\_smaller}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_send\_request\_deadline\_caps\_timeout}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/client\_v2\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_send\_request\_deadline\_stops\_retries}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_request\_matches\_the\_published\_client}}$$ $$\textcolor{#23d18b}{\tt{14}}$$ $$\textcolor{#23d18b}{\tt{14}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_the\_auth\_header\_is\_unchanged}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_wire\_headers\_match\_the\_published\_client}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_custom\_headers\_override\_the\_transport\_defaults}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_a\_case\_variant\_custom\_header\_overrides\_rather\_than\_duplicates}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_a\_case\_variant\_key\_override\_does\_not\_also\_send\_the\_real\_key}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_custom\_headers\_still\_reach\_the\_request}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_headers\_changed\_after\_the\_first\_call\_reach\_the\_next\_one}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_the\_transport\_can\_be\_released\_and\_reused}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_closing\_an\_unused\_client\_is\_not\_an\_error}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_url\_mode\_does\_not\_put\_the\_url\_on\_the\_query\_string}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_upload\_mode\_does\_not\_send\_url\_in\_post}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_booleans\_are\_sent\_the\_way\_the\_previous\_transport\_sent\_them}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_send\_only\_covers\_every\_parameter\_whisper\_builds}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_an\_unrequested\_parameter\_is\_not\_sent}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_a\_requested\_parameter\_is\_sent}}$$ $$\textcolor{#23d18b}{\tt{6}}$$ $$\textcolor{#23d18b}{\tt{6}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_undeclared\_parameters\_are\_refused}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_no\_operation\_sends\_a\_spec\_default\_the\_client\_never\_set}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_return\_value\_matches\_the\_published\_client}}$$ $$\textcolor{#23d18b}{\tt{84}}$$ $$\textcolor{#23d18b}{\tt{84}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_error\_handling\_matches\_the\_published\_client}}$$ $$\textcolor{#23d18b}{\tt{70}}$$ $$\textcolor{#23d18b}{\tt{70}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_whisper\_poll\_loop\_matches\_the\_published\_client}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_transport\_errors\_are\_translated}}$$ $$\textcolor{#23d18b}{\tt{13}}$$ $$\textcolor{#23d18b}{\tt{13}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_no\_httpx\_failure\_escapes\_untranslated}}$$ $$\textcolor{#23d18b}{\tt{19}}$$ $$\textcolor{#23d18b}{\tt{19}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_translation\_decides\_what\_gets\_retried}}$$ $$\textcolor{#23d18b}{\tt{6}}$$ $$\textcolor{#23d18b}{\tt{6}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_a\_connect\_timeout\_is\_still\_a\_connection\_error}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_translated\_errors\_keep\_the\_original\_cause}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_transport\_failures\_are\_still\_retried}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_a\_retried\_upload\_replays\_the\_whole\_body}}$$ $$\textcolor{#23d18b}{\tt{3}}$$ $$\textcolor{#23d18b}{\tt{3}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_redirects\_are\_followed}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_the\_request\_timeout\_reaches\_the\_transport}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_the\_deadline\_still\_caps\_each\_attempt}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_the\_deadline\_still\_stops\_retries}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_a\_malformed\_api\_key\_is\_not\_reported\_as\_a\_network\_failure}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_a\_malformed\_base\_url\_is\_translated}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_a\_call\_on\_a\_closed\_transport\_raises\_the\_documented\_exception}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_the\_transport\_is\_built\_once\_under\_concurrent\_first\_calls}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_acquiring\_the\_transport\_never\_returns\_a\_cleared\_handle}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_a\_stream\_upload\_is\_sent\_streaming\_and\_read\_back}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_a\_body\_with\_no\_declared\_charset\_is\_read\_as\_utf\_8}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_encoding\_is\_applied\_to\_a\_real\_response}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_constructor\_is\_unchanged}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_public\_methods\_are\_unchanged}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_the\_deprecated\_parameter\_resolver\_is\_unchanged}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_get\_highlight\_rect\_is\_unchanged}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_class\_attributes\_are\_unchanged}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_retry\_policy\_attributes\_are\_unchanged}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_defaults\_match\_a\_default\_constructed\_published\_client}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_every\_wrapped\_operation\_is\_covered}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_every\_operation\_declares\_the\_failures\_callers\_actually\_hit}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{tests/unit/compat\_test.py}}$$ $$\textcolor{#23d18b}{\tt{test\_the\_baseline\_is\_the\_released\_client\_unmodified}}$$ $$\textcolor{#23d18b}{\tt{1}}$$ $$\textcolor{#23d18b}{\tt{1}}$$
$$\textcolor{#23d18b}{\tt{TOTAL}}$$ $$\textcolor{#23d18b}{\tt{309}}$$ $$\textcolor{#23d18b}{\tt{309}}$$

@johnyrahul
johnyrahul merged commit 4a02bf6 into main Sep 18, 2026
7 checks passed
@johnyrahul
johnyrahul deleted the spec-sync-hide-internal-params branch September 18, 2026 10:34
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