From 256d1784c68b6bd02140f403e27f6ce9dbd46408 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 1 Oct 2021 18:54:55 +0200 Subject: [PATCH] changed creators in testhost for new structure --- .../testhost/plugins/create/auto_creator.py | 38 +++++++++++++++---- .../testhost/plugins/create/test_creator_1.py | 31 +++++++++++++-- .../testhost/plugins/create/test_creator_2.py | 31 +++++++++++++-- 3 files changed, 86 insertions(+), 14 deletions(-) diff --git a/openpype/hosts/testhost/plugins/create/auto_creator.py b/openpype/hosts/testhost/plugins/create/auto_creator.py index c578fae74b..c3bbd5dd74 100644 --- a/openpype/hosts/testhost/plugins/create/auto_creator.py +++ b/openpype/hosts/testhost/plugins/create/auto_creator.py @@ -1,4 +1,4 @@ -from openpype.hosts.testhost import api +from openpype.hosts.testhost.api import pipeline from openpype.pipeline import ( AutoCreator, CreatedInstance, @@ -8,8 +8,36 @@ from avalon import io class MyAutoCreator(AutoCreator): + identifier = "workfile" family = "workfile" + def get_attribute_defs(self): + output = [ + lib.NumberDef("number_key", label="Number") + ] + return output + + def collect_instances(self, attr_plugins=None): + for instance_data in pipeline.list_instances(): + creator_id = instance_data.get("creator_identifier") + if creator_id is not None: + if creator_id == self.identifier: + subset_name = instance_data["subset"] + instance = CreatedInstance( + self.family, subset_name, instance_data, self + ) + self.create_context.add_instance(instance) + + elif instance_data["family"] == self.identifier: + instance_data["creator_identifier"] = self.identifier + instance = CreatedInstance.from_existing( + instance_data, self, attr_plugins + ) + self.create_context.add_instance(instance) + + def update_instances(self, update_list): + pipeline.update_instances(update_list) + def create(self, options=None): existing_instance = None for instance in self.create_context.instances: @@ -40,7 +68,7 @@ class MyAutoCreator(AutoCreator): existing_instance = CreatedInstance( self.family, subset_name, data, self ) - api.pipeline.HostContext.add_instance( + pipeline.HostContext.add_instance( existing_instance.data_to_store() ) @@ -56,9 +84,3 @@ class MyAutoCreator(AutoCreator): existing_instance.data["task"] = task_name return existing_instance - - def get_attribute_defs(self): - output = [ - lib.NumberDef("number_key", label="Number") - ] - return output diff --git a/openpype/hosts/testhost/plugins/create/test_creator_1.py b/openpype/hosts/testhost/plugins/create/test_creator_1.py index b7cd652905..1a6fc0cdf5 100644 --- a/openpype/hosts/testhost/plugins/create/test_creator_1.py +++ b/openpype/hosts/testhost/plugins/create/test_creator_1.py @@ -1,5 +1,5 @@ from openpype import resources -from openpype.hosts.testhost import api +from openpype.hosts.testhost.api import pipeline from openpype.pipeline import ( Creator, CreatedInstance, @@ -8,15 +8,40 @@ from openpype.pipeline import ( class TestCreatorOne(Creator): - family = "test_one" + identifier = "test_one" + family = "test" description = "Testing creator of testhost" def get_icon(self): return resources.get_openpype_splash_filepath() + def collect_instances(self, attr_plugins): + for instance_data in pipeline.list_instances(): + creator_id = instance_data.get("creator_identifier") + if creator_id is not None: + if creator_id == self.identifier: + subset_name = instance_data["subset"] + instance = CreatedInstance( + self.family, subset_name, instance_data, self + ) + self.create_context.add_instance(instance) + + elif instance_data["family"] == self.identifier: + instance_data["creator_identifier"] = self.identifier + instance = CreatedInstance.from_existing( + instance_data, self, attr_plugins + ) + self.create_context.add_instance(instance) + + def update_instances(self, update_list): + pipeline.update_instances(update_list) + + def remove_instances(self, instances): + pipeline.remove_instances(instances) + def create(self, subset_name, data, options=None): avalon_instance = CreatedInstance(self.family, subset_name, data, self) - api.pipeline.HostContext.add_instance(avalon_instance.data_to_store()) + pipeline.HostContext.add_instance(avalon_instance.data_to_store()) self.log.info(avalon_instance.data) return avalon_instance diff --git a/openpype/hosts/testhost/plugins/create/test_creator_2.py b/openpype/hosts/testhost/plugins/create/test_creator_2.py index 81df6f2b82..a2e4ebb13b 100644 --- a/openpype/hosts/testhost/plugins/create/test_creator_2.py +++ b/openpype/hosts/testhost/plugins/create/test_creator_2.py @@ -1,4 +1,4 @@ -from openpype.hosts.testhost import api +from openpype.hosts.testhost.api import pipeline from openpype.pipeline import ( Creator, CreatedInstance, @@ -7,7 +7,8 @@ from openpype.pipeline import ( class TestCreatorTwo(Creator): - family = "test_two" + identifier = "test_two" + family = "test" description = "A second testing creator" def get_icon(self): @@ -15,10 +16,34 @@ class TestCreatorTwo(Creator): def create(self, subset_name, data, options=None): avalon_instance = CreatedInstance(self.family, subset_name, data, self) - api.pipeline.HostContext.add_instance(avalon_instance.data_to_store()) + pipeline.HostContext.add_instance(avalon_instance.data_to_store()) self.log.info(avalon_instance.data) return avalon_instance + def collect_instances(self, attr_plugins): + for instance_data in pipeline.list_instances(): + creator_id = instance_data.get("creator_identifier") + if creator_id is not None: + if creator_id == self.identifier: + subset_name = instance_data["subset"] + instance = CreatedInstance( + self.family, subset_name, instance_data, self + ) + self.create_context.add_instance(instance) + + elif instance_data["family"] == self.identifier: + instance_data["creator_identifier"] = self.identifier + instance = CreatedInstance.from_existing( + instance_data, self, attr_plugins + ) + self.create_context.add_instance(instance) + + def update_instances(self, update_list): + pipeline.update_instances(update_list) + + def remove_instances(self, instances): + pipeline.remove_instances(instances) + def get_attribute_defs(self): output = [ lib.NumberDef("number_key"),