Defer generated endpoints until API2-owned SDK emitters are ready #61
Description
Why
Kevin decided Python SDK 2.0 ships asyncio over the existing handwritten client surface and a Python 3.12+ floor. Contract-generated endpoints are deferred so API2 owns the SDK emitters instead of maintaining a separate Python-owned contract projection.
Blocked on https://github.com/transloadit/api2/pull/9252 (API2-owned SDK emitters). That work is owned by the existing studio1/~/code/api2 session. Coordinate with that session; do not start a competing emitter or change its claim. There is no promised Python release version for this follow-up.
Recovery snapshot: 8faf570 (the last #57 head before the 2.0 scope reduction). The complete implementation remains in this commit, including:
scripts/generate_endpoints.py,transloadit/_contract.py, generated blocks in both clients, andcontracts/api2-contract.json.gzplus its lock/hash file.docs/api-coverage.md, generation packaging/attributes, and the offline CI/tox drift check.- The 44-operation projection, contract-selected authentication, raw TUS/SSE transport, capability validation, regression/live tests and devdock examples.
This snapshot is reference material for the upstream-owned emitter work, not a release-ready independent generation architecture.
Acceptance after the upstream dependency is ready:
- API2 owns and emits the Python SDK endpoint projection; avoid a new Python-local contract interpreter.
- Import a reviewed producer revision, prove deterministic generation and installed-package/runtime behavior, and restore meaningful wire/cleanup tests.
- Agree the future public endpoint boundary, including the separate-product routes tracked by Deferred storage, device authorization and OAuth API support #60.
- Run repository checks, council review and Ubuntu/Windows/live CI before proposing a future release.
Release-scope context: #57 stacked on #56. All generation artifacts are removed from 2.0.
🤖 Released by kvz on framework1/python-sdk since 2026-10-11 · resume: codex resume 01a12c04-6ff8-7a91-9987-654db44d852e
Activity
Add asyncio support to the Python SDK (#57)
Release Python SDK 2.0 with asyncio and Python 3.12+ (#56)