added frame range validation

This commit is contained in:
iLLiCiTiT 2021-11-11 12:29:57 +01:00
parent 3402851485
commit 57058f1ea4

View file

@ -0,0 +1,37 @@
import json
import pyblish.api
class ValidateWorkfileData(pyblish.api.ContextPlugin):
"""Validate mark in and out are enabled and it's duration.
Mark In/Out does not have to match frameStart and frameEnd but duration is
important.
"""
label = "Validate Workfile Data"
order = pyblish.api.ValidatorOrder
def process(self, context):
# Data collected in `CollectAvalonEntities`
frame_start = context.data["frameStart"]
frame_end = context.data["frameEnd"]
handle_start = context.data["handleStart"]
handle_end = context.data["handleEnd"]
scene_data = context.data["sceneData"]
scene_mark_in = scene_data["sceneMarkIn"]
scene_mark_out = scene_data["sceneMarkIn"]
expected_range = (
(frame_end - frame_start + 1)
+ handle_start
+ handle_end
)
marks_range = scene_mark_out - scene_mark_in + 1
if expected_range != marks_range:
raise AssertionError((
"Wrong Mark In/Out range."
" Expected range is {} frames got {} frames"
).format(expected_range, marks_range))