From b998cadd32cfe19ee5f96c18a9fa375b3bcf8931 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20David?= Date: Thu, 22 May 2025 14:10:16 +0200 Subject: [PATCH 1/2] Refactor: Hacky frame management caused by Harmony --- .../publish/abstract_collect_render.py | 53 +++++-------------- 1 file changed, 13 insertions(+), 40 deletions(-) diff --git a/client/ayon_core/pipeline/publish/abstract_collect_render.py b/client/ayon_core/pipeline/publish/abstract_collect_render.py index bd2d76c39c..1af0aaf31d 100644 --- a/client/ayon_core/pipeline/publish/abstract_collect_render.py +++ b/client/ayon_core/pipeline/publish/abstract_collect_render.py @@ -49,10 +49,6 @@ class RenderInstance(object): handleStart = attr.ib(default=None) # start frame handleEnd = attr.ib(default=None) # start frame - # for software (like Harmony) where frame range cannot be set by DB - # handles need to be propagated if exist - ignoreFrameHandleCheck = attr.ib(default=False) - # -------------------- # With default values # metadata @@ -167,44 +163,21 @@ class AbstractCollectRender( "product is not supported" ) - frame_start_render = int(render_instance.frameStart) - frame_end_render = int(render_instance.frameEnd) - # TODO: Refactor hacky frame range workaround below - if (render_instance.ignoreFrameHandleCheck or - int(context.data['frameStartHandle']) == frame_start_render - and int(context.data['frameEndHandle']) == frame_end_render): # noqa: W503, E501 - # only for Harmony where frame range cannot be set by DB - handle_start = context.data['handleStart'] - handle_end = context.data['handleEnd'] - frame_start = context.data['frameStart'] - frame_end = context.data['frameEnd'] - frame_start_handle = context.data['frameStartHandle'] - frame_end_handle = context.data['frameEndHandle'] - elif (hasattr(render_instance, "frameStartHandle") - and hasattr(render_instance, "frameEndHandle")): - handle_start = int(render_instance.handleStart) - handle_end = int(render_instance.handleEnd) - frame_start = int(render_instance.frameStart) - frame_end = int(render_instance.frameEnd) - frame_start_handle = int(render_instance.frameStartHandle) - frame_end_handle = int(render_instance.frameEndHandle) - else: - handle_start = 0 - handle_end = 0 - frame_start = frame_start_render - frame_end = frame_end_render - frame_start_handle = frame_start_render - frame_end_handle = frame_end_render - data = { - "handleStart": handle_start, - "handleEnd": handle_end, - "frameStart": frame_start, - "frameEnd": frame_end, - "frameStartHandle": frame_start_handle, - "frameEndHandle": frame_end_handle, + # Deal with frames + "handleStart": int(render_instance.handleStart), + "handleEnd": int(render_instance.handleEnd), + "frameStart": int(render_instance.frameStart), + "frameEnd": int(render_instance.frameEnd), + "frameStartHandle": int( + getattr( + render_instance, "frameStartHandle", render_instance.frameStart + ) + ), + "frameEndHandle": int( + getattr(render_instance, "frameEndHandle", render_instance.frameEnd) + ), "byFrameStep": int(render_instance.frameStep), - "author": context.data["user"], # Add source to allow tracing back to the scene from # which was submitted originally From 2ef6e68554e1e04973371c8df1d6116048848486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20David?= Date: Thu, 22 May 2025 14:17:10 +0200 Subject: [PATCH 2/2] linting --- .../pipeline/publish/abstract_collect_render.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/client/ayon_core/pipeline/publish/abstract_collect_render.py b/client/ayon_core/pipeline/publish/abstract_collect_render.py index 1af0aaf31d..9177ff8c99 100644 --- a/client/ayon_core/pipeline/publish/abstract_collect_render.py +++ b/client/ayon_core/pipeline/publish/abstract_collect_render.py @@ -171,11 +171,17 @@ class AbstractCollectRender( "frameEnd": int(render_instance.frameEnd), "frameStartHandle": int( getattr( - render_instance, "frameStartHandle", render_instance.frameStart + render_instance, + "frameStartHandle", + render_instance.frameStart, ) ), "frameEndHandle": int( - getattr(render_instance, "frameEndHandle", render_instance.frameEnd) + getattr( + render_instance, + "frameEndHandle", + render_instance.frameEnd, + ) ), "byFrameStep": int(render_instance.frameStep), "author": context.data["user"],