-
Notifications
You must be signed in to change notification settings - Fork 314
add support for python 3.13 (vfx platform 2026) #1957
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add support for python 3.13 (vfx platform 2026) #1957
Conversation
Signed-off-by: Roger Nelson <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds support for Python 3.13 in preparation for VFX Platform 2026, which will require Python 3.13. The changes enable building Python 3.13 wheels for the upcoming 0.18 release.
Key changes:
- Updated documentation generation to use
inspect.getdoc()instead of__doc__to handle Python 3.13's default docstring stripping behavior - Added Python 3.13 to CI/CD workflows and package classifiers
- Upgraded Sphinx and myst-parser dependencies to versions compatible with Python 3.13
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/py-opentimelineio/opentimelineio/console/autogen_serialized_datamodel.py | Changed docstring retrieval to use inspect.getdoc() for consistency across Python versions |
| setup.py | Added Python 3.13 classifier to package metadata |
| docs/tutorials/otio-serialized-schema.md | Whitespace-only changes resulting from docstring formatting updates |
| docs/requirements.txt | Updated Sphinx and myst-parser versions for Python 3.13 compatibility |
| .github/workflows/python-package.yml | Added Python 3.13 to test matrix and wheel building configurations |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Signed-off-by: Roger Nelson <[email protected]>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1957 +/- ##
==========================================
+ Coverage 84.11% 85.10% +0.98%
==========================================
Files 198 181 -17
Lines 22241 12768 -9473
Branches 4687 1206 -3481
==========================================
- Hits 18709 10866 -7843
+ Misses 2610 1719 -891
+ Partials 922 183 -739
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 130 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
Signed-off-by: Roger Nelson <[email protected]>
Link the Issue(s) this Pull Request is related to.
Fixes #1930Summarize your change.
This is an attempt to generate python 3.13 wheels for the upcoming 0.18 release. The vfxplatform is moving to python 3.13 for CY2026, so providing a wheel for 3.13 now is ideal for vendors preparing their CY2026 releases.
There were no issues building for 3.13 out of the box. The only small hiccup was that the docstrings as returned by
__doc__are now stripped in 3.13 be default. Thus, updating the documentation results in whitespace changes. In an effort to mitigate this replaced the call to__doc__with a call toinspect.getdocwhich will still do the stripping regardless of the version of python. We will have to live with a change to the whitespacing once, but toggling back and forth between python versions shouldn't generate any further whitespace changes. I'm open to suggestions if there's a better way of doing this.The updates to sphinx and myst are to get a version compatible with python 3.13. Sphnix now auto-detects the html theme, so it was generating a warning about us explicitly selecting it, thus I removed that line.
Reference associated tests.
No new functionality introduced, so existing tests are providing coverage.