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.
4.41.11
(fix): Fix backslash escaping in endpoint and websocket docstrings. OpenAPI descriptions containing
backslash sequences like DOMAIN\username now properly escape backslashes to avoid Python
SyntaxError from invalid unicode escape sequences.
4.41.10
(fix): Adds dynamic = ["version"] to pyproject.toml, allowing for uv commands such as uv sync to work out-of-the-box.
4.41.9
(fix): Fix wire test WireMock container lifecycle to be compatible with pytest-xdist parallelization.
The container is now started/stopped using pytest_configure/pytest_unconfigure hooks instead of
a session-scoped fixture, ensuring only the controller process manages the container.
4.41.8
(fix): Fix duplicate field names in discriminated union types.
4.41.7
(fix): Fix paginated response handling when response type is optional or nullable.
4.41.6
(fix): Fix Python wire test generation to drop literal-only params and fill in required file arguments so tests match the generated SDK signatures.
4.41.5
(fix): The package_path configuration now works as a suffix within the module hierarchy instead of a prefix.
For example, package_path: sub/dir now generates to src/name/sub/dir/... enabling imports like
from name.sub.dir import Client.
4.41.4
(fix): Ensure UncheckedBaseModel.model_validate in Pydantic v2 respects FieldMetadata(alias=...) so aliased fields validate correctly from JSON.
4.42.0
(feat): Add async support for OAuth token provider. The generated SDK now includes an AsyncOAuthTokenProvider
class that uses asyncio.Lock for async-safe token refresh, alongside the existing sync OAuthTokenProvider
that uses threading.Lock. The async client now uses the async token provider for proper async token management.
4.41.3
(fix): Fix multipart form data requests to omit None values instead of converting them to empty strings.
This prevents httpx from sending empty strings for optional parameters that should be absent.
4.41.2
(fix): More fixes and improvements to wire tests.
4.41.1
(fix): More fixes and improvements to wire tests.
4.41.0
(feat): package_path: sub/directory generates the SDK into the specified subdirectory.
Only top-level concerns (pyproject.toml, README.md, etc.) are exempt.
4.40.0
(feat): Add support for X-RateLimit-Reset header
Retry strategy matches other SDKs (1s initial delay, 60s max delay).
4.39.2
(fix): More fixes and improvements to wire tests.
4.39.1
(fix): Various fixes and improvements to wire tests.
4.39.0
(feat): Add environment_class_name config option to customize the environment class name. Default remains {ClientName}Environment.