fix(nuke): loading Anatomy and Colorspace, Dataflow with pype2 way

This commit is contained in:
jezschaj 2019-04-25 15:33:52 +02:00
parent 376ec3dedf
commit c0742cffaf
2 changed files with 26 additions and 21 deletions

View file

@ -58,7 +58,8 @@ def writes_version_sync():
node_new_file = node_file.replace(node_version, new_version)
each['file'].setValue(node_new_file)
except Exception as e:
log.debug("Write node: `{}` has no version in path: {}".format(each.name(), e))
log.debug(
"Write node: `{}` has no version in path: {}".format(each.name(), e))
def version_up_script():
@ -74,7 +75,7 @@ def get_render_path(node):
data_preset = {
"class": data['avalon']['family'],
"preset": data['avalon']['families']
}
}
nuke_dataflow_writes = get_dataflow(**data_preset)
nuke_colorspace_writes = get_colorspace(**data_preset)
@ -87,7 +88,8 @@ def get_render_path(node):
})
anatomy_filled = format_anatomy(data)
return anatomy_filled.render.path.replace("\\", "/")
return anatomy_filled["render"]["path"].replace("\\", "/")
def format_anatomy(data):
from .templates import (
@ -95,28 +97,29 @@ def format_anatomy(data):
)
anatomy = get_anatomy()
log.info("__ anatomy.templates: {}".format(anatomy.templates))
# TODO: perhaps should be in try!
padding = anatomy.render.padding
padding = int(anatomy.templates['render']['padding'])
version = data.get("version", None)
if not version:
file = script_name()
data["version"] = pype.get_version_from_path(file)
data.update({
"root": api.Session["AVALON_PROJECTS"],
"subset": data["avalon"]["subset"],
"asset": data["avalon"]["asset"],
"task": str(pype.get_task()).lower(),
"family": data["avalon"]["family"],
"project": {"name": pype.get_project_name(),
"code": pype.get_project_code()},
"representation": data["nuke_dataflow_writes"].file_type,
"representation": data["nuke_dataflow_writes"]["file_type"],
"app": data["application"]["application_dir"],
"hierarchy": pype.get_hierarchy(),
"frame": "#" * padding,
})
# log.info("format_anatomy:anatomy: {}".format(anatomy))
log.info("__ data: {}".format(data))
log.info("__ format_anatomy: {}".format(anatomy.format(data)))
return anatomy.format(data)
@ -141,10 +144,8 @@ def create_write_node(name, data):
except Exception as e:
log.error("problem with resolving anatomy tepmlate: {}".format(e))
log.debug("anatomy_filled.render: {}".format(anatomy_filled.render))
_data = OrderedDict({
"file": str(anatomy_filled.render.path).replace("\\", "/")
"file": str(anatomy_filled["render"]["path"]).replace("\\", "/")
})
# adding dataflow template
@ -161,7 +162,7 @@ def create_write_node(name, data):
log.debug(_data)
_data["frame_range"] = data.get("frame_range", None)
log.info("__ _data3: {}".format(_data))
instance = avalon.nuke.lib.add_write_node(
name,
**_data
@ -170,6 +171,7 @@ def create_write_node(name, data):
add_rendering_knobs(instance)
return instance
def add_rendering_knobs(node):
if "render" not in node.knobs():
knob = nuke.Boolean_Knob("render", "Render")
@ -232,7 +234,8 @@ def set_root_colorspace(root_dict):
# first set OCIO
if nuke.root()["colorManagement"].value() not in str(root_dict["colorManagement"]):
nuke.root()["colorManagement"].setValue(str(root_dict["colorManagement"]))
nuke.root()["colorManagement"].setValue(
str(root_dict["colorManagement"]))
# second set ocio version
if nuke.root()["OCIO_config"].value() not in str(root_dict["OCIO_config"]):
@ -332,7 +335,7 @@ def reset_resolution():
check_format = used_formats[-1]
format_name = "{}_{}".format(
project["name"],
int(used_formats[-1].name()[-1])+1
int(used_formats[-1].name()[-1]) + 1
)
log.info(
"Format exists: {}. "
@ -458,7 +461,7 @@ def get_write_node_template_attr(node):
data_preset = {
"class": data['avalon']['family'],
"preset": data['avalon']['families']
}
}
# get template data
nuke_dataflow_writes = get_dataflow(**data_preset)

View file

@ -15,10 +15,12 @@ def get_dataflow(**kwarg):
assert any([host, cls]), log.error("nuke.templates.get_dataflow():"
"Missing mandatory kwargs `host`, `cls`")
nuke_dataflow = getattr(pype.Dataflow, str(host), None)
nuke_dataflow_node = getattr(nuke_dataflow.nodes, str(cls), None)
nuke_dataflow = pype.Dataflow.get(str(host), None)
nuke_dataflow_nodes = nuke_dataflow.get('nodes', None)
nuke_dataflow_node = nuke_dataflow_nodes.get(str(cls), None)
if preset:
nuke_dataflow_node = getattr(nuke_dataflow_node, str(preset), None)
nuke_dataflow_node = nuke_dataflow_node.get(str(preset), None)
log.info("Dataflow: {}".format(nuke_dataflow_node))
return nuke_dataflow_node
@ -32,10 +34,10 @@ def get_colorspace(**kwarg):
assert any([host, cls]), log.error("nuke.templates.get_colorspace():"
"Missing mandatory kwargs `host`, `cls`")
nuke_colorspace = getattr(pype.Colorspace, str(host), None)
nuke_colorspace_node = getattr(nuke_colorspace, str(cls), None)
nuke_colorspace = pype.Colorspace.get(str(host), None)
nuke_colorspace_node = nuke_colorspace.get(str(cls), None)
if preset:
nuke_colorspace_node = getattr(nuke_colorspace_node, str(preset), None)
nuke_colorspace_node = nuke_colorspace_node.get(str(preset), None)
log.info("Colorspace: {}".format(nuke_colorspace_node))
return nuke_colorspace_node