From 58de88b69535df101f70ea2f11f968e212974a1e Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 18 Aug 2021 15:45:58 +0200 Subject: [PATCH] do validations inside interator too --- openpype/tools/new_publisher/control.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/openpype/tools/new_publisher/control.py b/openpype/tools/new_publisher/control.py index 2658a80e59..4909906518 100644 --- a/openpype/tools/new_publisher/control.py +++ b/openpype/tools/new_publisher/control.py @@ -393,15 +393,29 @@ class PublisherController: def _publish_iterator(self): for plugin in self.publish_plugins: + # Check if plugin is over validation order + if not self._publish_validated: + self._publish_validated = ( + plugin.order >= self._validation_order + ) + + # Stop if plugin is over validation order and process + # should process up to validation. + if self._publish_up_validation and self._publish_validated: + yield MainThreadItem(self._stop_publish) + + # Stop if validation is over and validation errors happened if ( - self._publish_up_validation - and plugin.order >= self._validation_order + self._publish_validated + and self._publish_validation_errors ): yield MainThreadItem(self._stop_publish) + # Trigger callback that new plugin is going to be processed self._trigger_callbacks( self._publish_plugin_changed_callback_refs, plugin ) + # Plugin is instance plugin if plugin.__instanceEnabled__: instances = pyblish.logic.instances_by_plugin( self._publish_context, plugin