Skip to content

Conversation

@rogernelson
Copy link
Collaborator

@rogernelson rogernelson commented Oct 23, 2025

Link the Issue(s) this Pull Request is related to.
Fixes #1930

Summarize 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 to inspect.getdoc which 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.

@rogernelson rogernelson requested a review from Copilot October 23, 2025 17:34
Copy link

Copilot AI left a 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.

@codecov-commenter
Copy link

codecov-commenter commented Oct 23, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.10%. Comparing base (c0e97b0) to head (97bb8ba).
⚠️ Report is 79 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            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     
Flag Coverage Δ
py-unittests 85.10% <100.00%> (+0.98%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...timelineio/console/autogen_serialized_datamodel.py 79.10% <100.00%> (+0.58%) ⬆️

... and 130 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 65e5ccf...97bb8ba. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@reinecke reinecke merged commit 8fe0e05 into AcademySoftwareFoundation:main Oct 23, 2025
56 checks passed
@rogernelson rogernelson deleted the dev/nelsonr/py_vfx_platform branch October 23, 2025 19:06
@reinecke reinecke added this to the Public Beta 18 milestone Nov 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants