From ce0d2b8fe16a03be90a917cc666f4dcc5158fb70 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Sat, 8 Oct 2022 21:54:14 +0200 Subject: [PATCH] nuke: adding supporting functions to plugin.py --- openpype/hosts/nuke/api/__init__.py | 6 ++++- openpype/hosts/nuke/api/plugin.py | 37 ++++++++++++++++++++++++++++- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/openpype/hosts/nuke/api/__init__.py b/openpype/hosts/nuke/api/__init__.py index 156b3f0de0..8aaaff43b3 100644 --- a/openpype/hosts/nuke/api/__init__.py +++ b/openpype/hosts/nuke/api/__init__.py @@ -14,7 +14,9 @@ from .plugin import ( NukeWriteCreator, NukeCreatorError, OpenPypeCreator, - get_instance_node + get_instance_node, + get_instance_group_node_childs, + get_colorspace_from_node ) from .pipeline import ( NukeHost, @@ -66,6 +68,8 @@ __all__ = ( "OpenPypeCreator", "NukeHost", "get_instance_node", + "get_instance_group_node_childs", + "get_colorspace_from_node", "ls", diff --git a/openpype/hosts/nuke/api/plugin.py b/openpype/hosts/nuke/api/plugin.py index 193c2e8c2d..45f16b2943 100644 --- a/openpype/hosts/nuke/api/plugin.py +++ b/openpype/hosts/nuke/api/plugin.py @@ -1,5 +1,5 @@ import nuke - +import re import os import sys import six @@ -415,6 +415,41 @@ def get_instance_node(instance): return instance[0] +def get_instance_group_node_childs(instance): + """Return list of instance group node children + + Args: + instance (pyblish.Instance): pyblish instance + + Returns: + list: [nuke.Node] + """ + node = get_instance_node(instance) + + if node.Class() != "Group": + return + + # collect child nodes + child_nodes = [] + # iterate all nodes + for node in nuke.allNodes(group=node): + # add contained nodes to instance's node list + child_nodes.append(node) + + return child_nodes + + +def get_colorspace_from_node(node): + # Add version data to instance + colorspace = node["colorspace"].value() + + # remove default part of the string + if "default (" in colorspace: + colorspace = re.sub(r"default.\(|\)", "", colorspace) + + return colorspace + + def get_review_presets_config(): settings = get_current_project_settings() review_profiles = (