Merged in bugfix/PYPE-700-nk-refactory-loaders (pull request #467)

Bugfix/PYPE-700 nk refactory loaders

Approved-by: Milan Kolar <milan@orbi.tools>
This commit is contained in:
Jakub Ježek 2020-02-01 00:33:08 +00:00 committed by Milan Kolar
commit 01fe6197a7
3 changed files with 56 additions and 52 deletions

View file

@ -374,7 +374,7 @@ def create_write_node(name, data, input=None, prenodes=None):
now_node.setInput(0, prev_node)
# imprinting group node
GN = avalon.nuke.imprint(GN, data["avalon"])
avalon.nuke.imprint(GN, data["avalon"], tab="Pype")
divider = nuke.Text_Knob('')
GN.addKnob(divider)

View file

@ -86,30 +86,26 @@ class LoadMov(api.Loader):
containerise,
viewer_update_and_undo_stop
)
version = context['version']
version_data = version.get("data", {})
orig_first = version_data.get("frameStart", None)
orig_last = version_data.get("frameEnd", None)
orig_first = version_data.get("frameStart")
orig_last = version_data.get("frameEnd")
diff = orig_first - 1
# set first to 1
first = orig_first - diff
last = orig_last - diff
handles = version_data.get("handles", None)
handle_start = version_data.get("handleStart", None)
handle_end = version_data.get("handleEnd", None)
repr_cont = context["representation"]["context"]
# fix handle start and end if none are available
if not handle_start and not handle_end:
handle_start = handles
handle_end = handles
handle_start = version_data.get("handleStart")
handle_end = version_data.get("handleEnd")
colorspace = version_data.get("colorspace")
repr_cont = context["representation"]["context"]
# create handles offset (only to last, because of mov)
last += handle_start + handle_end
# offset should be with handles so it match orig frame range
offset_frame = orig_first + handle_start
offset_frame = orig_first - handle_start
# Fallback to asset name when namespace is None
if namespace is None:
@ -125,7 +121,6 @@ class LoadMov(api.Loader):
# Create the Loader with the filename path set
with viewer_update_and_undo_stop():
# TODO: it might be universal read to img/geo/camera
read_node = nuke.createNode(
"Read",
"name {}".format(read_name)
@ -140,6 +135,9 @@ class LoadMov(api.Loader):
read_node["frame_mode"].setValue("start at")
read_node["frame"].setValue(str(offset_frame))
if colorspace:
read_node["colorspace"].setValue(str(colorspace))
# load nuke presets for Read's colorspace
read_clrs_presets = presets.get_colorspace_preset().get(
"nuke", {}).get("read", {})
@ -199,10 +197,10 @@ class LoadMov(api.Loader):
)
node = nuke.toNode(container['objectName'])
# TODO: prepare also for other Read img/geo/camera
assert node.Class() == "Read", "Must be Read"
file = api.get_representation_path(representation)
file = self.fname.replace("\\", "/")
# Get start frame from version data
version = io.find_one({
@ -220,15 +218,17 @@ class LoadMov(api.Loader):
version_data = version.get("data", {})
orig_first = version_data.get("frameStart", None)
orig_last = version_data.get("frameEnd", None)
orig_first = version_data.get("frameStart")
orig_last = version_data.get("frameEnd")
diff = orig_first - 1
# set first to 1
first = orig_first - diff
last = orig_last - diff
handles = version_data.get("handles", 0)
handle_start = version_data.get("handleStart", 0)
handle_end = version_data.get("handleEnd", 0)
colorspace = version_data.get("colorspace")
if first is None:
log.warning("Missing start frame for updated version"
@ -244,11 +244,11 @@ class LoadMov(api.Loader):
# create handles offset (only to last, because of mov)
last += handle_start + handle_end
# offset should be with handles so it match orig frame range
offset_frame = orig_first + handle_start
offset_frame = orig_first - handle_start
# Update the loader's path whilst preserving some values
with preserve_trim(node):
node["file"].setValue(file["path"])
node["file"].setValue(file)
log.info("__ node['file']: {}".format(node["file"].value()))
# Set the global in to the start frame of the sequence
@ -260,19 +260,22 @@ class LoadMov(api.Loader):
node["frame_mode"].setValue("start at")
node["frame"].setValue(str(offset_frame))
if colorspace:
node["colorspace"].setValue(str(colorspace))
updated_dict = {}
updated_dict.update({
"representation": str(representation["_id"]),
"frameStart": version_data.get("frameStart"),
"frameEnd": version_data.get("frameEnd"),
"version": version.get("name"),
"frameStart": str(first),
"frameEnd": str(last),
"version": str(version.get("name")),
"colorspace": version_data.get("colorspace"),
"source": version_data.get("source"),
"handles": version_data.get("handles"),
"handleStart": version_data.get("handleStart"),
"handleEnd": version_data.get("handleEnd"),
"fps": version_data.get("fps"),
"handleStart": str(handle_start),
"handleEnd": str(handle_end),
"fps": str(version_data.get("fps")),
"author": version_data.get("author"),
"outputDir": version_data.get("outputDir"),
"outputDir": version_data.get("outputDir")
})
# change color of node

View file

@ -95,7 +95,6 @@ class LoadSequence(api.Loader):
self.first_frame = int(nuke.root()["first_frame"].getValue())
self.handle_start = version_data.get("handleStart", 0)
self.handle_start = version_data.get("handleStart", 0)
self.handle_end = version_data.get("handleEnd", 0)
first = version_data.get("frameStart", None)
@ -110,19 +109,17 @@ class LoadSequence(api.Loader):
file = self.fname.replace("\\", "/")
log.info("file: {}\n".format(self.fname))
repr_cont = context["representation"]["context"]
read_name = "Read_{0}_{1}_{2}".format(
repr_cont["asset"],
repr_cont["subset"],
repr_cont["representation"])
if "#" not in file:
frame = repr_cont.get("frame")
padding = len(frame)
file = file.replace(frame, "#"*padding)
read_name = "Read_{0}_{1}_{2}".format(
repr_cont["asset"],
repr_cont["subset"],
repr_cont["representation"])
# Create the Loader with the filename path set
with viewer_update_and_undo_stop():
# TODO: it might be universal read to img/geo/camera
@ -132,8 +129,8 @@ class LoadSequence(api.Loader):
r["file"].setValue(file)
# Set colorspace defined in version data
colorspace = context["version"]["data"].get("colorspace", None)
if colorspace is not None:
colorspace = context["version"]["data"].get("colorspace")
if colorspace:
r["colorspace"].setValue(str(colorspace))
# load nuke presets for Read's colorspace
@ -224,16 +221,20 @@ class LoadSequence(api.Loader):
"""
from avalon.nuke import (
ls_img_sequence,
update_container
)
node = nuke.toNode(container['objectName'])
# TODO: prepare also for other Read img/geo/camera
assert node.Class() == "Read", "Must be Read"
path = api.get_representation_path(representation)
file = ls_img_sequence(path)
repr_cont = representation["context"]
file = self.fname.replace("\\", "/")
if "#" not in file:
frame = repr_cont.get("frame")
padding = len(frame)
file = file.replace(frame, "#"*padding)
# Get start frame from version data
version = io.find_one({
@ -255,8 +256,8 @@ class LoadSequence(api.Loader):
self.handle_start = version_data.get("handleStart", 0)
self.handle_end = version_data.get("handleEnd", 0)
first = version_data.get("frameStart", None)
last = version_data.get("frameEnd", None)
first = version_data.get("frameStart")
last = version_data.get("frameEnd")
if first is None:
log.warning("Missing start frame for updated version"
@ -269,7 +270,7 @@ class LoadSequence(api.Loader):
# Update the loader's path whilst preserving some values
with preserve_trim(node):
node["file"].setValue(file["path"])
node["file"].setValue(file)
log.info("__ node['file']: {}".format(node["file"].value()))
# Set the global in to the start frame of the sequence
@ -282,14 +283,14 @@ class LoadSequence(api.Loader):
updated_dict = {}
updated_dict.update({
"representation": str(representation["_id"]),
"frameStart": version_data.get("frameStart"),
"frameEnd": version_data.get("frameEnd"),
"version": version.get("name"),
"frameStart": str(first),
"frameEnd": str(last),
"version": str(version.get("name")),
"colorspace": version_data.get("colorspace"),
"source": version_data.get("source"),
"handleStart": version_data.get("handleStart"),
"handleEnd": version_data.get("handleEnd"),
"fps": version_data.get("fps"),
"handleStart": str(self.handle_start),
"handleEnd": str(self.handle_end),
"fps": str(version_data.get("fps")),
"author": version_data.get("author"),
"outputDir": version_data.get("outputDir"),
})