Skip to content

Implement Python SDK runtime and integration suite - #187

Merged
longquanzheng merged 5 commits into
mainfrom
codex/python-sdk-v1
Aug 7, 2026
Merged

Implement Python SDK runtime and integration suite#187
longquanzheng merged 5 commits into
mainfrom
codex/python-sdk-v1

Conversation

@longquanzheng

Copy link
Copy Markdown
Contributor

Summary

  • implement the synchronous Python Client, Worker, Registry, Context, codecs, and gRPC runtime
  • expose the shared Rust blob cache through a focused PyO3 binding
  • port all 58 Java integration scenarios, workflows, and assertions into sdk-python/tests/integ
  • run Python SDK integration CI against dexcli dev
  • migrate Python protobuf generation and project workflows to uv

Rationale

The Python SDK now follows the host-native architecture: workflow execution and transport remain Python-native, while Rust is limited to the shared blob-cache implementation. The integration suite mirrors the established Java behavior to keep SDK semantics aligned.

User impact

Python applications can use strongly typed, synchronous Flow, Step, and RPC contracts with a working Client and Worker against Dex. Async handlers are rejected during registry validation.

Validation

  • UV_CACHE_DIR=/tmp/dex-python-sdk-uv-cache ./run-integration-tests.sh — 58 passed
  • uv run --frozen pytest -q tests/test_contracts.py — 15 passed
  • uv run --frozen mypy --strict tests/typecheck_contracts.py tests/integ
  • uv run --frozen pyright tests/typecheck_contracts.py tests/integ
  • cargo test -p dex-blob-cache-python
  • cargo clippy -p dex-blob-cache-python --all-targets -- -D warnings
  • cargo fmt --all --check

@longquanzheng
longquanzheng marked this pull request as ready for review August 7, 2026 06:06
@longquanzheng
longquanzheng merged commit d525df8 into main Aug 7, 2026
38 checks passed
@longquanzheng
longquanzheng deleted the codex/python-sdk-v1 branch August 7, 2026 17:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant