From 406c665d1d36a4deb129b09397c7854ed1c0e230 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 9 Mar 2021 14:46:12 +0100 Subject: [PATCH] created copy of psb bulk plugin but for render mov batch # Conflicts: # pype/hosts/standalonepublisher/plugins/publish/collect_mov_instances.py --- .../plugins/publish/collect_mov_instances.py | 54 +++++++++++++++++++ .../plugins/publish/collect_psd_instances.py | 1 - 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 pype/hosts/standalonepublisher/plugins/publish/collect_mov_instances.py diff --git a/pype/hosts/standalonepublisher/plugins/publish/collect_mov_instances.py b/pype/hosts/standalonepublisher/plugins/publish/collect_mov_instances.py new file mode 100644 index 0000000000..0dcbd119d9 --- /dev/null +++ b/pype/hosts/standalonepublisher/plugins/publish/collect_mov_instances.py @@ -0,0 +1,54 @@ +import copy +import pyblish.api +from pprint import pformat + + +class CollectMovInstances(pyblish.api.InstancePlugin): + """Collect all available instances from render mov batch.""" + + label = "Collect Mov Instances" + order = pyblish.api.CollectorOrder + 0.489 + hosts = ["standalonepublisher"] + families = ["render_mov_batch"] + + # presets + subsets = { + "render": { + "task": "compositing", + "family": "render" + } + } + unchecked_by_default = [] + + def process(self, instance): + context = instance.context + asset_name = instance.data["asset"] + for subset_name, subset_data in self.subsets.items(): + instance_name = f"{asset_name}_{subset_name}" + task_name = subset_data["task"] + + # create new instance + new_instance = context.create_instance(instance_name) + + # add original instance data except name key + for key, value in instance.data.items(): + if key not in ["name"]: + # Make sure value is copy since value may be object which + # can be shared across all new created objects + new_instance.data[key] = copy.deepcopy(value) + + # add subset data from preset + new_instance.data.update(subset_data) + + new_instance.data["label"] = instance_name + new_instance.data["subset"] = subset_name + new_instance.data["task"] = task_name + + if subset_name in self.unchecked_by_default: + new_instance.data["publish"] = False + + self.log.info(f"Created new instance: {instance_name}") + self.log.debug(f"New instance data: {pformat(new_instance.data)}") + + # delete original instance + context.remove(instance) diff --git a/pype/hosts/standalonepublisher/plugins/publish/collect_psd_instances.py b/pype/hosts/standalonepublisher/plugins/publish/collect_psd_instances.py index b5db437473..11cedc30b9 100644 --- a/pype/hosts/standalonepublisher/plugins/publish/collect_psd_instances.py +++ b/pype/hosts/standalonepublisher/plugins/publish/collect_psd_instances.py @@ -55,7 +55,6 @@ class CollectPsdInstances(pyblish.api.InstancePlugin): new_instance.data["subset"] = subset_name new_instance.data["task"] = task - if subset_name in self.unchecked_by_default: new_instance.data["publish"] = False