From c0742cffaf78f9d9405c61e10bb1944e2a1b1b80 Mon Sep 17 00:00:00 2001 From: jezschaj Date: Thu, 25 Apr 2019 15:33:52 +0200 Subject: [PATCH] fix(nuke): loading Anatomy and Colorspace, Dataflow with pype2 way --- pype/nuke/lib.py | 33 ++++++++++++++++++--------------- pype/nuke/templates.py | 14 ++++++++------ 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/pype/nuke/lib.py b/pype/nuke/lib.py index cc1ff5bfa7..46b1d6e4c8 100644 --- a/pype/nuke/lib.py +++ b/pype/nuke/lib.py @@ -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) diff --git a/pype/nuke/templates.py b/pype/nuke/templates.py index 4be350cbcb..b3de6970d0 100644 --- a/pype/nuke/templates.py +++ b/pype/nuke/templates.py @@ -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