Skip to content

[8/8] Add Python SDK Ruff formatting#22021

Open
aibrahim-oai wants to merge 7 commits intocodex/python-sdk-mock-integration-testsfrom
codex/python-sdk-format-lint
Open

[8/8] Add Python SDK Ruff formatting#22021
aibrahim-oai wants to merge 7 commits intocodex/python-sdk-mock-integration-testsfrom
codex/python-sdk-format-lint

Conversation

@aibrahim-oai
Copy link
Copy Markdown
Collaborator

@aibrahim-oai aibrahim-oai commented May 10, 2026

Why

The Python SDK needs the same tight formatter/lint loop as the rest of the repo: a safe Ruff autofix pass, Ruff formatting, editor save behavior, and CI checks that catch drift. Without that loop, SDK changes can land with formatting or import ordering that differs from what reviewers and CI expect.

What

  • Add Ruff configuration to sdk/python/pyproject.toml, excluding generated protocol code and notebooks from the normal lint/format pass.
  • Update just fmt so it still formats Rust and also runs Python SDK Ruff autofix and formatting.
  • Add Python SDK CI steps for ruff check and ruff format --check before pytest.
  • Recommend the Ruff VS Code extension and enable Python format/fix/organize-on-save so Cmd+S uses the same tooling.
  • Apply the resulting Ruff formatting to SDK Python files, examples, and the checked-in generated v2_all.py output emitted by the pinned generator.
  • Add a guard test for the just fmt recipe so it keeps working from both Rust and Python SDK working directories.

Stack

  1. [1/8] Pin Python SDK runtime dependency #21891 [1/8] Pin Python SDK runtime dependency
  2. [2/8] Generate Python SDK types from pinned runtime #21893 [2/8] Generate Python SDK types from pinned runtime
  3. [3/8] Run Python SDK tests in CI #21895 [3/8] Run Python SDK tests in CI
  4. [4/8] Define Python SDK public API surface #21896 [4/8] Define Python SDK public API surface
  5. [5/8] Rename Python SDK package to openai-codex #21905 [5/8] Rename Python SDK package to openai-codex
  6. [6/8] Add high-level Python SDK approval mode #21910 [6/8] Add high-level Python SDK approval mode
  7. [7/8] Add Python SDK app-server integration harness #22014 [7/8] Add Python SDK app-server integration harness
  8. This PR [8/8] Add Python SDK Ruff formatting

Verification

  • Added test_root_fmt_recipe_formats_rust_and_python_sdk for the shared format recipe.
  • Ran just fmt after the recipe update.

Co-authored-by: Codex <noreply@openai.com>
@aibrahim-oai
Copy link
Copy Markdown
Collaborator Author

This change is part of the following stack:

Change managed by git-spice.

aibrahim-oai and others added 4 commits May 10, 2026 15:43
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
aibrahim-oai and others added 2 commits May 10, 2026 16:12
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
Comment thread sdk/python/pyproject.toml
testpaths = ["tests"]

[tool.ruff]
target-version = "py310"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should be able to omit this, it'll be inferred from the requires-python.

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.

2 participants