4.46.3
(fix): Fix empty request body issue where endpoints with all-optional fields would send an empty
body instead of {}. When an endpoint has a request body type but all fields are optional,
the SDK now correctly sends {} as valid JSON rather than omitting the body entirely.
4.46.2
(fix): Fix handling of newlines in default values for strings when using config.pydantic_config.use_provided_defaults.
4.46.1
(fix): Fix OAuth token handling for optional expires_in field with default fallback.
4.46.0
(feat): FastAPI Python codegen now emits parameter markers via typing.Annotated[...] with standard Python defaults for better FastAPI/Pydantic compatibility.
4.45.10
(fix): Fix retry logic “off-by-two” error. The internal retries counter now starts at 0
instead of 2, and max_retries defaults to 2 when not specified. This ensures users
get the expected number of retries (2 by default, or the configured max_retries value).
4.45.9
(fix): Fix empty query params stripping existing URL query strings. When params and
additional_query_parameters are both empty, httpx now receives params=None instead
of params=[], preserving any query parameters already present in the URL (e.g.,
pagination cursors like ?after=123).
4.45.8
(fix): Ensures the root client always exposes a headers parameter and forwards it to the underlying ClientWrapper.
4.45.7
(fix): Fix client wrapper instantiation to use the correct bearer token parameter name, preventing incorrect token= references when custom auth parameter names are configured.
4.45.6
(fix): Fix failing wire tests under pytest-xdist by using a single shared WireMock plugin.
4.45.5
(fix): Fix file upload conditional check using wire_value instead of snake_case parameter name,
which caused mypy “name not defined” errors when the API field name differed from the
Python parameter name (e.g., MyFile vs my_file).
4.45.4
(fix): Fix offset pagination to handle None items when calculating next page offset.
4.45.3
(fix): Add return types to reference.md method signatures for consistency with other SDK generators.
4.45.2
(fix): Fix Python wire test generation by schema-based path/body name deconfliction and aligning client class resolution with the SDK’s custom config rules.
4.45.1
(fix): Fix forward ref detection for complex circular type cycles.
4.45.0
(feat): Add coerce_numbers_to_str option to pydantic_config. When enabled, numeric types (int, float, Decimal)
will be coerced to strings during validation. This is useful for APIs that return numeric values as strings.
4.44.2
(fix): Fix enum-typed headers to use .value instead of str() for consistent wire format across
all Python versions. Previously, str(enum) returned the enum name (e.g., Operand.GREATER_THAN)
on Python < 3.11, but the wire value (e.g., >) on Python >= 3.11 with StrEnum.
4.44.1
(fix): Remove oauth-token-override config flag. OAuth token override is now always enabled for OAuth client
credentials flows, allowing users to authenticate with either client_id/client_secret OR a pre-generated
bearer token directly via the token parameter without any configuration.
4.44.0
(feat): Add Python 3.11+ StrEnum compatibility. Generated enums now use StrEnum for Python >= 3.11
and the (str, Enum) mixin for older versions, fixing compatibility issues with Python 3.11’s
stricter enum mixin handling.
4.43.0
(feat): Add OAuth token override support. When oauth-token-override: true is configured, users can authenticate
with either OAuth client credentials or a pre-generated bearer token directly via the token parameter.
4.42.1
(fix): Fix OAuth flow regression where SyncClientWrapper and AsyncClientWrapper required a token parameter.
The token parameter is now optional only for OAuth flows (matching TypeScript’s behavior), while plain
bearer auth continues to require a token when isAuthMandatory is true.