From 786c60c83f34f04196ac73492bae46645d24f689 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 19 Aug 2021 17:05:22 +0200 Subject: [PATCH] added collector to testhost --- .../plugins/publish/collect_context.py | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 openpype/hosts/testhost/plugins/publish/collect_context.py diff --git a/openpype/hosts/testhost/plugins/publish/collect_context.py b/openpype/hosts/testhost/plugins/publish/collect_context.py new file mode 100644 index 0000000000..67d81073ea --- /dev/null +++ b/openpype/hosts/testhost/plugins/publish/collect_context.py @@ -0,0 +1,64 @@ +""" +Requires: + environment -> SAPUBLISH_INPATH + environment -> SAPUBLISH_OUTPATH + +Provides: + context -> returnJsonPath (str) + context -> project + context -> asset + instance -> destination_list (list) + instance -> representations (list) + instance -> source (list) + instance -> representations +""" + +import os +import json +import copy + +import pyblish.api +from avalon import io + +from openpype.hosts.testhost import api + + +class CollectContextDataTestHost(pyblish.api.ContextPlugin): + """ + Collecting temp json data sent from a host context + and path for returning json data back to hostself. + """ + + label = "Collect Context - Test Host" + order = pyblish.api.CollectorOrder - 0.49 + hosts = ["testhost"] + + def process(self, context): + # get json paths from os and load them + io.install() + + for instance_data in api.list_instances(): + # create instance + self.create_instance(context, instance_data) + + def create_instance(self, context, in_data): + subset = in_data["subset"] + # If instance data already contain families then use it + instance_families = in_data.get("families") or [] + + instance = context.create_instance(subset) + instance.data.update( + { + "subset": subset, + "asset": in_data["asset"], + "label": subset, + "name": subset, + "family": in_data["family"], + "families": instance_families + } + ) + self.log.info("collected instance: {}".format(instance.data)) + self.log.info("parsing data: {}".format(in_data)) + + instance.data["representations"] = list() + instance.data["source"] = "testhost"