From 8e12ef43df359a1aeafc4abb8d78307a8c86edf0 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Thu, 10 Feb 2022 15:28:19 +0100 Subject: [PATCH] flame: add clip segment unpacking method --- openpype/hosts/flame/api/__init__.py | 4 +++- openpype/hosts/flame/api/lib.py | 15 +++++++++++++++ openpype/hosts/flame/api/pipeline.py | 8 +++----- openpype/hosts/flame/plugins/load/load_clip.py | 4 +++- yarn.lock | 4 ++++ 5 files changed, 28 insertions(+), 7 deletions(-) create mode 100644 yarn.lock diff --git a/openpype/hosts/flame/api/__init__.py b/openpype/hosts/flame/api/__init__.py index 2aeb0d9c16..56bbadd2fc 100644 --- a/openpype/hosts/flame/api/__init__.py +++ b/openpype/hosts/flame/api/__init__.py @@ -28,7 +28,8 @@ from .lib import ( get_reformated_filename, get_frame_from_filename, get_padding_from_filename, - maintained_object_duplication + maintained_object_duplication, + get_clip_segment ) from .utils import ( setup, @@ -99,6 +100,7 @@ __all__ = [ "get_frame_from_filename", "get_padding_from_filename", "maintained_object_duplication", + "get_clip_segment", # pipeline "install", diff --git a/openpype/hosts/flame/api/lib.py b/openpype/hosts/flame/api/lib.py index f3c918caab..bbb7c38119 100644 --- a/openpype/hosts/flame/api/lib.py +++ b/openpype/hosts/flame/api/lib.py @@ -692,3 +692,18 @@ def maintained_object_duplication(item): finally: # delete the item at the end flame.delete(duplicate) + + +def get_clip_segment(flame_clip): + name = flame_clip.name.get_value() + version = flame_clip.versions[0] + track = version.tracks[0] + segments = track.segments + + if len(segments) < 1: + raise ValueError("Clip `{}` has no segments!".format(name)) + + if len(segments) > 1: + raise ValueError("Clip `{}` has too many segments!".format(name)) + + return segments[0] diff --git a/openpype/hosts/flame/api/pipeline.py b/openpype/hosts/flame/api/pipeline.py index 21cb7422de..fa007e63af 100644 --- a/openpype/hosts/flame/api/pipeline.py +++ b/openpype/hosts/flame/api/pipeline.py @@ -69,7 +69,7 @@ def uninstall(): log.info("OpenPype Flame host uninstalled ...") -def containerise(flame_clip, +def containerise(flame_clip_segment, name, namespace, context, @@ -91,11 +91,9 @@ def containerise(flame_clip, log.debug("_ data_imprint: {}".format(data_imprint)) - segment = flame_clip.versions[-1].tracks[-1].segments[-1] + set_segment_data_marker(flame_clip_segment, data_imprint) - set_segment_data_marker(segment, data_imprint) - - return flame_clip + return True def ls(): diff --git a/openpype/hosts/flame/plugins/load/load_clip.py b/openpype/hosts/flame/plugins/load/load_clip.py index 112571bf09..23598cdb27 100644 --- a/openpype/hosts/flame/plugins/load/load_clip.py +++ b/openpype/hosts/flame/plugins/load/load_clip.py @@ -97,8 +97,10 @@ class LoadClip(opfapi.ClipLoader): "objectName": clip_name }) + opc_segment = opfapi.get_clip_segment(opc) + return opfapi.containerise( - opc, + opc_segment, name, namespace, context, self.__class__.__name__, data_imprint) diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000000..fb57ccd13a --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + +