Skip to content

feat(regen): update fern-python-sdk to 5.39.3 - #826

Open
GregHolmes wants to merge 8 commits into
mainfrom
gh/sdk-gen-2026-11-04
Open

GregHolmes wants to merge 8 commits into
mainfrom
gh/sdk-gen-2026-11-04

Conversation

@GregHolmes

@GregHolmes GregHolmes commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Regenerate the Python SDK with fernapi/fern-python-sdk 5.39.3.

  • Unknown undiscriminated-union values now remain raw payloads instead of becoming None. Public websocket response unions now type those fallback values as dictionaries. This supersedes the unmerged workaround in fix(listen): preserve unknown v1 and v2 websocket responses #804.
  • Responses returned through with_raw_response() now expose the underlying httpx.Response as .response.
  • httpx.RemoteProtocolError no longer retries by default because the server may already have applied the request. For safely replayable operations, opt in with request_options={"retry_remote_protocol_errors": True}.
  • Added regression coverage for unmatched literal-discriminated union payloads, typed socket fallbacks, and default/opt-in protocol retry behavior.
  • Reapplied required compatibility, transport, credential-redaction, query-encoding, package-export, and wire-coverage patches.
  • Removed the pydantic_utilities.py mypy workaround because Fern now handles its TypeAdapter diagnostic.
  • Preserved explicit api_key=None behavior in the custom client after Fern moved environment lookup into BaseClient.
  • Restored .gitignore coverage-artifact rules and removed all transient .bak files.

Closes

Validation

  • poetry run pytest -rP . - 1147 passed, 4 skipped
  • poetry run ruff check src tests/wire tests/custom/test_http_retry_coverage.py tests/typecheck/compat_aliases.py
  • poetry run mypy src/ tests/typecheck
  • Live raw-response probe against manage.v1.projects.list() - HTTP 200

poetry run ruff check . continues to report existing violations in manual examples and tests/custom/test_transport.py, outside this regeneration.

@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Code Coverage

Package Line Rate Branch Rate Complexity Health
src.deepgram 97% 94% 0 ✔
src.deepgram.agent 100% 100% 0 ✔
src.deepgram.agent.v1 98% 100% 0 ✔
src.deepgram.agent.v1.settings 100% 100% 0 ✔
src.deepgram.agent.v1.settings.think 100% 100% 0 ✔
src.deepgram.agent.v1.settings.think.models 97% 100% 0 ✔
src.deepgram.auth 100% 100% 0 ✔
src.deepgram.auth.v1 100% 100% 0 ✔
src.deepgram.auth.v1.tokens 97% 100% 0 ✔
src.deepgram.core 89% 84% 0 ➖
src.deepgram.errors 100% 100% 0 ✔
src.deepgram.helpers 98% 92% 0 ✔
src.deepgram.listen 100% 100% 0 ✔
src.deepgram.listen.v1 98% 93% 0 ✔
src.deepgram.listen.v1.media 97% 100% 0 ✔
src.deepgram.listen.v2 98% 93% 0 ✔
src.deepgram.manage 100% 100% 0 ✔
src.deepgram.manage.v1 100% 100% 0 ✔
src.deepgram.manage.v1.models 96% 100% 0 ✔
src.deepgram.manage.v1.projects 97% 100% 0 ✔
src.deepgram.manage.v1.projects.billing 100% 100% 0 ✔
src.deepgram.manage.v1.projects.billing.balances 96% 100% 0 ✔
src.deepgram.manage.v1.projects.billing.breakdown 97% 100% 0 ✔
src.deepgram.manage.v1.projects.billing.fields 97% 100% 0 ✔
src.deepgram.manage.v1.projects.billing.purchases 97% 100% 0 ✔
src.deepgram.manage.v1.projects.keys 96% 100% 0 ✔
src.deepgram.manage.v1.projects.members 97% 100% 0 ✔
src.deepgram.manage.v1.projects.members.invites 96% 100% 0 ✔
src.deepgram.manage.v1.projects.members.scopes 96% 100% 0 ✔
src.deepgram.manage.v1.projects.models 96% 100% 0 ✔
src.deepgram.manage.v1.projects.usage 98% 100% 0 ✔
src.deepgram.manage.v1.projects.usage.breakdown 97% 100% 0 ✔
src.deepgram.manage.v1.projects.usage.fields 97% 100% 0 ✔
src.deepgram.read 100% 100% 0 ✔
src.deepgram.read.v1 100% 100% 0 ✔
src.deepgram.read.v1.text 98% 100% 0 ✔
src.deepgram.self_hosted 100% 100% 0 ✔
src.deepgram.self_hosted.v1 100% 100% 0 ✔
src.deepgram.self_hosted.v1.distribution_credentials 96% 100% 0 ✔
src.deepgram.speak 100% 100% 0 ✔
src.deepgram.speak.v1 98% 97% 0 ✔
src.deepgram.speak.v1.audio 91% 80% 0 ✔
src.deepgram.speak.v2 98% 93% 0 ✔
src.deepgram.speak.v2.audio 100% 100% 0 ✔
src.deepgram.voice_agent 100% 100% 0 ✔
src.deepgram.voice_agent.configurations 95% 100% 0 ✔
src.deepgram.voice_agent.variables 95% 100% 0 ✔
Summary 96% (6613 / 6910) 92% (1457 / 1578) 0 ✔

Scope: hand-maintained SDK logic. Fern-generated data models (types/, requests/), package __init__.py files, version.py, and the unused core/http_sse/ scaffolding are excluded — see .coveragerc. Unscoped whole-package coverage is ~70%.

@GregHolmes GregHolmes changed the title chore: SDK regeneration 2026-11-04 feat(regen): update fern-python-sdk to 5.39.3 Nov 4, 2026
@GregHolmes GregHolmes changed the title feat(regen): update fern-python-sdk to 5.39.3 fix(listen): preserve unknown websocket response payloads Nov 4, 2026
@GregHolmes GregHolmes changed the title fix(listen): preserve unknown websocket response payloads feat(core): expose raw responses, retain unknown payloads, and make protocol retries opt-in Nov 4, 2026
@GregHolmes GregHolmes changed the title feat(core): expose raw responses, retain unknown payloads, and make protocol retries opt-in feat(regen): update fern-python-sdk to 5.39.3 Nov 4, 2026

This branch has not been deployed

No deployments
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.

AsyncV2SocketClient.__aiter__ silently yields None for Warning messages (SDK 7.8.1)

1 participant