{"owner":"openai","repo":"openai-python","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"files":{"AGENTS.md":"# Repository Guidance\n\n## Generated SDK\n\nMost SDK source is generated from the OpenAI API schema. Follow `CONTRIBUTING.md` before\nchanging generated files. Handwritten policy, automation, tests, and examples\nshould remain small and should not alter exported SDK APIs unless the change\nexplicitly requires it.\n\n## Python version policy\n\n- `requires-python` in `pyproject.toml` is the authoritative technical minimum.\n- `PYTHON_VERSION_POLICY.md` is the human-readable support and release policy.\n- Support every fully released, non-EOL CPython line. A documented grace period\n  may temporarily add the most recently retired line.\n- Keep `requires-python`, classifiers, dependency markers, README requirements,\n  static-analysis targets, `.python-version`, and CI synchronized.\n- Do not combine a minimum-Python change with unrelated SDK or dependency\n  upgrades.\n\n## Changing the minimum Python version\n\n1. Update `pyproject.toml`, `.python-version`, the lock files, README,\n   `CONTRIBUTING.md`, and `PYTHON_VERSION_POLICY.md`.\n2. Remove dependency branches that only served the retired runtime.\n3. Update minimum/current and full-matrix CI coverage.\n4. Build both distributions and validate their `Requires-Python` metadata and\n   old-interpreter rejection behavior.\n5. Add a `## Release note` section to the pull request description naming the\n   new minimum and final compatible SDK release. Do not promise security\n   backports for the old release.\n6. Obtain SDK CODEOWNER approval.\n\nThe deterministic Python policy check proves repository surfaces agree. It\ndoes not decide whether an EOL grace period or floor increase is appropriate.\n\n## Automation map\n\n- `.github/workflows/ci.yml`\n  - On pull requests and branch pushes: lint, build, metadata validation, and\n    tests on the minimum and current stable Python releases.\n  - Nightly and manually: smoke-tests every supported Python release and the\n    allowed-failure prerelease.\n- `.github/workflows/python-version-review.yml`\n  - Monthly on the default branch: snapshots official CPython lifecycle data\n    plus the public PyPI Python-minor distribution and asks Codex for a policy\n    review.\n  - Runs a pinned Codex runtime as an unprivileged user with no command network\n    access and read-only repository permissions.\n  - Codex cannot edit the repository or call GitHub. A separate job with no\n    OpenAI credential opens or refreshes one issue only when action is needed.\n  - Never changes the Python floor or merges code automatically.\n\n## Validation\n\nBefore publishing a Python-version change, run:\n\n```sh\nrye lock --all-features\nuv lock --check\nrye build\nrye run python scripts/check-python-version-policy.py\nrye run python scripts/utils/validate-python-version-wheel.py\npython3.9 scripts/utils/validate-python-version-wheel.py --check-python-39\nrye run python scripts/utils/validate-bedrock-wheel.py\nrye run python scripts/utils/validate-httpx2-wheel.py\n./scripts/lint\n./scripts/test\n```\n\nAlso run the scheduled compatibility matrix before release.\n"}}