Add cut_diff example: structural editorial diff between two cuts - #2030
Add cut_diff example: structural editorial diff between two cuts#2030chaoz23 wants to merge 2 commits into
Conversation
|
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2030 +/- ##
=======================================
Coverage 83.25% 83.25%
=======================================
Files 180 180
Lines 13479 13479
Branches 1253 1253
=======================================
Hits 11222 11222
Misses 2085 2085
Partials 172 172
Flags with carried forward coverage won't be shown. Click here to find out more. Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
|
See also: #1922 |
|
Thanks — hadn't seen #1922. That's the ambitious integrated-tool path: an This PR is deliberately narrower and at a different layer: a self-contained Proposal: merge this as an example. If you'd rather hold it, I'll close it — no debate needed. |
1e9ceae to
6766750
Compare
|
Hi maintainers — following up on this example PR (cut_diff: structural editorial diff between two cuts). All checks are passing (build, docs, DCO, EasyCLA). Happy to make any adjustments if you have feedback. Thanks for taking a look! |
|
Hi @chaoz23 - the OpenTimelineIO Technical Steering Committee is actively debating this project's policy for LLM-assisted code contributions. You'll have to wait until we finalize that policy before moving forward with this PR. Thanks for your patience. |
|
Understood, and thanks for the heads-up, I'll wait for the TSC's policy and won't push in the meantime. Whenever it lands, happy to adapt this PR to whatever disclosure/provenance requirements you settle on (the AI-assistance note in the description was intentional on my part, in that spirit). Appreciate the transparency about the process. |
Matches clips by identity (media url + source in-point) rather than position, then classifies added / removed / retimed / moved / shifted. Works across formats via adapters (e.g. EDL vs FCP XML). Exit codes follow diff(1). Signed-off-by: chaoz23 <chaoz23@gmail.com>
…#1922) and issue AcademySoftwareFoundation#26 Signed-off-by: chaoz23 <chaoz23@gmail.com>
6766750 to
eea4a72
Compare
This adds an
examples/cut_diff.pyscript that answers "what changed between cut A and cut B" — which clips were added, removed, retimed, moved, or shifted — in the spirit of existing examples likeconform.pyandshot_detect.py. The OTIO docs list "Shots Added or Removed From The Cut" as a first-class use case; this example implements it.Because both inputs go through adapters, the cuts don't need to share a format — an EDL can be diffed against an FCP XML export of the revision:
Design notes:
target_url+ source in-point), not timeline position — one insertion shifts every downstream timecode, so positional diffing reports everything as changed.--jsonoutput anddiff(1)exit codes for scripting.Validated against sample files from the cmx3600 and fcpx-xml adapter test suites, including hand-modified known-change cases. A packaged version with a test suite and an MCP server lives at chaoz23/otio-diff; this example is self-contained.
🤖 Generated with Claude Code