-
Notifications
You must be signed in to change notification settings - Fork 309
Replace OTIO Core with python-wrapped C++ #540
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
Merged
Merged
Conversation
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
added #pragma once transactional semantics on python collection mutations
…rate (and added test for same).
- In python3, unicode and xrange have been removed. Code was guarded by an if statement, so it wasn't hitting this during testing, but flake8 was still detecting and erroring out on this in python3. Just marking them as noqa for now so that flake8 ignores them.
Catch CXX branch up to latest master
Closed
Codecov Report
@@ Coverage Diff @@
## master #540 +/- ##
==========================================
- Coverage 88.66% 81.28% -7.39%
==========================================
Files 69 72 +3
Lines 7502 2731 -4771
==========================================
- Hits 6652 2220 -4432
+ Misses 850 511 -339
Continue to review full report at Codecov.
|
Bumping beta version in Cxx branch to match master
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR replaces the pure-python core of OpenTimelineIO with python wrapped C++. The functionality should be the same. There are some differences:
float
types for its values. Serialized otio files will see a lot of.0
s added if files are compared before/after this change.Name
field defaults to""
instead ofNone
.metadata
dictionaries are of typeAnyDictionary
, soOrderedDict
s and other similar classes will lose their type when being added to the metadata immediately (instead of being lost on serialization)..children
attribute on container classes.Note that the C++ core does not include support for any of the plugins. Those are still entirely implemented in python. Non-plugin features are present in C++:
.otio
filesMuch like the core python project, the C++ is split into two libraries:
opentime
for manipulating time objects, andopentimelineio
, which has all the functionality of the OpenTimelineIO data structures.This adds some dependencies to the project (managed through Git submodules in the
src/deps
directory). When you sync after this change you'll need to use thegit submodule init
command to sync the dependencies. These dependencies include:pip install .
should still work and invoke cmake correctly under the hood for python only users)This PR also includes some preliminary Swift bindings as well (see src/swift-opentimelineio).
Huge thanks to @davidbaraff who did the port to C++, as well as the python and swift bindings.