diff --git a/pype/hosts/nuke/lib.py b/pype/hosts/nuke/lib.py index 63cbd038d4..e915ba0df9 100644 --- a/pype/hosts/nuke/lib.py +++ b/pype/hosts/nuke/lib.py @@ -9,6 +9,7 @@ from avalon.nuke import lib as anlib from pype.api import ( Logger, get_version_from_path, + get_anatomy_settings, get_hierarchy, get_asset, Anatomy, @@ -17,12 +18,6 @@ from pype.api import ( import nuke - -from .presets import ( - get_node_dataflow_preset, - get_node_colorspace_preset -) - from .utils import set_context_favorites log = Logger().get_logger(__name__, "nuke") @@ -31,6 +26,30 @@ self = sys.modules[__name__] self._project = None +def get_node_imageio_setting(**kwarg): + ''' Get preset data for dataflow (fileType, compression, bitDepth) + ''' + log.info(kwarg) + host = kwarg.get("host", "nuke") + class_name = kwarg.get("class", None) + families = kwarg.get("families", []) + project_name = os.getenv("AVALON_PROJECT") + + assert any([host, class_name]), nuke.message( + "`{}`: Missing mandatory kwargs `host`, `cls`".format(__file__)) + + nuke_imageio = get_anatomy_settings(project_name)["imageio"].get(str(host), None) + nuke_imageio_nodes = nuke_imageio.get('nodes', None) + nuke_imageio_node = nuke_imageio_nodes.get(str(class_name), None) + + if families: + for family in families: + nuke_imageio_node = nuke_imageio_node.get(str(family), None) + + log.info("Dataflow: {}".format(nuke_imageio_node)) + return nuke_imageio_node + + def on_script_load(): ''' Callback for ffmpeg support ''' @@ -151,14 +170,12 @@ def get_render_path(node): "preset": data['avalon']['families'] } - nuke_dataflow_writes = get_node_dataflow_preset(**data_preset) - nuke_colorspace_writes = get_node_colorspace_preset(**data_preset) + nuke_imageio_writes = get_node_imageio_setting(**data_preset) application = lib.get_application(os.environ["AVALON_APP_NAME"]) data.update({ "application": application, - "nuke_dataflow_writes": nuke_dataflow_writes, - "nuke_colorspace_writes": nuke_colorspace_writes + "nuke_imageio_writes": nuke_imageio_writes }) anatomy_filled = format_anatomy(data) @@ -261,15 +278,13 @@ def create_write_node(name, data, input=None, prenodes=None, review=True): node (obj): group node with avalon data as Knobs ''' - nuke_dataflow_writes = get_node_dataflow_preset(**data) - nuke_colorspace_writes = get_node_colorspace_preset(**data) + nuke_imageio_writes = get_node_imageio_setting(**data) application = lib.get_application(os.environ["AVALON_APP_NAME"]) try: data.update({ "application": application, - "nuke_dataflow_writes": nuke_dataflow_writes, - "nuke_colorspace_writes": nuke_colorspace_writes + "nuke_imageio_writes": nuke_imageio_writes }) anatomy_filled = format_anatomy(data) @@ -283,7 +298,7 @@ def create_write_node(name, data, input=None, prenodes=None, review=True): fpath = data["fpath_template"].format( work=fpath, version=data["version"], subset=data["subset"], frame=data["frame"], - ext=data["nuke_dataflow_writes"]["file_type"] + ext=data["nuke_imageio_writes"]["file_type"] ) # create directory @@ -301,10 +316,6 @@ def create_write_node(name, data, input=None, prenodes=None, review=True): for k, v in nuke_dataflow_writes.items() if k not in ["_id", "_previous"]} - # 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) @@ -1049,22 +1060,18 @@ def get_write_node_template_attr(node): } # get template data - nuke_dataflow_writes = get_node_dataflow_preset(**data_preset) - nuke_colorspace_writes = get_node_colorspace_preset(**data_preset) + nuke_imageio_writes = get_node_imageio_setting(**data_preset) # collecting correct data correct_data = OrderedDict({ "file": get_render_path(node) }) - # adding dataflow template + # adding imageio template {correct_data.update({k: v}) - for k, v in nuke_dataflow_writes.items() + for k, v in nuke_imageio_writes.items() if k not in ["_id", "_previous"]} - # adding colorspace template - {correct_data.update({k: v}) - for k, v in nuke_colorspace_writes.items()} # fix badly encoded data return avalon.nuke.lib.fix_data_for_node_create(correct_data) diff --git a/pype/hosts/nuke/presets.py b/pype/hosts/nuke/presets.py deleted file mode 100644 index a836327496..0000000000 --- a/pype/hosts/nuke/presets.py +++ /dev/null @@ -1,61 +0,0 @@ -from pype.api import Anatomy, config, Logger -import nuke - -log = Logger().get_logger(__name__, "nuke") - - -def get_node_dataflow_preset(**kwarg): - ''' Get preset data for dataflow (fileType, compression, bitDepth) - ''' - log.info(kwarg) - host = kwarg.get("host", "nuke") - cls = kwarg.get("class", None) - families = kwarg.get("families", []) - preset = kwarg.get("preset", None) # omit < 2.0.0v - - assert any([host, cls]), nuke.message( - "`{}`: Missing mandatory kwargs `host`, `cls`".format(__file__)) - - nuke_dataflow = config.get_init_presets()["dataflow"].get(str(host), None) - nuke_dataflow_nodes = nuke_dataflow.get('nodes', None) - nuke_dataflow_node = nuke_dataflow_nodes.get(str(cls), None) - - if preset: # omit < 2.0.0v - nuke_dataflow_node = nuke_dataflow_node.get(str(preset), None) - # omit < 2.0.0v - - 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 - - -def get_node_colorspace_preset(**kwarg): - ''' Get preset data for colorspace - ''' - log.info(kwarg) - host = kwarg.get("host", "nuke") - cls = kwarg.get("class", None) - families = kwarg.get("families", []) - preset = kwarg.get("preset", None) # omit < 2.0.0v - - if not any([host, cls]): - msg = "`{}`: Missing mandatory kwargs `host`, `cls`".format(__file__) - log.error(msg) - nuke.message(msg) - - nuke_colorspace = config.get_init_presets()["colorspace"].get(str(host), None) - nuke_colorspace_node = nuke_colorspace.get(str(cls), None) - - 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