From d4de5d396e62608e8e8aaf77591181bcd7121853 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 13 Sep 2021 18:20:02 +0200 Subject: [PATCH] added execution of autocreators --- openpype/pipeline/create/context.py | 24 +++++++++++++++++++++++- openpype/tools/new_publisher/control.py | 1 + 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/openpype/pipeline/create/context.py b/openpype/pipeline/create/context.py index b6a3077f8e..46a8a05ca4 100644 --- a/openpype/pipeline/create/context.py +++ b/openpype/pipeline/create/context.py @@ -6,7 +6,10 @@ import inspect from uuid import uuid4 from ..lib import UnknownDef -from .creator_plugins import BaseCreator +from .creator_plugins import ( + BaseCreator, + AutoCreator +) from openpype.api import ( get_system_settings, @@ -591,6 +594,8 @@ class CreateContext: self.reset_context_data() self.reset_instances() + self.execute_autocreators() + def reset_plugins(self): import avalon.api import pyblish.logic @@ -734,6 +739,23 @@ class CreateContext: self.instances = instances + def execute_autocreators(self): + for creator in self.get_autocreators(): + try: + creator.create() + except Exception: + msg = ( + "Failed to run AutoCreator with family \"{}\" ({})." + ).format(creator.family, inspect.getfile(creator.__class__)) + self.log.warning(msg, exc_info=True) + + def get_autocreators(self): + autocreators = [] + for creator in self.creators.values(): + if isinstance(creator, AutoCreator): + autocreators.append(creator) + return autocreators + def save_changes(self): if not self.host_is_valid: missing_methods = self.get_host_misssing_methods(self.host) diff --git a/openpype/tools/new_publisher/control.py b/openpype/tools/new_publisher/control.py index 5780f086fe..848d120366 100644 --- a/openpype/tools/new_publisher/control.py +++ b/openpype/tools/new_publisher/control.py @@ -484,6 +484,7 @@ class PublisherController: # Publish part must be resetted after plugins self._reset_publish() self._reset_instances() + self.create_context.execute_autocreators() def _reset_plugins(self): """Reset to initial state."""