Skip to content

v0.29.0

Latest

Choose a tag to compare

@stainless-app stainless-app released this 15 Dec 23:00
bd93afe

0.28.0 (2025-12-15)

Full Changelog: v0.27.0...v0.28.0

Features

Bug Fixes

  • asyncify on non-asyncio runtimes (#51) (9a1d74d)
  • avoid newer type syntax (7658b38)
  • ci: correct conditional (980b910)
  • ci: ensure pip is always available (#65) (fc830b0)
  • ci: release-doctor — report correct token name (6ddb78b)
  • ci: remove publishing patch (#66) (ca14208)
  • client: close streams without requiring full consumption (669e4cf)
  • client: correctly parse binary response | stream (5304250)
  • client: don't send Content-Type header on GET requests (f7a04b5)
  • client: mark some request bodies as optional (25f5f65)
  • compat with Python 3.14 (53fdd97)
  • compat: compat with pydantic<2.8.0 when using additional fields (d792335)
  • compat: update signatures of model_dump and model_dump_json for Pydantic v1 (6ed583e)
  • ensure streams are always closed (c676043)
  • package: support direct resource imports (d8b54e0)
  • parsing: correctly handle nested discriminated unions (f4e309d)
  • parsing: ignore empty metadata (01e34f8)
  • parsing: parse extra field types (167331c)
  • perf: optimize some hot paths (5d2b562)
  • perf: skip traversing types for NotGiven values (8509e29)
  • pydantic v1: more robust ModelField.annotation check (0e19885)
  • tests: fix: tests which call HTTP endpoints directly with the example parameters (8121bc2)
  • types: allow pyright to infer TypedDict types within SequenceNotStr (9c7824f)
  • types: handle more discriminated union shapes (#64) (ea3ea28)

Chores

  • add missing docstrings (16f09b6)
  • add Python 3.14 classifier and testing (75b429e)
  • broadly detect json family of content-type headers (e03af44)
  • bump httpx-aiohttp version to 0.1.9 (802a6ee)
  • ci: add timeout thresholds for CI jobs (0a03092)
  • ci: change upload type (c01d519)
  • ci: enable for pull requests (be36a2d)
  • ci: fix installation instructions (3567715)
  • ci: only run for pushes and fork pull requests (991d685)
  • ci: only use depot for staging repos (f8b4a37)
  • ci: upload sdks to package manager (733ed75)
  • client: minor internal fixes (c1c047d)
  • deps: mypy 1.18.1 has a regression, pin to 1.17 (223b7fc)
  • do not install brew dependencies in ./scripts/bootstrap by default (d9de5e4)
  • docs: grammar improvements (5e2a523)
  • docs: remove reference to rye shell (14db0da)
  • docs: remove unnecessary param examples (00bf3e4)
  • docs: update client docstring (#57) (b93eac9)
  • docs: use environment variables for authentication in code snippets (0e42e5d)
  • internal/tests: avoid race condition with implicit client cleanup (01d946a)
  • internal: add Sequence related utils (9cbe921)
  • internal: avoid errors for isinstance checks on proxies (c86a164)
  • internal: base client updates (70b2439)
  • internal: bummp ruff dependency (#37) (cef604a)
  • internal: bump pinned h11 dep (1ce5781)
  • internal: bump pyright version (6730ab4)
  • internal: bump rye to 0.44.0 (#63) (d0d34fc)
  • internal: change ci workflow machines (c9d8d8d)
  • internal: change default timeout to an int (#35) (f192b6f)
  • internal: codegen related update (f7cd6c7)
  • internal: codegen related update (059575d)
  • internal: codegen related update (#26) (f6008b9)
  • internal: codegen related update (#52) (1663641)
  • internal: codegen related update (#62) (7d8fa4f)
  • internal: detect missing future annotations with ruff (210e641)
  • internal: expand CI branch coverage (f1427b7)
  • internal: fix devcontainers setup (#54) (6b255f1)
  • internal: fix list file params (29a6f87)
  • internal: fix ruff target version (9454556)
  • internal: fix type traversing dictionary params (#46) (3b755e0)
  • internal: grammar fix (it's -> its) (516dd5e)
  • internal: import reformatting (220525f)
  • internal: minor formatting changes (1f27a6e)
  • internal: minor formatting changes (#27) (b58a9f0)
  • internal: minor type handling changes (#47) (de1503e)
  • internal: move mypy configurations to pyproject.toml file (116ded2)
  • internal: properly set pydantic_private (#55) (412ccce)
  • internal: reduce CI branch coverage (31cead5)
  • internal: refactor retries to not use recursion (491a541)
  • internal: remove extra empty newlines (#61) (b299f2e)
  • internal: remove trailing character (#80) (f28f2b7)
  • internal: remove unused http client options forwarding (#58) (da92b87)
  • internal: slight transform perf improvement (#84) (1a6703c)
  • internal: update client tests (#50) (f31aeaf)
  • internal: update comment in script (3f74f9d)
  • internal: update conftest.py (0564fee)
  • internal: update models test (757a2dd)
  • internal: update pydantic dependency (a83362d)
  • internal: update pyright exclude list (ccfaa5f)
  • internal: update pyright settings (442555c)
  • package: drop Python 3.8 support (4d8d0a5)
  • package: mark python 3.13 as supported (b04d1e6)
  • project: add settings file for vscode (f597f95)
  • readme: fix version rendering on pypi (a109225)
  • readme: update badges (c2c73f5)
  • slight wording improvement in README (#85) (4597f85)
  • tests: add tests for httpx client instantiation & proxies (366c38b)
  • tests: run tests in parallel (b9ca684)
  • tests: simplify get_platform test (7364d6f)
  • tests: skip some failing tests on the latest python versions (9eebf62)
  • types: change optional parameter type from NotGiven to Omit (59fe8c6)
  • update @stainless-api/prism-cli to v5.15.0 (37e8a3f)
  • update github action (c2227bb)
  • update lockfile (9170730)
  • update SDK settings (#74) (2097566)

Documentation

  • client: fix httpx.Timeout documentation reference (741b8eb)
  • remove private imports from datetime snippets (25eb634)
  • revise readme docs about nested params (#59) (26a8c1e)
  • update URLs from stainlessapi.com to stainless.com (#56) (fb40ed8)