From edb868a64dcf5c8627979f7d290efde9c29ac80c Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 10 Mar 2021 15:38:20 +0100 Subject: [PATCH] all filepaths from standalone publisher are added to list of filepaths that won't be deleted during cleanup --- .../plugins/publish/collect_context.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/pype/hosts/standalonepublisher/plugins/publish/collect_context.py b/pype/hosts/standalonepublisher/plugins/publish/collect_context.py index 318335a6d2..8930bedab8 100644 --- a/pype/hosts/standalonepublisher/plugins/publish/collect_context.py +++ b/pype/hosts/standalonepublisher/plugins/publish/collect_context.py @@ -45,8 +45,9 @@ class CollectContextDataSAPublish(pyblish.api.ContextPlugin): with open(input_json_path, "r") as f: in_data = json.load(f) - self.log.debug(f"_ in_data: {pformat(in_data)}") + self.log.debug(f"_ in_data: {pformat(in_data)}") + self.add_files_to_ignore_cleanup(in_data, context) # exception for editorial if in_data["family"] == "render_mov_batch": in_data_list = self.prepare_mov_batch_instances(context, in_data) @@ -63,6 +64,21 @@ class CollectContextDataSAPublish(pyblish.api.ContextPlugin): # create instance self.create_instance(context, in_data) + def add_files_to_ignore_cleanup(self, in_data, context): + all_filepaths = context.data.get("skipCleanupFilepaths") or [] + for repre in in_data["representations"]: + files = repre["files"] + if not isinstance(files, list): + files = [files] + + dirpath = repre["stagingDir"] + for filename in files: + filepath = os.path.normpath(os.path.join(dirpath, filename)) + if filepath not in all_filepaths: + all_filepaths.append(filepath) + + context.data["skipCleanupFilepaths"] = all_filepaths + def multiple_instances(self, context, in_data): # avoid subset name duplicity if not context.data.get("subsetNamesCheck"):