mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
fix(nuke): create plugin correct way of working with families
This commit is contained in:
parent
fe918b1bd6
commit
637862f22d
4 changed files with 33 additions and 24 deletions
|
|
@ -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))
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
14
pype/nuke/plugin.py
Normal file
14
pype/nuke/plugin.py
Normal file
|
|
@ -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__, {}
|
||||
)
|
||||
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue