From 17044990936ac61744c494ea7275c262ff110ceb Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 3 Nov 2020 19:33:21 +0100 Subject: [PATCH] implemented basic collector --- .../tvpaint/publish/collect_instances.py | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 pype/plugins/tvpaint/publish/collect_instances.py diff --git a/pype/plugins/tvpaint/publish/collect_instances.py b/pype/plugins/tvpaint/publish/collect_instances.py new file mode 100644 index 0000000000..931d5b490b --- /dev/null +++ b/pype/plugins/tvpaint/publish/collect_instances.py @@ -0,0 +1,38 @@ +import json + +import pyblish.api +import avalon.io +from avalon.tvpaint import pipeline + + +class CollectInstances(pyblish.api.ContextPlugin): + label = "Collect Instances" + order = pyblish.api.CollectorOrder + hosts = ["tvpaint"] + + def process(self, context): + self.log.info("Collecting instance data from workfile") + instances_data = pipeline.list_instances() + self.log.debug("Collected ({}) instances: {}".format( + len(instances_data), instances_data + )) + + # TODO add validations of existing instances + # - layer id exists + for instance_data in instances_data: + asset_name = instance_data["asset"] + subset_name = instance_data["subset"] + family = instance_data["family"] + name = instance_data.get("name", subset_name) + active = instance_data.get("active", True) + + instance = context.create_instance( + name=name, + family=family, + families=[family], + subset=subset_name, + asset=asset_name, + active=active, + publish=active, + ) + self.log.debug(instance)