Added OptionalPyblishPluginMixin and is_active check

This commit is contained in:
Jacob Danell 2023-04-28 09:17:09 +02:00
parent 4107874eb9
commit a1eff27bbf
2 changed files with 24 additions and 10 deletions

View file

@ -1,7 +1,10 @@
import pyblish.api
from openpype.pipeline import OptionalPyblishPluginMixin
class FusionIncrementCurrentFile(pyblish.api.ContextPlugin):
class FusionIncrementCurrentFile(
pyblish.api.ContextPlugin, OptionalPyblishPluginMixin
):
"""Increment the current file.
Saves the current file with an increased version number.
@ -15,15 +18,21 @@ class FusionIncrementCurrentFile(pyblish.api.ContextPlugin):
optional = True
def process(self, context):
if not self.is_active(context.data):
return
from openpype.lib import version_up
from openpype.pipeline.publish import get_errored_plugins_from_context
errored_plugins = get_errored_plugins_from_context(context)
if any(plugin.__name__ == "FusionSubmitDeadline"
for plugin in errored_plugins):
raise RuntimeError("Skipping incrementing current file because "
"submission to render farm failed.")
if any(
plugin.__name__ == "FusionSubmitDeadline"
for plugin in errored_plugins
):
raise RuntimeError(
"Skipping incrementing current file because "
"submission to render farm failed."
)
comp = context.data.get("currentComp")
assert comp, "Must have comp"

View file

@ -1,12 +1,14 @@
import pyblish.api
from openpype.pipeline.publish import RepairAction
from openpype.pipeline import publish, OptionalPyblishPluginMixin
from openpype.pipeline import PublishValidationError
from openpype.hosts.fusion.api.action import SelectInvalidAction
class ValidateBackgroundDepth(pyblish.api.InstancePlugin):
class ValidateBackgroundDepth(
pyblish.api.InstancePlugin, OptionalPyblishPluginMixin
):
"""Validate if all Background tool are set to float32 bit"""
order = pyblish.api.ValidatorOrder
@ -15,11 +17,10 @@ class ValidateBackgroundDepth(pyblish.api.InstancePlugin):
families = ["render"]
optional = True
actions = [SelectInvalidAction, RepairAction]
actions = [SelectInvalidAction, publish.RepairAction]
@classmethod
def get_invalid(cls, instance):
context = instance.context
comp = context.data.get("currentComp")
assert comp, "Must have Comp object"
@ -31,12 +32,16 @@ class ValidateBackgroundDepth(pyblish.api.InstancePlugin):
return [i for i in backgrounds if i.GetInput("Depth") != 4.0]
def process(self, instance):
if not self.is_active(instance.data):
return
invalid = self.get_invalid(instance)
if invalid:
raise PublishValidationError(
"Found {} Backgrounds tools which"
" are not set to float32".format(len(invalid)),
title=self.label)
title=self.label,
)
@classmethod
def repair(cls, instance):