From efcb280b7559712b4f05abc6acecb3b71c01153d Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Tue, 17 Jan 2023 11:12:14 +0100 Subject: [PATCH] nuke: improving get view process node --- openpype/hosts/nuke/api/lib.py | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/openpype/hosts/nuke/api/lib.py b/openpype/hosts/nuke/api/lib.py index 67c5a3e34c..b1d76e7d51 100644 --- a/openpype/hosts/nuke/api/lib.py +++ b/openpype/hosts/nuke/api/lib.py @@ -893,17 +893,27 @@ def get_imageio_input_colorspace(filename): def get_view_process_node(): reset_selection() - ipn_orig = None - for v in nuke.allNodes(filter="Viewer"): - ipn = v['input_process_node'].getValue() - if ipn: - if "VIEWER_INPUT" in ipn: - return - ipn_orig = nuke.toNode(ipn) - ipn_orig.setSelected(True) + ipn_node = None + for v_ in nuke.allNodes(filter="Viewer"): + ipn = v_['input_process_node'].getValue() + ipn_node = nuke.toNode(ipn) + if ipn_node: + if ipn == "VIEWER_INPUT": + # since it is set by default we can ignore it + # nobody usually use this + continue + else: + # in case a Viewer node is transfered from + # different workfile with old values + raise NameError(( + "Input process node name '{}' set in " + "Viewer '{}' is does't exists in nodes" + ).format(ipn, v_.name())) - if ipn_orig: - return duplicate_node(ipn_orig) + ipn_node.setSelected(True) + + if ipn_node: + return duplicate_node(ipn_node) def on_script_load():