add condition check on the colorspace

This commit is contained in:
Kayla Man 2024-05-27 21:59:42 +08:00
commit 51f8dbe80c
149 changed files with 229 additions and 106 deletions

View file

@ -54,8 +54,10 @@ MOVED_ADDON_MILESTONE_VERSIONS = {
"clockify": VersionInfo(0, 2, 0), "clockify": VersionInfo(0, 2, 0),
"traypublisher": VersionInfo(0, 2, 0), "traypublisher": VersionInfo(0, 2, 0),
"tvpaint": VersionInfo(0, 2, 0), "tvpaint": VersionInfo(0, 2, 0),
"nuke": VersionInfo(0, 2, 0),
} }
# Inherit from `object` for Python 2 hosts # Inherit from `object` for Python 2 hosts
class _ModuleClass(object): class _ModuleClass(object):
"""Fake module class for storing AYON addons. """Fake module class for storing AYON addons.

View file

@ -354,7 +354,7 @@ def imprint(node, data, tab=None):
Examples: Examples:
``` ```
import nuke import nuke
from ayon_core.hosts.nuke.api import lib from ayon_nuke.api import lib
node = nuke.createNode("NoOp") node = nuke.createNode("NoOp")
data = { data = {
@ -419,7 +419,7 @@ def add_publish_knob(node):
return node return node
@deprecated("ayon_core.hosts.nuke.api.lib.set_node_data") @deprecated("ayon_nuke.api.lib.set_node_data")
def set_avalon_knob_data(node, data=None, prefix="avalon:"): def set_avalon_knob_data(node, data=None, prefix="avalon:"):
"""[DEPRECATED] Sets data into nodes's avalon knob """[DEPRECATED] Sets data into nodes's avalon knob
@ -485,7 +485,7 @@ def set_avalon_knob_data(node, data=None, prefix="avalon:"):
return node return node
@deprecated("ayon_core.hosts.nuke.api.lib.get_node_data") @deprecated("ayon_nuke.api.lib.get_node_data")
def get_avalon_knob_data(node, prefix="avalon:", create=True): def get_avalon_knob_data(node, prefix="avalon:", create=True):
"""[DEPRECATED] Gets a data from nodes's avalon knob """[DEPRECATED] Gets a data from nodes's avalon knob
@ -1028,7 +1028,7 @@ def add_button_render_on_farm(node):
name = "renderOnFarm" name = "renderOnFarm"
label = "Render On Farm" label = "Render On Farm"
value = ( value = (
"from ayon_core.hosts.nuke.api.utils import submit_render_on_farm;" "from ayon_nuke.api.utils import submit_render_on_farm;"
"submit_render_on_farm(nuke.thisNode())" "submit_render_on_farm(nuke.thisNode())"
) )
knob = nuke.PyScript_Knob(name, label, value) knob = nuke.PyScript_Knob(name, label, value)
@ -2469,7 +2469,7 @@ def _launch_workfile_app():
host_tools.show_workfiles(parent=None, on_top=True) host_tools.show_workfiles(parent=None, on_top=True)
@deprecated("ayon_core.hosts.nuke.api.lib.start_workfile_template_builder") @deprecated("ayon_nuke.api.lib.start_workfile_template_builder")
def process_workfile_builder(): def process_workfile_builder():
""" [DEPRECATED] Process workfile builder on nuke start """ [DEPRECATED] Process workfile builder on nuke start

View file

@ -28,7 +28,7 @@ from ayon_core.pipeline import (
) )
from ayon_core.pipeline.workfile import BuildWorkfile from ayon_core.pipeline.workfile import BuildWorkfile
from ayon_core.tools.utils import host_tools from ayon_core.tools.utils import host_tools
from ayon_core.hosts.nuke import NUKE_ROOT_DIR from ayon_nuke import NUKE_ROOT_DIR
from ayon_core.tools.workfile_template_build import open_template_ui from ayon_core.tools.workfile_template_build import open_template_ui
from .lib import ( from .lib import (
@ -188,10 +188,10 @@ def reload_config():
""" """
for module in ( for module in (
"ayon_core.hosts.nuke.api.actions", "ayon_nuke.api.actions",
"ayon_core.hosts.nuke.api.menu", "ayon_nuke.api.menu",
"ayon_core.hosts.nuke.api.plugin", "ayon_nuke.api.plugin",
"ayon_core.hosts.nuke.api.lib", "ayon_nuke.api.lib",
): ):
log.info("Reloading module: {}...".format(module)) log.info("Reloading module: {}...".format(module))

View file

@ -1038,7 +1038,7 @@ def convert_to_valid_instaces():
} }
return mapping[product_type] return mapping[product_type]
from ayon_core.hosts.nuke.api import workio from ayon_nuke.api import workio
task_name = get_current_task_name() task_name = get_current_task_name()

View file

@ -1,12 +1,12 @@
from ayon_core.pipeline import AYON_INSTANCE_ID, AVALON_INSTANCE_ID from ayon_core.pipeline import AYON_INSTANCE_ID, AVALON_INSTANCE_ID
from ayon_core.pipeline.create.creator_plugins import ProductConvertorPlugin from ayon_core.pipeline.create.creator_plugins import ProductConvertorPlugin
from ayon_core.hosts.nuke.api.lib import ( from ayon_nuke.api.lib import (
INSTANCE_DATA_KNOB, INSTANCE_DATA_KNOB,
get_node_data, get_node_data,
get_avalon_knob_data, get_avalon_knob_data,
NODE_TAB_NAME, NODE_TAB_NAME,
) )
from ayon_core.hosts.nuke.api.plugin import convert_to_valid_instaces from ayon_nuke.api.plugin import convert_to_valid_instaces
import nuke import nuke

View file

@ -1,6 +1,6 @@
from nukescripts import autoBackdrop from nukescripts import autoBackdrop
from ayon_core.hosts.nuke.api import ( from ayon_nuke.api import (
NukeCreator, NukeCreator,
maintained_selection, maintained_selection,
select_nodes select_nodes
@ -10,6 +10,8 @@ from ayon_core.hosts.nuke.api import (
class CreateBackdrop(NukeCreator): class CreateBackdrop(NukeCreator):
"""Add Publishable Backdrop""" """Add Publishable Backdrop"""
settings_category = "nuke"
identifier = "create_backdrop" identifier = "create_backdrop"
label = "Nukenodes (backdrop)" label = "Nukenodes (backdrop)"
product_type = "nukenodes" product_type = "nukenodes"

View file

@ -1,10 +1,10 @@
import nuke import nuke
from ayon_core.hosts.nuke.api import ( from ayon_nuke.api import (
NukeCreator, NukeCreator,
NukeCreatorError, NukeCreatorError,
maintained_selection maintained_selection
) )
from ayon_core.hosts.nuke.api.lib import ( from ayon_nuke.api.lib import (
create_camera_node_by_version create_camera_node_by_version
) )
@ -12,6 +12,8 @@ from ayon_core.hosts.nuke.api.lib import (
class CreateCamera(NukeCreator): class CreateCamera(NukeCreator):
"""Add Publishable Camera""" """Add Publishable Camera"""
settings_category = "nuke"
identifier = "create_camera" identifier = "create_camera"
label = "Camera (3d)" label = "Camera (3d)"
product_type = "camera" product_type = "camera"

View file

@ -1,5 +1,5 @@
import nuke import nuke
from ayon_core.hosts.nuke.api import ( from ayon_nuke.api import (
NukeCreator, NukeCreator,
NukeCreatorError, NukeCreatorError,
maintained_selection maintained_selection
@ -9,6 +9,8 @@ from ayon_core.hosts.nuke.api import (
class CreateGizmo(NukeCreator): class CreateGizmo(NukeCreator):
"""Add Publishable Group as gizmo""" """Add Publishable Group as gizmo"""
settings_category = "nuke"
identifier = "create_gizmo" identifier = "create_gizmo"
label = "Gizmo (group)" label = "Gizmo (group)"
product_type = "gizmo" product_type = "gizmo"

View file

@ -1,5 +1,5 @@
import nuke import nuke
from ayon_core.hosts.nuke.api import ( from ayon_nuke.api import (
NukeCreator, NukeCreator,
NukeCreatorError, NukeCreatorError,
maintained_selection maintained_selection
@ -9,6 +9,8 @@ from ayon_core.hosts.nuke.api import (
class CreateModel(NukeCreator): class CreateModel(NukeCreator):
"""Add Publishable Camera""" """Add Publishable Camera"""
settings_category = "nuke"
identifier = "create_model" identifier = "create_model"
label = "Model (3d)" label = "Model (3d)"
product_type = "model" product_type = "model"

View file

@ -1,7 +1,7 @@
import nuke import nuke
import six import six
import sys import sys
from ayon_core.hosts.nuke.api import ( from ayon_nuke.api import (
INSTANCE_DATA_KNOB, INSTANCE_DATA_KNOB,
NukeCreator, NukeCreator,
NukeCreatorError, NukeCreatorError,
@ -15,6 +15,8 @@ from ayon_core.pipeline import (
class CreateSource(NukeCreator): class CreateSource(NukeCreator):
"""Add Publishable Read with source""" """Add Publishable Read with source"""
settings_category = "nuke"
identifier = "create_source" identifier = "create_source"
label = "Source (read)" label = "Source (read)"
product_type = "source" product_type = "source"

View file

@ -11,11 +11,14 @@ from ayon_core.lib import (
UISeparatorDef, UISeparatorDef,
EnumDef EnumDef
) )
from ayon_core.hosts.nuke import api as napi from ayon_nuke import api as napi
from ayon_core.hosts.nuke.api.plugin import exposed_write_knobs from ayon_nuke.api.plugin import exposed_write_knobs
class CreateWriteImage(napi.NukeWriteCreator): class CreateWriteImage(napi.NukeWriteCreator):
settings_category = "nuke"
identifier = "create_write_image" identifier = "create_write_image"
label = "Image (write)" label = "Image (write)"
product_type = "image" product_type = "image"

View file

@ -8,11 +8,14 @@ from ayon_core.pipeline import (
from ayon_core.lib import ( from ayon_core.lib import (
BoolDef BoolDef
) )
from ayon_core.hosts.nuke import api as napi from ayon_nuke import api as napi
from ayon_core.hosts.nuke.api.plugin import exposed_write_knobs from ayon_nuke.api.plugin import exposed_write_knobs
class CreateWritePrerender(napi.NukeWriteCreator): class CreateWritePrerender(napi.NukeWriteCreator):
settings_category = "nuke"
identifier = "create_write_prerender" identifier = "create_write_prerender"
label = "Prerender (write)" label = "Prerender (write)"
product_type = "prerender" product_type = "prerender"

View file

@ -8,11 +8,14 @@ from ayon_core.pipeline import (
from ayon_core.lib import ( from ayon_core.lib import (
BoolDef BoolDef
) )
from ayon_core.hosts.nuke import api as napi from ayon_nuke import api as napi
from ayon_core.hosts.nuke.api.plugin import exposed_write_knobs from ayon_nuke.api.plugin import exposed_write_knobs
class CreateWriteRender(napi.NukeWriteCreator): class CreateWriteRender(napi.NukeWriteCreator):
settings_category = "nuke"
identifier = "create_write_render" identifier = "create_write_render"
label = "Render (write)" label = "Render (write)"
product_type = "render" product_type = "render"

View file

@ -1,11 +1,11 @@
import ayon_api import ayon_api
import ayon_core.hosts.nuke.api as api import ayon_nuke.api as api
from ayon_core.pipeline import ( from ayon_core.pipeline import (
AutoCreator, AutoCreator,
CreatedInstance, CreatedInstance,
) )
from ayon_core.hosts.nuke.api import ( from ayon_nuke.api import (
INSTANCE_DATA_KNOB, INSTANCE_DATA_KNOB,
set_node_data set_node_data
) )
@ -13,6 +13,9 @@ import nuke
class WorkfileCreator(AutoCreator): class WorkfileCreator(AutoCreator):
settings_category = "nuke"
identifier = "workfile" identifier = "workfile"
product_type = "workfile" product_type = "workfile"

View file

@ -1,6 +1,6 @@
from ayon_core.lib import Logger from ayon_core.lib import Logger
from ayon_core.pipeline import InventoryAction from ayon_core.pipeline import InventoryAction
from ayon_core.hosts.nuke.api.lib import set_avalon_knob_data from ayon_nuke.api.lib import set_avalon_knob_data
class RepairOldLoaders(InventoryAction): class RepairOldLoaders(InventoryAction):

View file

@ -1,5 +1,5 @@
from ayon_core.pipeline import InventoryAction from ayon_core.pipeline import InventoryAction
from ayon_core.hosts.nuke.api.command import viewer_update_and_undo_stop from ayon_nuke.api.command import viewer_update_and_undo_stop
class SelectContainers(InventoryAction): class SelectContainers(InventoryAction):

View file

@ -4,7 +4,7 @@
from ayon_core.lib import Logger from ayon_core.lib import Logger
from ayon_core.pipeline import load from ayon_core.pipeline import load
from ayon_core.hosts.nuke.api import lib from ayon_nuke.api import lib
log = Logger.get_logger(__name__) log = Logger.get_logger(__name__)

View file

@ -6,7 +6,7 @@ from ayon_core.pipeline import (
load, load,
get_representation_path, get_representation_path,
) )
from ayon_core.hosts.nuke.api.lib import ( from ayon_nuke.api.lib import (
find_free_space_to_paste_nodes, find_free_space_to_paste_nodes,
maintained_selection, maintained_selection,
reset_selection, reset_selection,
@ -14,8 +14,8 @@ from ayon_core.hosts.nuke.api.lib import (
get_avalon_knob_data, get_avalon_knob_data,
set_avalon_knob_data set_avalon_knob_data
) )
from ayon_core.hosts.nuke.api.command import viewer_update_and_undo_stop from ayon_nuke.api.command import viewer_update_and_undo_stop
from ayon_core.hosts.nuke.api import containerise, update_container from ayon_nuke.api import containerise, update_container
class LoadBackdropNodes(load.LoaderPlugin): class LoadBackdropNodes(load.LoaderPlugin):
@ -25,6 +25,8 @@ class LoadBackdropNodes(load.LoaderPlugin):
representations = {"*"} representations = {"*"}
extensions = {"nk"} extensions = {"nk"}
settings_category = "nuke"
label = "Import Nuke Nodes" label = "Import Nuke Nodes"
order = 0 order = 0
icon = "eye" icon = "eye"

View file

@ -5,12 +5,12 @@ from ayon_core.pipeline import (
load, load,
get_representation_path, get_representation_path,
) )
from ayon_core.hosts.nuke.api import ( from ayon_nuke.api import (
containerise, containerise,
update_container, update_container,
viewer_update_and_undo_stop viewer_update_and_undo_stop
) )
from ayon_core.hosts.nuke.api.lib import ( from ayon_nuke.api.lib import (
maintained_selection maintained_selection
) )
@ -24,6 +24,8 @@ class AlembicCameraLoader(load.LoaderPlugin):
representations = {"*"} representations = {"*"}
extensions = {"abc"} extensions = {"abc"}
settings_category = "nuke"
label = "Load Alembic Camera" label = "Load Alembic Camera"
icon = "camera" icon = "camera"
color = "orange" color = "orange"

View file

@ -12,11 +12,11 @@ from ayon_core.pipeline.colorspace import (
get_imageio_file_rules_colorspace_from_filepath, get_imageio_file_rules_colorspace_from_filepath,
get_current_context_imageio_config_preset, get_current_context_imageio_config_preset,
) )
from ayon_core.hosts.nuke.api.lib import ( from ayon_nuke.api.lib import (
get_imageio_input_colorspace, get_imageio_input_colorspace,
maintained_selection maintained_selection
) )
from ayon_core.hosts.nuke.api import ( from ayon_nuke.api import (
containerise, containerise,
update_container, update_container,
viewer_update_and_undo_stop, viewer_update_and_undo_stop,
@ -26,7 +26,7 @@ from ayon_core.lib.transcoding import (
VIDEO_EXTENSIONS, VIDEO_EXTENSIONS,
IMAGE_EXTENSIONS IMAGE_EXTENSIONS
) )
from ayon_core.hosts.nuke.api import plugin from ayon_nuke.api import plugin
class LoadClip(plugin.NukeLoader): class LoadClip(plugin.NukeLoader):
@ -48,6 +48,8 @@ class LoadClip(plugin.NukeLoader):
ext.lstrip(".") for ext in IMAGE_EXTENSIONS.union(VIDEO_EXTENSIONS) ext.lstrip(".") for ext in IMAGE_EXTENSIONS.union(VIDEO_EXTENSIONS)
) )
settings_category = "nuke"
label = "Load Clip" label = "Load Clip"
order = -20 order = -20
icon = "file-video-o" icon = "file-video-o"
@ -188,14 +190,14 @@ class LoadClip(plugin.NukeLoader):
# we will switch off undo-ing # we will switch off undo-ing
with viewer_update_and_undo_stop(): with viewer_update_and_undo_stop():
read_node["file"].setValue(filepath) read_node["file"].setValue(filepath)
if read_node.Class() == "Read":
self.set_colorspace_to_node( self.set_colorspace_to_node(
read_node, read_node,
filepath, filepath,
project_name, project_name,
version_entity, version_entity,
repre_entity repre_entity
) )
self._set_range_to_node( self._set_range_to_node(
read_node, first, last, start_at_workfile, slate_frames read_node, first, last, start_at_workfile, slate_frames
@ -345,13 +347,14 @@ class LoadClip(plugin.NukeLoader):
# to avoid multiple undo steps for rest of process # to avoid multiple undo steps for rest of process
# we will switch off undo-ing # we will switch off undo-ing
with viewer_update_and_undo_stop(): with viewer_update_and_undo_stop():
self.set_colorspace_to_node( if read_node.Class() == "Read":
read_node, self.set_colorspace_to_node(
filepath, read_node,
project_name, filepath,
version_entity, project_name,
repre_entity version_entity,
) repre_entity
)
self._set_range_to_node(read_node, first, last, start_at_workfile) self._set_range_to_node(read_node, first, last, start_at_workfile)

View file

@ -8,7 +8,7 @@ from ayon_core.pipeline import (
load, load,
get_representation_path, get_representation_path,
) )
from ayon_core.hosts.nuke.api import ( from ayon_nuke.api import (
containerise, containerise,
update_container, update_container,
viewer_update_and_undo_stop viewer_update_and_undo_stop
@ -22,13 +22,14 @@ class LoadEffects(load.LoaderPlugin):
representations = {"*"} representations = {"*"}
extensions = {"json"} extensions = {"json"}
settings_category = "nuke"
label = "Load Effects - nodes" label = "Load Effects - nodes"
order = 0 order = 0
icon = "cc" icon = "cc"
color = "white" color = "white"
ignore_attr = ["useLifetime"] ignore_attr = ["useLifetime"]
def load(self, context, name, namespace, data): def load(self, context, name, namespace, data):
""" """
Loading function to get the soft effects to particular read node Loading function to get the soft effects to particular read node

View file

@ -8,8 +8,8 @@ from ayon_core.pipeline import (
load, load,
get_representation_path, get_representation_path,
) )
from ayon_core.hosts.nuke.api import lib from ayon_nuke.api import lib
from ayon_core.hosts.nuke.api import ( from ayon_nuke.api import (
containerise, containerise,
update_container, update_container,
viewer_update_and_undo_stop viewer_update_and_undo_stop
@ -23,6 +23,8 @@ class LoadEffectsInputProcess(load.LoaderPlugin):
representations = {"*"} representations = {"*"}
extensions = {"json"} extensions = {"json"}
settings_category = "nuke"
label = "Load Effects - Input Process" label = "Load Effects - Input Process"
order = 0 order = 0
icon = "eye" icon = "eye"

View file

@ -5,13 +5,13 @@ from ayon_core.pipeline import (
load, load,
get_representation_path, get_representation_path,
) )
from ayon_core.hosts.nuke.api.lib import ( from ayon_nuke.api.lib import (
maintained_selection, maintained_selection,
get_avalon_knob_data, get_avalon_knob_data,
set_avalon_knob_data, set_avalon_knob_data,
swap_node_with_dependency, swap_node_with_dependency,
) )
from ayon_core.hosts.nuke.api import ( from ayon_nuke.api import (
containerise, containerise,
update_container, update_container,
viewer_update_and_undo_stop viewer_update_and_undo_stop
@ -25,6 +25,8 @@ class LoadGizmo(load.LoaderPlugin):
representations = {"*"} representations = {"*"}
extensions = {"nk"} extensions = {"nk"}
settings_category = "nuke"
label = "Load Gizmo" label = "Load Gizmo"
order = 0 order = 0
icon = "dropbox" icon = "dropbox"

View file

@ -6,14 +6,14 @@ from ayon_core.pipeline import (
load, load,
get_representation_path, get_representation_path,
) )
from ayon_core.hosts.nuke.api.lib import ( from ayon_nuke.api.lib import (
maintained_selection, maintained_selection,
create_backdrop, create_backdrop,
get_avalon_knob_data, get_avalon_knob_data,
set_avalon_knob_data, set_avalon_knob_data,
swap_node_with_dependency, swap_node_with_dependency,
) )
from ayon_core.hosts.nuke.api import ( from ayon_nuke.api import (
containerise, containerise,
update_container, update_container,
viewer_update_and_undo_stop viewer_update_and_undo_stop
@ -27,6 +27,8 @@ class LoadGizmoInputProcess(load.LoaderPlugin):
representations = {"*"} representations = {"*"}
extensions = {"nk"} extensions = {"nk"}
settings_category = "nuke"
label = "Load Gizmo - Input Process" label = "Load Gizmo - Input Process"
order = 0 order = 0
icon = "eye" icon = "eye"

View file

@ -7,10 +7,10 @@ from ayon_core.pipeline import (
load, load,
get_representation_path, get_representation_path,
) )
from ayon_core.hosts.nuke.api.lib import ( from ayon_nuke.api.lib import (
get_imageio_input_colorspace get_imageio_input_colorspace
) )
from ayon_core.hosts.nuke.api import ( from ayon_nuke.api import (
containerise, containerise,
update_container, update_container,
viewer_update_and_undo_stop viewer_update_and_undo_stop
@ -33,9 +33,9 @@ class LoadImage(load.LoaderPlugin):
"image", "image",
} }
representations = {"*"} representations = {"*"}
extensions = set( extensions = set(ext.lstrip(".") for ext in IMAGE_EXTENSIONS)
ext.lstrip(".") for ext in IMAGE_EXTENSIONS
) settings_category = "nuke"
label = "Load Image" label = "Load Image"
order = -10 order = -10

View file

@ -11,6 +11,8 @@ class MatchmoveLoader(load.LoaderPlugin):
representations = {"*"} representations = {"*"}
extensions = {"py"} extensions = {"py"}
settings_category = "nuke"
defaults = ["Camera", "Object"] defaults = ["Camera", "Object"]
label = "Run matchmove script" label = "Run matchmove script"

View file

@ -5,8 +5,8 @@ from ayon_core.pipeline import (
load, load,
get_representation_path, get_representation_path,
) )
from ayon_core.hosts.nuke.api.lib import maintained_selection from ayon_nuke.api.lib import maintained_selection
from ayon_core.hosts.nuke.api import ( from ayon_nuke.api import (
containerise, containerise,
update_container, update_container,
viewer_update_and_undo_stop viewer_update_and_undo_stop
@ -22,6 +22,8 @@ class AlembicModelLoader(load.LoaderPlugin):
representations = {"*"} representations = {"*"}
extensions = {"abc"} extensions = {"abc"}
settings_category = "nuke"
label = "Load Alembic" label = "Load Alembic"
icon = "cube" icon = "cube"
color = "orange" color = "orange"

View file

@ -10,7 +10,7 @@ from ayon_core.pipeline import (
load, load,
get_representation_path, get_representation_path,
) )
from ayon_core.hosts.nuke.api import ( from ayon_nuke.api import (
containerise, containerise,
viewer_update_and_undo_stop, viewer_update_and_undo_stop,
update_container, update_container,
@ -24,6 +24,8 @@ class LoadOcioLookNodes(load.LoaderPlugin):
representations = {"*"} representations = {"*"}
extensions = {"json"} extensions = {"json"}
settings_category = "nuke"
label = "Load OcioLook [nodes]" label = "Load OcioLook [nodes]"
order = 0 order = 0
icon = "cc" icon = "cc"

View file

@ -5,8 +5,8 @@ from ayon_core.pipeline import (
load, load,
get_representation_path, get_representation_path,
) )
from ayon_core.hosts.nuke.api.lib import get_avalon_knob_data from ayon_nuke.api.lib import get_avalon_knob_data
from ayon_core.hosts.nuke.api import ( from ayon_nuke.api import (
containerise, containerise,
update_container, update_container,
viewer_update_and_undo_stop viewer_update_and_undo_stop
@ -20,6 +20,8 @@ class LinkAsGroup(load.LoaderPlugin):
representations = {"*"} representations = {"*"}
extensions = {"nk"} extensions = {"nk"}
settings_category = "nuke"
label = "Load Precomp" label = "Load Precomp"
order = 0 order = 0
icon = "file" icon = "file"

View file

@ -1,6 +1,6 @@
from pprint import pformat from pprint import pformat
import pyblish.api import pyblish.api
from ayon_core.hosts.nuke.api import lib as pnlib from ayon_nuke.api import lib as pnlib
import nuke import nuke
@ -13,6 +13,8 @@ class CollectBackdrops(pyblish.api.InstancePlugin):
hosts = ["nuke"] hosts = ["nuke"]
families = ["nukenodes"] families = ["nukenodes"]
settings_category = "nuke"
def process(self, instance): def process(self, instance):
self.log.debug(pformat(instance.data)) self.log.debug(pformat(instance.data))

View file

@ -2,7 +2,7 @@ import os
import nuke import nuke
import pyblish.api import pyblish.api
from ayon_core.lib import get_version_from_path from ayon_core.lib import get_version_from_path
import ayon_core.hosts.nuke.api as napi import ayon_nuke.api as napi
from ayon_core.pipeline import KnownPublishError from ayon_core.pipeline import KnownPublishError
@ -13,6 +13,8 @@ class CollectContextData(pyblish.api.ContextPlugin):
label = "Collect context data" label = "Collect context data"
hosts = ['nuke'] hosts = ['nuke']
settings_category = "nuke"
def process(self, context): # sourcery skip: avoid-builtin-shadow def process(self, context): # sourcery skip: avoid-builtin-shadow
root_node = nuke.root() root_node = nuke.root()

View file

@ -13,5 +13,7 @@ class CollectFramerate(pyblish.api.ContextPlugin):
"nukeassist" "nukeassist"
] ]
settings_category = "nuke"
def process(self, context): def process(self, context):
context.data["fps"] = nuke.root()["fps"].getValue() context.data["fps"] = nuke.root()["fps"].getValue()

View file

@ -11,6 +11,8 @@ class CollectGizmo(pyblish.api.InstancePlugin):
hosts = ["nuke"] hosts = ["nuke"]
families = ["gizmo"] families = ["gizmo"]
settings_category = "nuke"
def process(self, instance): def process(self, instance):
gizmo_node = instance.data["transientData"]["node"] gizmo_node = instance.data["transientData"]["node"]

View file

@ -13,6 +13,8 @@ class CollectRenderOnFarm(pyblish.api.ContextPlugin):
label = "Collect Render On Farm" label = "Collect Render On Farm"
hosts = ["nuke"] hosts = ["nuke"]
settings_category = "nuke"
def process(self, context): def process(self, context):
if not context.data.get("render_on_farm", False): if not context.data.get("render_on_farm", False):
return return

View file

@ -11,6 +11,8 @@ class CollectModel(pyblish.api.InstancePlugin):
hosts = ["nuke"] hosts = ["nuke"]
families = ["model"] families = ["model"]
settings_category = "nuke"
def process(self, instance): def process(self, instance):
geo_node = instance.data["transientData"]["node"] geo_node = instance.data["transientData"]["node"]

View file

@ -11,6 +11,8 @@ class CollectInstanceData(pyblish.api.InstancePlugin):
label = "Collect Nuke Instance Data" label = "Collect Nuke Instance Data"
hosts = ["nuke", "nukeassist"] hosts = ["nuke", "nukeassist"]
settings_category = "nuke"
# presets # presets
sync_workfile_version_on_families = [] sync_workfile_version_on_families = []

View file

@ -12,6 +12,8 @@ class CollectNukeReads(pyblish.api.InstancePlugin):
hosts = ["nuke", "nukeassist"] hosts = ["nuke", "nukeassist"]
families = ["source"] families = ["source"]
settings_category = "nuke"
def process(self, instance): def process(self, instance):
self.log.debug("checking instance: {}".format(instance)) self.log.debug("checking instance: {}".format(instance))

View file

@ -10,6 +10,8 @@ class CollectSlate(pyblish.api.InstancePlugin):
hosts = ["nuke"] hosts = ["nuke"]
families = ["render"] families = ["render"]
settings_category = "nuke"
def process(self, instance): def process(self, instance):
node = instance.data["transientData"]["node"] node = instance.data["transientData"]["node"]

View file

@ -11,6 +11,8 @@ class CollectWorkfile(pyblish.api.InstancePlugin):
hosts = ['nuke'] hosts = ['nuke']
families = ["workfile"] families = ["workfile"]
settings_category = "nuke"
def process(self, instance): # sourcery skip: avoid-builtin-shadow def process(self, instance): # sourcery skip: avoid-builtin-shadow
script_data = instance.context.data["scriptData"] script_data = instance.context.data["scriptData"]

View file

@ -1,7 +1,7 @@
import os import os
import nuke import nuke
import pyblish.api import pyblish.api
from ayon_core.hosts.nuke import api as napi from ayon_nuke import api as napi
from ayon_core.pipeline import publish from ayon_core.pipeline import publish
@ -14,6 +14,8 @@ class CollectNukeWrites(pyblish.api.InstancePlugin,
hosts = ["nuke", "nukeassist"] hosts = ["nuke", "nukeassist"]
families = ["render", "prerender", "image"] families = ["render", "prerender", "image"]
settings_category = "nuke"
# cache # cache
_write_nodes = {} _write_nodes = {}
_frame_ranges = {} _frame_ranges = {}

View file

@ -5,7 +5,7 @@ import nuke
import pyblish.api import pyblish.api
from ayon_core.pipeline import publish from ayon_core.pipeline import publish
from ayon_core.hosts.nuke.api.lib import ( from ayon_nuke.api.lib import (
maintained_selection, maintained_selection,
reset_selection, reset_selection,
select_nodes select_nodes
@ -25,6 +25,8 @@ class ExtractBackdropNode(publish.Extractor):
hosts = ["nuke"] hosts = ["nuke"]
families = ["nukenodes"] families = ["nukenodes"]
settings_category = "nuke"
def process(self, instance): def process(self, instance):
tmp_nodes = [] tmp_nodes = []
child_nodes = instance.data["transientData"]["childNodes"] child_nodes = instance.data["transientData"]["childNodes"]

View file

@ -6,7 +6,7 @@ import nuke
import pyblish.api import pyblish.api
from ayon_core.pipeline import publish from ayon_core.pipeline import publish
from ayon_core.hosts.nuke.api.lib import maintained_selection from ayon_nuke.api.lib import maintained_selection
class ExtractCamera(publish.Extractor): class ExtractCamera(publish.Extractor):
@ -17,6 +17,8 @@ class ExtractCamera(publish.Extractor):
families = ["camera"] families = ["camera"]
hosts = ["nuke"] hosts = ["nuke"]
settings_category = "nuke"
# presets # presets
write_geo_knobs = [ write_geo_knobs = [
("file_type", "abc"), ("file_type", "abc"),

View file

@ -4,8 +4,8 @@ import nuke
import pyblish.api import pyblish.api
from ayon_core.pipeline import publish from ayon_core.pipeline import publish
from ayon_core.hosts.nuke.api import utils as pnutils from ayon_nuke.api import utils as pnutils
from ayon_core.hosts.nuke.api.lib import ( from ayon_nuke.api.lib import (
maintained_selection, maintained_selection,
reset_selection, reset_selection,
select_nodes select_nodes
@ -23,6 +23,8 @@ class ExtractGizmo(publish.Extractor):
hosts = ["nuke"] hosts = ["nuke"]
families = ["gizmo"] families = ["gizmo"]
settings_category = "nuke"
def process(self, instance): def process(self, instance):
tmp_nodes = [] tmp_nodes = []
orig_grpn = instance.data["transientData"]["node"] orig_grpn = instance.data["transientData"]["node"]

View file

@ -15,6 +15,8 @@ class ExtractRenderOnFarm(pyblish.api.InstancePlugin):
hosts = ["nuke"] hosts = ["nuke"]
families = ["render_on_farm"] families = ["render_on_farm"]
settings_category = "nuke"
def process(self, instance): def process(self, instance):
if not instance.context.data.get("render_on_farm", False): if not instance.context.data.get("render_on_farm", False):
return return

View file

@ -4,7 +4,7 @@ import nuke
import pyblish.api import pyblish.api
from ayon_core.pipeline import publish from ayon_core.pipeline import publish
from ayon_core.hosts.nuke.api.lib import ( from ayon_nuke.api.lib import (
maintained_selection, maintained_selection,
select_nodes select_nodes
) )
@ -18,6 +18,8 @@ class ExtractModel(publish.Extractor):
families = ["model"] families = ["model"]
hosts = ["nuke"] hosts = ["nuke"]
settings_category = "nuke"
# presets # presets
write_geo_knobs = [ write_geo_knobs = [
("file_type", "abc"), ("file_type", "abc"),

View file

@ -1,6 +1,6 @@
import nuke import nuke
import pyblish.api import pyblish.api
from ayon_core.hosts.nuke.api.lib import maintained_selection from ayon_nuke.api.lib import maintained_selection
class CreateOutputNode(pyblish.api.ContextPlugin): class CreateOutputNode(pyblish.api.ContextPlugin):
@ -11,7 +11,9 @@ class CreateOutputNode(pyblish.api.ContextPlugin):
label = 'Output Node Create' label = 'Output Node Create'
order = pyblish.api.ExtractorOrder + 0.4 order = pyblish.api.ExtractorOrder + 0.4
families = ["workfile"] families = ["workfile"]
hosts = ['nuke'] hosts = ["nuke"]
settings_category = "nuke"
def process(self, context): def process(self, context):
# capture selection state # capture selection state

View file

@ -10,7 +10,7 @@ class ExtractOutputDirectory(pyblish.api.InstancePlugin):
label = "Output Directory" label = "Output Directory"
optional = True optional = True
# targets = ["process"] settings_category = "nuke"
def process(self, instance): def process(self, instance):

View file

@ -4,7 +4,7 @@ import shutil
import pyblish.api import pyblish.api
import clique import clique
import nuke import nuke
from ayon_core.hosts.nuke import api as napi from ayon_nuke import api as napi
from ayon_core.pipeline import publish from ayon_core.pipeline import publish
from ayon_core.lib import collect_frames from ayon_core.lib import collect_frames
@ -25,6 +25,8 @@ class NukeRenderLocal(publish.Extractor,
hosts = ["nuke"] hosts = ["nuke"]
families = ["render.local", "prerender.local", "image.local"] families = ["render.local", "prerender.local", "image.local"]
settings_category = "nuke"
def process(self, instance): def process(self, instance):
child_nodes = ( child_nodes = (
instance.data.get("transientData", {}).get("childNodes") instance.data.get("transientData", {}).get("childNodes")

View file

@ -16,6 +16,8 @@ class ExtractReviewData(publish.Extractor):
families = ["review"] families = ["review"]
hosts = ["nuke"] hosts = ["nuke"]
settings_category = "nuke"
def process(self, instance): def process(self, instance):
fpath = instance.data["path"] fpath = instance.data["path"]
ext = os.path.splitext(fpath)[-1][1:] ext = os.path.splitext(fpath)[-1][1:]

View file

@ -2,8 +2,8 @@ import os
import pyblish.api import pyblish.api
from ayon_core.pipeline import publish from ayon_core.pipeline import publish
from ayon_core.hosts.nuke.api import plugin from ayon_nuke.api import plugin
from ayon_core.hosts.nuke.api.lib import maintained_selection from ayon_nuke.api.lib import maintained_selection
class ExtractReviewDataLut(publish.Extractor): class ExtractReviewDataLut(publish.Extractor):
@ -19,6 +19,8 @@ class ExtractReviewDataLut(publish.Extractor):
families = ["review"] families = ["review"]
hosts = ["nuke"] hosts = ["nuke"]
settings_category = "nuke"
def process(self, instance): def process(self, instance):
self.log.debug("Creating staging dir...") self.log.debug("Creating staging dir...")
if "representations" in instance.data: if "representations" in instance.data:

View file

@ -4,8 +4,8 @@ from pprint import pformat
import pyblish.api import pyblish.api
from ayon_core.pipeline import publish from ayon_core.pipeline import publish
from ayon_core.hosts.nuke.api import plugin from ayon_nuke.api import plugin
from ayon_core.hosts.nuke.api.lib import maintained_selection from ayon_nuke.api.lib import maintained_selection
class ExtractReviewIntermediates(publish.Extractor): class ExtractReviewIntermediates(publish.Extractor):
@ -22,6 +22,8 @@ class ExtractReviewIntermediates(publish.Extractor):
families = ["review"] families = ["review"]
hosts = ["nuke"] hosts = ["nuke"]
settings_category = "nuke"
# presets # presets
viewer_lut_raw = None viewer_lut_raw = None
outputs = {} outputs = {}

View file

@ -6,7 +6,9 @@ class ExtractScriptSave(pyblish.api.InstancePlugin):
"""Save current Nuke workfile script""" """Save current Nuke workfile script"""
label = 'Script Save' label = 'Script Save'
order = pyblish.api.ExtractorOrder - 0.1 order = pyblish.api.ExtractorOrder - 0.1
hosts = ['nuke'] hosts = ["nuke"]
settings_category = "nuke"
def process(self, instance): def process(self, instance):

View file

@ -7,7 +7,7 @@ import pyblish.api
import six import six
from ayon_core.pipeline import publish from ayon_core.pipeline import publish
from ayon_core.hosts.nuke.api import ( from ayon_nuke.api import (
maintained_selection, maintained_selection,
duplicate_node, duplicate_node,
get_view_process_node get_view_process_node
@ -27,6 +27,8 @@ class ExtractSlateFrame(publish.Extractor):
families = ["slate"] families = ["slate"]
hosts = ["nuke"] hosts = ["nuke"]
settings_category = "nuke"
# Settings values # Settings values
key_value_mapping = { key_value_mapping = {
"f_submission_note": { "f_submission_note": {

View file

@ -1,4 +1,3 @@
import nuke import nuke
import pyblish.api import pyblish.api
@ -10,7 +9,9 @@ class IncrementScriptVersion(pyblish.api.ContextPlugin):
label = "Increment Script Version" label = "Increment Script Version"
optional = True optional = True
families = ["workfile"] families = ["workfile"]
hosts = ['nuke'] hosts = ["nuke"]
settings_category = "nuke"
def process(self, context): def process(self, context):
if not context.data.get("increment_script_version", True): if not context.data.get("increment_script_version", True):

View file

@ -9,7 +9,9 @@ class RemoveOutputNode(pyblish.api.ContextPlugin):
label = 'Output Node Remove' label = 'Output Node Remove'
order = pyblish.api.IntegratorOrder + 0.4 order = pyblish.api.IntegratorOrder + 0.4
families = ["workfile"] families = ["workfile"]
hosts = ['nuke'] hosts = ["nuke"]
settings_category = "nuke"
def process(self, context): def process(self, context):
try: try:

View file

@ -10,7 +10,7 @@ from ayon_core.pipeline.publish import (
PublishXmlValidationError, PublishXmlValidationError,
OptionalPyblishPluginMixin OptionalPyblishPluginMixin
) )
from ayon_core.hosts.nuke.api import SelectInstanceNodeAction from ayon_nuke.api import SelectInstanceNodeAction
class ValidateCorrectAssetContext( class ValidateCorrectAssetContext(
@ -34,6 +34,8 @@ class ValidateCorrectAssetContext(
] ]
optional = True optional = True
settings_category = "nuke"
@classmethod @classmethod
def apply_settings(cls, project_settings): def apply_settings(cls, project_settings):
"""Apply deprecated settings from project settings. """Apply deprecated settings from project settings.

View file

@ -1,6 +1,6 @@
import nuke import nuke
import pyblish import pyblish
from ayon_core.hosts.nuke import api as napi from ayon_nuke import api as napi
from ayon_core.pipeline.publish import ( from ayon_core.pipeline.publish import (
ValidateContentsOrder, ValidateContentsOrder,
@ -65,6 +65,8 @@ class ValidateBackdrop(
hosts = ["nuke"] hosts = ["nuke"]
actions = [SelectCenterInNodeGraph] actions = [SelectCenterInNodeGraph]
settings_category = "nuke"
def process(self, instance): def process(self, instance):
if not self.is_active(instance.data): if not self.is_active(instance.data):
return return

View file

@ -1,7 +1,7 @@
import pyblish.api import pyblish.api
from ayon_core.pipeline.publish import get_errored_instances_from_context from ayon_core.pipeline.publish import get_errored_instances_from_context
from ayon_core.hosts.nuke.api.lib import link_knobs from ayon_nuke.api.lib import link_knobs
from ayon_core.pipeline.publish import ( from ayon_core.pipeline.publish import (
OptionalPyblishPluginMixin, OptionalPyblishPluginMixin,
PublishValidationError PublishValidationError
@ -52,6 +52,9 @@ class ValidateExposedKnobs(
label = "Validate Exposed Knobs" label = "Validate Exposed Knobs"
actions = [RepairExposedKnobs] actions = [RepairExposedKnobs]
hosts = ["nuke"] hosts = ["nuke"]
settings_category = "nuke"
product_types_mapping = { product_types_mapping = {
"render": "CreateWriteRender", "render": "CreateWriteRender",
"prerender": "CreateWritePrerender", "prerender": "CreateWritePrerender",

View file

@ -1,6 +1,6 @@
import pyblish import pyblish
from ayon_core.pipeline import PublishXmlValidationError from ayon_core.pipeline import PublishXmlValidationError
from ayon_core.hosts.nuke import api as napi from ayon_nuke import api as napi
import nuke import nuke
@ -43,6 +43,8 @@ class ValidateGizmo(pyblish.api.InstancePlugin):
hosts = ["nuke"] hosts = ["nuke"]
actions = [OpenFailedGroupNode] actions = [OpenFailedGroupNode]
settings_category = "nuke"
def process(self, instance): def process(self, instance):
grpn = instance.data["transientData"]["node"] grpn = instance.data["transientData"]["node"]

View file

@ -32,6 +32,8 @@ class ValidateKnobs(pyblish.api.ContextPlugin):
actions = [RepairContextAction] actions = [RepairContextAction]
optional = True optional = True
settings_category = "nuke"
knobs = "{}" knobs = "{}"
def process(self, context): def process(self, context):

View file

@ -1,6 +1,6 @@
import pyblish.api import pyblish.api
from ayon_core.hosts.nuke import api as napi from ayon_nuke import api as napi
from ayon_core.pipeline.publish import RepairAction from ayon_core.pipeline.publish import RepairAction
from ayon_core.pipeline import ( from ayon_core.pipeline import (
PublishXmlValidationError, PublishXmlValidationError,
@ -27,6 +27,8 @@ class ValidateOutputResolution(
hosts = ["nuke"] hosts = ["nuke"]
actions = [RepairAction] actions = [RepairAction]
settings_category = "nuke"
missing_msg = "Missing Reformat node in render group node" missing_msg = "Missing Reformat node in render group node"
resolution_msg = "Reformat is set to wrong format" resolution_msg = "Reformat is set to wrong format"

View file

@ -25,6 +25,8 @@ class ValidateProxyMode(pyblish.api.ContextPlugin):
hosts = ["nuke"] hosts = ["nuke"]
actions = [FixProxyMode] actions = [FixProxyMode]
settings_category = "nuke"
def process(self, context): def process(self, context):
rootNode = nuke.root() rootNode = nuke.root()

View file

@ -54,6 +54,8 @@ class ValidateRenderedFrames(pyblish.api.InstancePlugin):
hosts = ["nuke", "nukestudio"] hosts = ["nuke", "nukestudio"]
actions = [RepairCollectionActionToLocal, RepairCollectionActionToFarm] actions = [RepairCollectionActionToLocal, RepairCollectionActionToFarm]
settings_category = "nuke"
def process(self, instance): def process(self, instance):
node = instance.data["transientData"]["node"] node = instance.data["transientData"]["node"]

View file

@ -5,7 +5,7 @@ from ayon_core.pipeline import (
OptionalPyblishPluginMixin OptionalPyblishPluginMixin
) )
from ayon_core.pipeline.publish import RepairAction from ayon_core.pipeline.publish import RepairAction
from ayon_core.hosts.nuke.api.lib import ( from ayon_nuke.api.lib import (
WorkfileSettings WorkfileSettings
) )
@ -23,6 +23,8 @@ class ValidateScriptAttributes(
optional = True optional = True
actions = [RepairAction] actions = [RepairAction]
settings_category = "nuke"
def process(self, instance): def process(self, instance):
if not self.is_active(instance.data): if not self.is_active(instance.data):
return return

View file

@ -2,7 +2,7 @@ from collections import defaultdict
import pyblish.api import pyblish.api
from ayon_core.pipeline.publish import get_errored_instances_from_context from ayon_core.pipeline.publish import get_errored_instances_from_context
from ayon_core.hosts.nuke.api.lib import ( from ayon_nuke.api.lib import (
get_write_node_template_attr, get_write_node_template_attr,
set_node_knobs_from_settings, set_node_knobs_from_settings,
color_gui_to_int color_gui_to_int
@ -59,6 +59,8 @@ class ValidateNukeWriteNode(
actions = [RepairNukeWriteNodeAction] actions = [RepairNukeWriteNodeAction]
hosts = ["nuke"] hosts = ["nuke"]
settings_category = "nuke"
def process(self, instance): def process(self, instance):
if not self.is_active(instance.data): if not self.is_active(instance.data):
return return

View file

@ -4,7 +4,7 @@ from ayon_core.pipeline.workfile.workfile_template_builder import (
CreatePlaceholderItem, CreatePlaceholderItem,
PlaceholderCreateMixin, PlaceholderCreateMixin,
) )
from ayon_core.hosts.nuke.api.lib import ( from ayon_nuke.api.lib import (
find_free_space_to_paste_nodes, find_free_space_to_paste_nodes,
get_extreme_positions, get_extreme_positions,
get_group_io_nodes, get_group_io_nodes,
@ -18,7 +18,7 @@ from ayon_core.hosts.nuke.api.lib import (
duplicate_node, duplicate_node,
node_tempfile, node_tempfile,
) )
from ayon_core.hosts.nuke.api.workfile_template_builder import ( from ayon_nuke.api.workfile_template_builder import (
NukePlaceholderPlugin NukePlaceholderPlugin
) )

View file

@ -4,7 +4,7 @@ from ayon_core.pipeline.workfile.workfile_template_builder import (
LoadPlaceholderItem, LoadPlaceholderItem,
PlaceholderLoadMixin, PlaceholderLoadMixin,
) )
from ayon_core.hosts.nuke.api.lib import ( from ayon_nuke.api.lib import (
find_free_space_to_paste_nodes, find_free_space_to_paste_nodes,
get_extreme_positions, get_extreme_positions,
get_group_io_nodes, get_group_io_nodes,
@ -18,7 +18,7 @@ from ayon_core.hosts.nuke.api.lib import (
duplicate_node, duplicate_node,
node_tempfile, node_tempfile,
) )
from ayon_core.hosts.nuke.api.workfile_template_builder import ( from ayon_nuke.api.workfile_template_builder import (
NukePlaceholderPlugin NukePlaceholderPlugin
) )

View file

@ -3,7 +3,7 @@ import os
import nuke import nuke
import nukescripts import nukescripts
from ayon_core.pipeline import Anatomy, get_current_project_name from ayon_core.pipeline import Anatomy, get_current_project_name
from ayon_core.hosts.nuke.api.lib import ( from ayon_nuke.api.lib import (
set_node_knobs_from_settings, set_node_knobs_from_settings,
get_nuke_imageio_settings get_nuke_imageio_settings
) )

View file

@ -1,5 +1,5 @@
from ayon_core.pipeline import install_host from ayon_core.pipeline import install_host
from ayon_core.hosts.nuke.api import NukeHost from ayon_nuke.api import NukeHost
host = NukeHost() host = NukeHost()
install_host(host) install_host(host)

Some files were not shown because too many files have changed in this diff Show more