mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
* Working version * Improve launched app communication * Move imports to methods. * Update tests/integration/hosts/maya/test_publish_in_maya.py Co-authored-by: Roy Nieterau <roy_nieterau@hotmail.com> * Collect errors from process * fix startup scripts arguments * Update openpype/lib/applications.py Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> * Fix application polling * Docstring * Revert stdout and stderr * Revert subprocess.PIPE * Added missed imports If we are moving these because of testing, lets move all of them --------- Co-authored-by: Roy Nieterau <roy_nieterau@hotmail.com> Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Co-authored-by: kalisp <petr.kalis@gmail.com>
47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
import os
|
|
|
|
import pyblish.api
|
|
|
|
from openpype.pipeline import publish
|
|
|
|
|
|
class ExtractOTIOFile(publish.Extractor):
|
|
"""
|
|
Extractor export OTIO file
|
|
"""
|
|
|
|
label = "Extract OTIO file"
|
|
order = pyblish.api.ExtractorOrder - 0.45
|
|
families = ["workfile"]
|
|
hosts = ["resolve", "hiero", "traypublisher"]
|
|
|
|
def process(self, instance):
|
|
# Not all hosts can import this module.
|
|
import opentimelineio as otio
|
|
|
|
if not instance.context.data.get("otioTimeline"):
|
|
return
|
|
# create representation data
|
|
if "representations" not in instance.data:
|
|
instance.data["representations"] = []
|
|
|
|
name = instance.data["name"]
|
|
staging_dir = self.staging_dir(instance)
|
|
|
|
otio_timeline = instance.context.data["otioTimeline"]
|
|
# create otio timeline representation
|
|
otio_file_name = name + ".otio"
|
|
otio_file_path = os.path.join(staging_dir, otio_file_name)
|
|
otio.adapters.write_to_file(otio_timeline, otio_file_path)
|
|
|
|
representation_otio = {
|
|
'name': "otio",
|
|
'ext': "otio",
|
|
'files': otio_file_name,
|
|
"stagingDir": staging_dir,
|
|
}
|
|
|
|
instance.data["representations"].append(representation_otio)
|
|
|
|
self.log.info("Added OTIO file representation: {}".format(
|
|
representation_otio))
|