From 637862f22d379c6a328bff6cb96580b0f4048df2 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Wed, 6 Nov 2019 15:51:32 +0100 Subject: [PATCH 01/10] fix(nuke): create plugin correct way of working with families --- pype/nuke/__init__.py | 1 + pype/nuke/lib.py | 9 +++++-- pype/nuke/plugin.py | 14 ++++++++++ pype/plugins/nuke/create/create_write.py | 33 ++++++++---------------- 4 files changed, 33 insertions(+), 24 deletions(-) create mode 100644 pype/nuke/plugin.py diff --git a/pype/nuke/__init__.py b/pype/nuke/__init__.py index 42ca633e40..84beeaf89c 100644 --- a/pype/nuke/__init__.py +++ b/pype/nuke/__init__.py @@ -82,6 +82,7 @@ def reload_config(): "{}.nuke.actions".format(AVALON_CONFIG), "{}.nuke.templates".format(AVALON_CONFIG), "{}.nuke.menu".format(AVALON_CONFIG), + "{}.nuke.plugin".format(AVALON_CONFIG), "{}.nuke.lib".format(AVALON_CONFIG), ): log.info("Reloading module: {}...".format(module)) diff --git a/pype/nuke/lib.py b/pype/nuke/lib.py index 28e813c449..69416dd370 100644 --- a/pype/nuke/lib.py +++ b/pype/nuke/lib.py @@ -174,8 +174,13 @@ def format_anatomy(data): anatomy = get_anatomy() log.debug("__ anatomy.templates: {}".format(anatomy.templates)) - # TODO: perhaps should be in try! - padding = int(anatomy.templates['render']['padding']) + try: + padding = int(anatomy.templates['render']['padding']) + except KeyError as e: + log.error("`padding` key is not in `render` " + "Anatomy template. Please, add it there and restart " + "the pipeline (padding: \"4\"): `{}`".format(e)) + version = data.get("version", None) if not version: file = script_name() diff --git a/pype/nuke/plugin.py b/pype/nuke/plugin.py new file mode 100644 index 0000000000..d4b5110d6e --- /dev/null +++ b/pype/nuke/plugin.py @@ -0,0 +1,14 @@ +import re +import avalon.api +import avalon.nuke +from pype import api as pype +from pypeapp import config + +class PypeCreator(avalon.nuke.pipeline.Creator): + """Pype Nuke Creator class wrapper + """ + def __init__(self, *args, **kwargs): + super(PypeCreator, self).__init__(*args, **kwargs) + self.presets = config.get_presets()['plugins']["nuke"]["create"].get( + self.__class__.__name__, {} + ) diff --git a/pype/plugins/nuke/create/create_write.py b/pype/plugins/nuke/create/create_write.py index c3da555259..be1670c055 100644 --- a/pype/plugins/nuke/create/create_write.py +++ b/pype/plugins/nuke/create/create_write.py @@ -3,6 +3,7 @@ import avalon.api import avalon.nuke from pype.nuke.lib import create_write_node from pype import api as pype +from pype.nuke import plugin from pypeapp import config import nuke @@ -10,52 +11,40 @@ import nuke log = pype.Logger().get_logger(__name__, "nuke") - -def subset_to_families(subset, family, families): - subset_sufx = str(subset).replace(family, "") - new_subset = families + subset_sufx - return "{}.{}".format(family, new_subset) - -class CreateWriteRender(avalon.nuke.Creator): +class CreateWriteRender(plugin.PypeCreator): # change this to template preset - preset = "render" + preset = "write" name = "WriteRender" label = "Create Write Render" hosts = ["nuke"] - family = "{}_write".format(preset) - families = preset + family = "render" icon = "sign-out" defaults = ["Main", "Mask"] def __init__(self, *args, **kwargs): super(CreateWriteRender, self).__init__(*args, **kwargs) - self.presets = config.get_presets()['plugins']["nuke"]["create"].get( - self.__class__.__name__, {} - ) self.name = self.data["subset"] data = OrderedDict() - data["family"] = self.family.split("_")[-1] - data["families"] = self.families + data["family"] = self.family + + for k, v in self.data.items(): + if k not in data.keys(): + data.update({k: v}) - {data.update({k: v}) for k, v in self.data.items() - if k not in data.keys()} self.data = data def process(self): - family = self.family - node = 'write' - instance = nuke.toNode(self.data["subset"]) if not instance: write_data = { - "class": node, - "preset": self.preset, + "class": 'write', + "preset": self.family, "avalon": self.data } From fd2e0f8c274b0d70f006cdf4491107d9507f4469 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Wed, 6 Nov 2019 15:52:19 +0100 Subject: [PATCH 02/10] fix(nuke): nuke.templates renamed to nuke.presets - it was still remaining as templates in some modules --- pype/nuke/__init__.py | 2 +- pype/nuke/lib.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pype/nuke/__init__.py b/pype/nuke/__init__.py index 84beeaf89c..a34133c41e 100644 --- a/pype/nuke/__init__.py +++ b/pype/nuke/__init__.py @@ -80,7 +80,7 @@ def reload_config(): for module in ( "{}.api".format(AVALON_CONFIG), "{}.nuke.actions".format(AVALON_CONFIG), - "{}.nuke.templates".format(AVALON_CONFIG), + "{}.nuke.presets".format(AVALON_CONFIG), "{}.nuke.menu".format(AVALON_CONFIG), "{}.nuke.plugin".format(AVALON_CONFIG), "{}.nuke.lib".format(AVALON_CONFIG), diff --git a/pype/nuke/lib.py b/pype/nuke/lib.py index 69416dd370..716e68355f 100644 --- a/pype/nuke/lib.py +++ b/pype/nuke/lib.py @@ -16,7 +16,7 @@ from .presets import ( get_node_colorspace_preset ) -from .templates import ( +from .presets import ( get_anatomy ) # TODO: remove get_anatomy and import directly Anatomy() here From 7bb247528c7d0a39673e1807079f04b2fe114ea3 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Wed, 6 Nov 2019 23:44:17 +0100 Subject: [PATCH 03/10] fix(nuke): didn't reload modules correctly python 27 and 3 supported --- pype/nuke/__init__.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pype/nuke/__init__.py b/pype/nuke/__init__.py index a34133c41e..b7dbf69510 100644 --- a/pype/nuke/__init__.py +++ b/pype/nuke/__init__.py @@ -86,12 +86,15 @@ def reload_config(): "{}.nuke.lib".format(AVALON_CONFIG), ): log.info("Reloading module: {}...".format(module)) + + module = importlib.import_module(module) + try: - module = importlib.import_module(module) - reload(module) - except Exception as e: - log.warning("Cannot reload module: {}".format(e)) importlib.reload(module) + except AttributeError as e: + log.warning("Cannot reload module: {}".format(e)) + reload(module) + def install(): From ba32b5f4a1476fabf33a34d8d8aff1f804951bcf Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Wed, 6 Nov 2019 23:44:48 +0100 Subject: [PATCH 04/10] typo(nuke): removing todo --- pype/nuke/lib.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pype/nuke/lib.py b/pype/nuke/lib.py index 716e68355f..b7ae04d929 100644 --- a/pype/nuke/lib.py +++ b/pype/nuke/lib.py @@ -292,7 +292,6 @@ def create_write_node(name, data, prenodes=None): _data["frame_range"] = data.get("frame_range", None) - # todo: hange this to new way GN = nuke.createNode("Group", "name {}".format(name)) prev_node = None From 2ef74e33cbceb420ed15c2d18b6965e1b69ef520 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Thu, 7 Nov 2019 15:55:43 +0100 Subject: [PATCH 05/10] fix(nuke): overwriting create write function - adding input node to connect to selected node in Create - fixing prenode to be functional if more node before write need to be added [prep for mask/prerender] - `preset` data rewrited to be `families` --- pype/nuke/lib.py | 67 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 46 insertions(+), 21 deletions(-) diff --git a/pype/nuke/lib.py b/pype/nuke/lib.py index b7ae04d929..9030ea43fb 100644 --- a/pype/nuke/lib.py +++ b/pype/nuke/lib.py @@ -217,12 +217,13 @@ def add_button_write_to_read(node): node.addKnob(k) -def create_write_node(name, data, prenodes=None): +def create_write_node(name, data, input=None, prenodes=None): ''' Creating write node which is group node Arguments: name (str): name of node data (dict): data to be imprinted + input (node): selected node to connect to prenodes (list, optional): list of lists, definitions for nodes to be created before write @@ -234,9 +235,9 @@ def create_write_node(name, data, prenodes=None): ("knobName", "knobValue"), ("knobName", "knobValue") ), - ( # list inputs - "firstPrevNodeName", - "secondPrevNodeName" + ( # list outputs + "firstPostNodeName", + "secondPostNodeName" ) ) ] @@ -278,27 +279,44 @@ def create_write_node(name, data, prenodes=None): }) # adding dataflow template + log.debug("nuke_dataflow_writes: `{}`".format(nuke_dataflow_writes)) {_data.update({k: v}) for k, v in nuke_dataflow_writes.items() if k not in ["_id", "_previous"]} - # adding dataflow template + # adding colorspace template + log.debug("nuke_colorspace_writes: `{}`".format(nuke_colorspace_writes)) {_data.update({k: v}) for k, v in nuke_colorspace_writes.items()} _data = avalon.nuke.lib.fix_data_for_node_create(_data) - log.debug(_data) + log.debug("_data: `{}`".format(_data)) - _data["frame_range"] = data.get("frame_range", None) + if "frame_range" in data.keys(): + _data["frame_range"] = data.get("frame_range", None) + log.debug("_data[frame_range]: `{}`".format(_data["frame_range"])) GN = nuke.createNode("Group", "name {}".format(name)) prev_node = None with GN: + connections = list() + if input: + # if connected input node was defined + connections.append({ + "node": input, + "inputName": input.name()}) + prev_node = nuke.createNode( + "Input", "name {}".format(input.name())) + else: + # generic input node connected to nothing + prev_node = nuke.createNode( + "Input", "name {}".format("rgba")) + # creating pre-write nodes `prenodes` if prenodes: - for name, klass, properties, set_input_to in prenodes: + for name, klass, properties, set_output_to in prenodes: # create node now_node = nuke.createNode(klass, "name {}".format(name)) @@ -308,34 +326,41 @@ def create_write_node(name, data, prenodes=None): now_node[k].serValue(str(v)) # connect to previous node - if set_input_to: - if isinstance(set_input_to, (tuple or list)): - for i, node_name in enumerate(set_input_to): - input_node = nuke.toNode(node_name) + if set_output_to: + if isinstance(set_output_to, (tuple or list)): + for i, node_name in enumerate(set_output_to): + input_node = nuke.createNode( + "Input", "name {}".format(node_name)) + connections.append({ + "node": nuke.toNode(node_name), + "inputName": node_name}) now_node.setInput(1, input_node) - elif isinstance(set_input_to, str): - input_node = nuke.toNode(set_input_to) + elif isinstance(set_output_to, str): + input_node = nuke.createNode( + "Input", "name {}".format(node_name)) + connections.append({ + "node": nuke.toNode(set_output_to), + "inputName": set_output_to}) now_node.setInput(0, input_node) else: now_node.setInput(0, prev_node) # swith actual node to previous prev_node = now_node - else: - prev_node = nuke.createNode("Input", "name rgba") # creating write node - now_node = avalon.nuke.lib.add_write_node("inside_{}".format(name), - **_data - ) - write_node = now_node + write_node = now_node = avalon.nuke.lib.add_write_node( + "inside_{}".format(name), + **_data + ) + # connect to previous node now_node.setInput(0, prev_node) # swith actual node to previous prev_node = now_node - now_node = nuke.createNode("Output", "name write") + now_node = nuke.createNode("Output", "name Output1") # connect to previous node now_node.setInput(0, prev_node) From 803936950af79776aa318c550279bda86c462482 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Thu, 7 Nov 2019 15:56:25 +0100 Subject: [PATCH 06/10] fix(nuke): colorspace presets didn't work with families --- pype/nuke/presets.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/pype/nuke/presets.py b/pype/nuke/presets.py index a3f62764c8..e0c12e2671 100644 --- a/pype/nuke/presets.py +++ b/pype/nuke/presets.py @@ -39,8 +39,9 @@ def get_node_dataflow_preset(**kwarg): nuke_dataflow_node = nuke_dataflow_node.get(str(preset), None) # omit < 2.0.0v - for family in families: - nuke_dataflow_node = nuke_dataflow_node.get(str(family), None) + if families: + for family in families: + nuke_dataflow_node = nuke_dataflow_node.get(str(family), None) log.info("Dataflow: {}".format(nuke_dataflow_node)) return nuke_dataflow_node @@ -52,14 +53,22 @@ def get_node_colorspace_preset(**kwarg): log.info(kwarg) host = kwarg.get("host", "nuke") cls = kwarg.get("class", None) - preset = kwarg.get("preset", None) + families = kwarg.get("families", []) + preset = kwarg.get("preset", None) # omit < 2.0.0v + assert any([host, cls]), log.error( "`{}`: Missing mandatory kwargs `host`, `cls`".format(__file__)) nuke_colorspace = get_colorspace_preset().get(str(host), None) nuke_colorspace_node = nuke_colorspace.get(str(cls), None) - if preset: + + if preset: # omit < 2.0.0v nuke_colorspace_node = nuke_colorspace_node.get(str(preset), None) + # omit < 2.0.0v + + if families: + for family in families: + nuke_colorspace_node = nuke_colorspace_node.get(str(family), None) log.info("Colorspace: {}".format(nuke_colorspace_node)) return nuke_colorspace_node From 86ddb924b5f619c737e301f1a275a9714e5c62af Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Thu, 7 Nov 2019 15:59:18 +0100 Subject: [PATCH 07/10] feat(nuke): rewriting create write plugin - self.families and self.nCass for easier applications --- pype/plugins/nuke/create/create_write.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/pype/plugins/nuke/create/create_write.py b/pype/plugins/nuke/create/create_write.py index be1670c055..7dd757dbb9 100644 --- a/pype/plugins/nuke/create/create_write.py +++ b/pype/plugins/nuke/create/create_write.py @@ -1,7 +1,6 @@ from collections import OrderedDict import avalon.api import avalon.nuke -from pype.nuke.lib import create_write_node from pype import api as pype from pype.nuke import plugin from pypeapp import config @@ -11,13 +10,13 @@ import nuke log = pype.Logger().get_logger(__name__, "nuke") + class CreateWriteRender(plugin.PypeCreator): # change this to template preset - preset = "write" - name = "WriteRender" label = "Create Write Render" hosts = ["nuke"] + nClass = "write" family = "render" icon = "sign-out" defaults = ["Main", "Mask"] @@ -29,22 +28,25 @@ class CreateWriteRender(plugin.PypeCreator): data = OrderedDict() - data["family"] = self.family + data["family"] = self.nClass + data["families"] = self.family for k, v in self.data.items(): if k not in data.keys(): data.update({k: v}) self.data = data + self.log.info("_>>_ self.data: '{}'".format(self.data)) def process(self): - + from pype.nuke import lib as pnlib + reload(pnlib) instance = nuke.toNode(self.data["subset"]) if not instance: write_data = { - "class": 'write', - "preset": self.family, + "class": self.nClass, + "families": [self.family], "avalon": self.data } @@ -57,8 +59,14 @@ class CreateWriteRender(plugin.PypeCreator): self.log.info("Adding template path from plugin") write_data.update({ "fpath_template": "{work}/renders/nuke/{subset}/{subset}.{frame}.{ext}"}) + else: + # collect input / outputs + # remove old one + # recreate new + # relinking to collected connections + return - return create_write_node(self.data["subset"], write_data) + return pnlib.create_write_node(self.data["subset"], write_data) class CreateWritePrerender(avalon.nuke.Creator): From 6f5f823e44f861951c3e19644c2554f864c4cd8c Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Thu, 7 Nov 2019 17:23:15 +0100 Subject: [PATCH 08/10] fix(nuke): create_write plugin improvements - selected node operation - what if the node exists already --- pype/plugins/nuke/create/create_write.py | 211 ++++++++++++++--------- 1 file changed, 125 insertions(+), 86 deletions(-) diff --git a/pype/plugins/nuke/create/create_write.py b/pype/plugins/nuke/create/create_write.py index 7dd757dbb9..71b1cd7e13 100644 --- a/pype/plugins/nuke/create/create_write.py +++ b/pype/plugins/nuke/create/create_write.py @@ -36,107 +36,146 @@ class CreateWriteRender(plugin.PypeCreator): data.update({k: v}) self.data = data - self.log.info("_>>_ self.data: '{}'".format(self.data)) + self.log.info("self.data: '{}'".format(self.data)) def process(self): from pype.nuke import lib as pnlib reload(pnlib) + + inputs = [] + outputs = [] instance = nuke.toNode(self.data["subset"]) + selected_node = None - if not instance: - write_data = { - "class": self.nClass, - "families": [self.family], - "avalon": self.data - } + # use selection + if (self.options or {}).get("useSelection"): + nodes = nuke.selectedNodes() - if self.presets.get('fpath_template'): - self.log.info("Adding template path from preset") - write_data.update( - {"fpath_template": self.presets["fpath_template"]} - ) - else: - self.log.info("Adding template path from plugin") - write_data.update({ - "fpath_template": "{work}/renders/nuke/{subset}/{subset}.{frame}.{ext}"}) - else: + assert len(nodes) == 1, self.log.error("Select only one node. The node you want to connect to, or tick off `Use selection`") + + selected_node = nodes[0] + inputs = [selected_node] + outputs = selected_node.dependent() + + if instance: + if (instance.name() in selected_node.name()): + selected_node = instance.dependencies()[0] + + # if node already exist + if instance: # collect input / outputs + inputs = instance.dependencies() + outputs = instance.dependent() + selected_node = inputs[0] # remove old one - # recreate new - # relinking to collected connections - return + nuke.delete(instance) - return pnlib.create_write_node(self.data["subset"], write_data) + # recreate new + write_data = { + "class": self.nClass, + "families": [self.family], + "avalon": self.data + } + if self.presets.get('fpath_template'): + self.log.info("Adding template path from preset") + write_data.update( + {"fpath_template": self.presets["fpath_template"]} + ) + else: + self.log.info("Adding template path from plugin") + write_data.update({ + "fpath_template": "{work}/renders/nuke/{subset}/{subset}.{frame}.{ext}"}) -class CreateWritePrerender(avalon.nuke.Creator): - # change this to template preset - preset = "prerender" + write_node = pnlib.create_write_node( + self.data["subset"], + write_data, + input=selected_node) - name = "WritePrerender" - label = "Create Write Prerender" - hosts = ["nuke"] - family = "{}_write".format(preset) - families = preset - icon = "sign-out" - defaults = ["Main", "Mask"] + self.log.info("### write_node: {}".format(write_node.name())) - def __init__(self, *args, **kwargs): - super(CreateWritePrerender, self).__init__(*args, **kwargs) - self.presets = config.get_presets()['plugins']["nuke"]["create"].get( - self.__class__.__name__, {} - ) + # relinking to collected connections + for i, input in enumerate(inputs): + self.log.info("### i, input: {}, {}".format(i, input.name())) + write_node.setInput(i, input) - data = OrderedDict() + write_node.autoplace() - data["family"] = self.family.split("_")[1] - data["families"] = self.families + for output in outputs: + self.log.info("### output: {}".format(output.name())) + output.setInput(0, write_node) - {data.update({k: v}) for k, v in self.data.items() - if k not in data.keys()} - self.data = data + return True - def process(self): - self.name = self.data["subset"] - - instance = nuke.toNode(self.data["subset"]) - node = 'write' - - if not instance: - write_data = { - "class": node, - "preset": self.preset, - "avalon": self.data - } - - if self.presets.get('fpath_template'): - self.log.info("Adding template path from preset") - write_data.update( - {"fpath_template": self.presets["fpath_template"]} - ) - else: - self.log.info("Adding template path from plugin") - write_data.update({ - "fpath_template": "{work}/prerenders/{subset}/{subset}.{frame}.{ext}"}) - - # get group node - group_node = create_write_node(self.data["subset"], write_data) - - # open group node - group_node.begin() - for n in nuke.allNodes(): - # get write node - if n.Class() in "Write": - write_node = n - group_node.end() - - # linking knobs to group property panel - linking_knobs = ["first", "last", "use_limit"] - for k in linking_knobs: - lnk = nuke.Link_Knob(k) - lnk.makeLink(write_node.name(), k) - lnk.setName(k.replace('_', ' ').capitalize()) - lnk.clearFlag(nuke.STARTLINE) - group_node.addKnob(lnk) - - return +# +# class CreateWritePrerender(avalon.nuke.Creator): +# # change this to template preset +# preset = "prerender" +# +# name = "WritePrerender" +# label = "Create Write Prerender" +# hosts = ["nuke"] +# family = "{}_write".format(preset) +# families = preset +# icon = "sign-out" +# defaults = ["Main", "Mask"] +# +# def __init__(self, *args, **kwargs): +# super(CreateWritePrerender, self).__init__(*args, **kwargs) +# self.presets = config.get_presets()['plugins']["nuke"]["create"].get( +# self.__class__.__name__, {} +# ) +# +# data = OrderedDict() +# +# data["family"] = self.family.split("_")[1] +# data["families"] = self.families +# +# {data.update({k: v}) for k, v in self.data.items() +# if k not in data.keys()} +# self.data = data +# +# def process(self): +# self.name = self.data["subset"] +# +# instance = nuke.toNode(self.data["subset"]) +# node = 'write' +# +# if not instance: +# write_data = { +# "class": node, +# "preset": self.preset, +# "avalon": self.data +# } +# +# if self.presets.get('fpath_template'): +# self.log.info("Adding template path from preset") +# write_data.update( +# {"fpath_template": self.presets["fpath_template"]} +# ) +# else: +# self.log.info("Adding template path from plugin") +# write_data.update({ +# "fpath_template": "{work}/prerenders/{subset}/{subset}.{frame}.{ext}"}) +# +# # get group node +# group_node = create_write_node(self.data["subset"], write_data) +# +# # open group node +# group_node.begin() +# for n in nuke.allNodes(): +# # get write node +# if n.Class() in "Write": +# write_node = n +# group_node.end() +# +# # linking knobs to group property panel +# linking_knobs = ["first", "last", "use_limit"] +# for k in linking_knobs: +# lnk = nuke.Link_Knob(k) +# lnk.makeLink(write_node.name(), k) +# lnk.setName(k.replace('_', ' ').capitalize()) +# lnk.clearFlag(nuke.STARTLINE) +# group_node.addKnob(lnk) +# +# return From 59b4178fda4bedbbe62f86a646f8bb948ff9ecbf Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Thu, 7 Nov 2019 18:10:49 +0100 Subject: [PATCH 09/10] fix(nuke): create read from write - wasn't returning correctly if nothing found in file path --- setup/nuke/nuke_path/write_to_read.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/setup/nuke/nuke_path/write_to_read.py b/setup/nuke/nuke_path/write_to_read.py index 9667dccab6..2cf6598b3b 100644 --- a/setup/nuke/nuke_path/write_to_read.py +++ b/setup/nuke/nuke_path/write_to_read.py @@ -38,7 +38,7 @@ def evaluate_filepath_new(k_value, k_eval, project_dir, first_frame): filepath = os.path.abspath(filepath) except Exception as E: log.error("Cannot create Read node. Perhaps it needs to be rendered first :) Error: `{}`".format(E)) - return + return None filepath = filepath.replace('\\', '/') current_frame = re.findall(r'\d+', filepath)[-1] @@ -114,12 +114,16 @@ def write_to_read(gn): n = group_writes[0] if n.knob('file') is not None: - myfiletranslated, firstFrame, lastFrame = evaluate_filepath_new( + file_path_new = evaluate_filepath_new( n.knob('file').getValue(), n.knob('file').evaluate(), project_dir, comp_start ) + if not file_path_new: + return + + myfiletranslated, firstFrame, lastFrame = file_path_new # get node data ndata = { 'filepath': myfiletranslated, From 6ae508d383d703304821e39722ce78f81cebe294 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Thu, 7 Nov 2019 19:24:43 +0100 Subject: [PATCH 10/10] typo(nuke): removing prints --- pype/plugins/nuke/create/create_write.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pype/plugins/nuke/create/create_write.py b/pype/plugins/nuke/create/create_write.py index 71b1cd7e13..1634af22ab 100644 --- a/pype/plugins/nuke/create/create_write.py +++ b/pype/plugins/nuke/create/create_write.py @@ -92,17 +92,13 @@ class CreateWriteRender(plugin.PypeCreator): write_data, input=selected_node) - self.log.info("### write_node: {}".format(write_node.name())) - # relinking to collected connections for i, input in enumerate(inputs): - self.log.info("### i, input: {}, {}".format(i, input.name())) write_node.setInput(i, input) write_node.autoplace() for output in outputs: - self.log.info("### output: {}".format(output.name())) output.setInput(0, write_node) return True