From 3a1afe5d1e74a206ae3218164bfb289ef90f978a Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Mon, 30 Sep 2019 11:12:20 +0200 Subject: [PATCH] support for yeti caches --- pype/plugins/global/publish/integrate.py | 8 ++---- pype/plugins/global/publish/integrate_new.py | 11 +++++--- .../maya/publish/extract_yeti_cache.py | 27 ++++++++++++++++--- 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/pype/plugins/global/publish/integrate.py b/pype/plugins/global/publish/integrate.py index 8597d4a719..59e05ee2aa 100644 --- a/pype/plugins/global/publish/integrate.py +++ b/pype/plugins/global/publish/integrate.py @@ -1,7 +1,6 @@ import os import logging import shutil -import clique import errno import pyblish.api @@ -25,9 +24,7 @@ class IntegrateAsset(pyblish.api.InstancePlugin): label = "Integrate Asset" order = pyblish.api.IntegratorOrder - families = ["assembly", - "yetiRig", - "yeticache"] + families = ["assembly"] exclude_families = ["clip"] def process(self, instance): @@ -41,7 +38,6 @@ class IntegrateAsset(pyblish.api.InstancePlugin): if instance.data.get('transfer', True): self.integrate(instance) - def register(self, instance): # Required environment variables PROJECT = api.Session["AVALON_PROJECT"] @@ -158,7 +154,7 @@ class IntegrateAsset(pyblish.api.InstancePlugin): "version": int(version["name"]), "hierarchy": hierarchy} - template_publish = project["config"]["template"]["publish"] + # template_publish = project["config"]["template"]["publish"] anatomy = instance.context.data['anatomy'] # Find the representations to transfer amongst the files diff --git a/pype/plugins/global/publish/integrate_new.py b/pype/plugins/global/publish/integrate_new.py index e5d8007d70..6468da03d5 100644 --- a/pype/plugins/global/publish/integrate_new.py +++ b/pype/plugins/global/publish/integrate_new.py @@ -3,7 +3,6 @@ from os.path import getsize import logging import speedcopy import clique -import traceback import errno import pyblish.api from avalon import api, io @@ -64,7 +63,9 @@ class IntegrateAssetNew(pyblish.api.InstancePlugin): "plate", "look", "lut", - "audio" + "audio", + "yetiRig", + "yeticache" ] exclude_families = ["clip"] @@ -110,7 +111,7 @@ class IntegrateAssetNew(pyblish.api.InstancePlugin): # extracted_traceback[1], result["error"] # ) # ) - # assert all(result["success"] for result in context.data["results"]), ( + # assert all(result["success"] for result in context.data["results"]),( # "Atomicity not held, aborting.") # Assemble @@ -328,7 +329,9 @@ class IntegrateAssetNew(pyblish.api.InstancePlugin): self.log.debug("source: {}".format(src)) instance.data["transfers"].append([src, dst]) - repre['published_path'] = "{0}{1}{2}".format(dst_head, dst_padding_exp, dst_tail) + repre['published_path'] = "{0}{1}{2}".format(dst_head, + dst_padding_exp, + dst_tail) # for imagesequence version data hashes = '#' * len(dst_padding) dst = os.path.normpath("{0}{1}{2}".format( diff --git a/pype/plugins/maya/publish/extract_yeti_cache.py b/pype/plugins/maya/publish/extract_yeti_cache.py index cc71052761..fcc733e2ed 100644 --- a/pype/plugins/maya/publish/extract_yeti_cache.py +++ b/pype/plugins/maya/publish/extract_yeti_cache.py @@ -63,10 +63,29 @@ class ExtractYetiCache(pype.api.Extractor): with open(data_file, "w") as fp: json.dump(settings, fp, ensure_ascii=False) - # Ensure files can be stored - if "files" not in instance.data: - instance.data["files"] = list() + # build representations + if "representations" not in instance.data: + instance.data["representations"] = [] - instance.data["files"].extend([cache_files, "yeti.fursettings"]) + self.log.info("cache files: {}".format(cache_files[0])) + instance.data["representations"].append( + { + 'name': cache_files[0].split(".")[0], + 'ext': 'fur', + 'files': cache_files, + 'stagingDir': dirname, + 'anatomy_template': 'publish' + } + ) + + instance.data["representations"].append( + { + 'name': os.path.basename(data_file), + 'ext': 'fursettings', + 'files': os.path.basename(data_file), + 'stagingDir': dirname, + 'anatomy_template': 'publish' + } + ) self.log.info("Extracted {} to {}".format(instance, dirname))