feat: Python 3.14 compatibility, connection retry resilience, ParsingError, raw client improvements#819
Open
fern-api[bot] wants to merge 1 commit intomasterfrom
Open
feat: Python 3.14 compatibility, connection retry resilience, ParsingError, raw client improvements#819fern-api[bot] wants to merge 1 commit intomasterfrom
fern-api[bot] wants to merge 1 commit intomasterfrom
Conversation
55c5532 to
96ebcee
Compare
96ebcee to
3236742
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.
Changes
Python 3.14 Compatibility
pydantic.v1imports incore/pydantic_utilities.py- replaced with stdlibtypingequivalents (get_args,get_origin,is_literal_type,is_union) and inlinedencoders_by_typeto avoid deprecated Pydantic v1 compatibility layer that breaks on Python 3.14Connection Retry Resilience
HttpClientandAsyncHttpClientnow retry onhttpx.ConnectErrorandhttpx.RemoteProtocolError(transient network failures), not just HTTP status codes_retry_timeout_from_retries()for exponential backoff when no response is availablebase_max_retriesparameter on both clientsdataandforce_multipartparameters in retry call paths (previously dropped on retry)New: ParsingError Exception
core/parse_error.pywithParsingErrorclass - raised when server responses fail Pydantic validation, wrapping the originalValidationErrorascauseraw_client.pyfiles now catchValidationErrorand raiseParsingErrorwith status code, headers, and body contextNew: RFC 2822 DateTime Support
Rfc2822DateTimetype andparse_rfc2822_datetimehelper incore/datetime_utils.py"Wed, 02 Oct 2002 13:00:00 GMT") with ISO 8601 fallbackAsyncAuth0 Improvements
async_tokenparameter for async token acquisition (e.g., refreshing tokens via async HTTP client)httpx_aiohttpvia_make_default_async_client()- uses aiohttp transport when available, falls back tohttpx.AsyncClient_default_clients.pymodule withDefaultAioHttpClientandDefaultAsyncHttpxClientRaw Client Updates
jsonable_encoderwithencode_path_paramfor URL path encoding across all raw clientsParsingErrorhandling to all error response pathsType & Documentation Changes
reference.mdAPI documentationwiremock-mappings.jsonwith additional test fixtures