feat(sdk-python)!: require Python >=3.10#83
Merged
Merged
Conversation
Signed-off-by: Ante Projić <anteprojic@gmail.com>
There was a problem hiding this comment.
Pull request overview
This PR raises the minimum supported Python version to >=3.10 across the Python SDK workspace and all published/generated Python packages, aligning package metadata and the generator postprocess step so regeneration won’t reintroduce Python 3.9 support.
Changes:
- Bump
requires-pythonfrom 3.9 to 3.10 across the root workspace and the six generated Python API clients. - Update the Python SDK package metadata to require Python >=3.10 (and simplify
python-multipartconstraints accordingly). - Regenerate
poetry.lockunder the new Python floor and update the OpenAPI Python clientpostprocess.shto enforce the floor.
Reviewed changes
Copilot reviewed 9 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
pyproject.toml |
Raises workspace requires-python to ^3.10. |
sdk-python/pyproject.toml |
Raises SDK floor to >=3.10,<4.0, simplifies python-multipart constraints, removes 3.9 classifier. |
api-client-python/pyproject.toml |
Raises generated sync client requires-python to >=3.10. |
api-client-python-async/pyproject.toml |
Raises generated async client requires-python to >=3.10. |
analytics-api-client-python/pyproject.toml |
Raises generated analytics sync client requires-python to >=3.10. |
analytics-api-client-python-async/pyproject.toml |
Raises generated analytics async client requires-python to >=3.10. |
toolbox-api-client-python/pyproject.toml |
Raises generated toolbox sync client requires-python to >=3.10. |
toolbox-api-client-python-async/pyproject.toml |
Raises generated toolbox async client requires-python to >=3.10. |
hack/python-client/postprocess.sh |
Enforces requires-python >=3.10 during client postprocessing. |
poetry.lock |
Updates lock resolution/markers for the new Python floor and collapses the prior 3.9 branches. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
… Python >=3.10 Signed-off-by: Ante Projić <anteprojic@gmail.com>
Signed-off-by: Ante Projić <anteprojic@gmail.com>
…right 3.10 Signed-off-by: Ante Projić <anteprojic@gmail.com>
Signed-off-by: Ante Projić <anteprojic@gmail.com>
MDzaja
approved these changes
Jul 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Raises
requires-pythonfrom>=3.9to>=3.10across the published Python packages:sdk-python, all six generated API clients, and the root workspace. The generatorpostprocess.shgets the same floor so regeneration cannot reintroduce 3.9.Why
Every security patch of the SDK's HTTP stack now ships only for Python >=3.10:
While 3.9 stays in
requires-python, Poetry cannot resolve any of those patches for the workspace - which is why Dependabot #8 fails CI and ~85 Python alerts are permanently unfixable. Python 3.9 has been EOL since October 2025.Impact on users
pypistats for the
daytonapackage (last 30 days, n=5.3M downloads): Python 3.9 accounts for 0.01%, and download stats include CI bots. Existing 3.9 installs keep working - pip serves them the last compatible release; they only stop receiving new versions.What this unblocks
Verified:
poetry lockresolves clean,poetry checkunchanged from main (one pre-existing layout warning).Summary by cubic
Raise the minimum Python version to >=3.10 across
sdk-python, all generated API clients, and the workspace to unlock security‑patched HTTP dependencies and stabilize installs. Regenerated process docs to reflect 3.10|union callback types.Dependencies
hack/python-client/postprocess.sh) so regenerated clients don’t reintroduce 3.9.sdk-pythondeps: collapsedpython-multipartto>=0.0.31,<0.1.0; madetyping-extensionsunconditional; setbasedpyrighttarget to 3.10.poetry.lockto resolve patched releases (e.g.,urllib32.7+,aiohttp3.14+) and drop 3.9‑only markers.Migration
Written for commit 6a52abc. Summary will update on new commits.