mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
hound & code tweak regarding to OP setting
This commit is contained in:
parent
cfc5443909
commit
d15dfaaf84
1 changed files with 21 additions and 23 deletions
|
|
@ -1,7 +1,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""Validator for Loaded Plugin."""
|
||||
import os
|
||||
from pyblish.api import InstancePlugin, ValidatorOrder
|
||||
import pyblish.api
|
||||
from pymxs import runtime as rt
|
||||
|
||||
from openpype.pipeline.publish import (
|
||||
|
|
@ -13,7 +13,7 @@ from openpype.hosts.max.api.lib import get_plugins
|
|||
|
||||
|
||||
class ValidateLoadedPlugin(OptionalPyblishPluginMixin,
|
||||
InstancePlugin):
|
||||
pyblish.api.InstancePlugin):
|
||||
"""Validates if the specific plugin is loaded in 3ds max.
|
||||
Studio Admin(s) can add the plugins they want to check in validation
|
||||
via studio defined project settings
|
||||
|
|
@ -22,24 +22,21 @@ class ValidateLoadedPlugin(OptionalPyblishPluginMixin,
|
|||
|
||||
"""
|
||||
|
||||
order = ValidatorOrder
|
||||
order = pyblish.api.ValidatorOrder
|
||||
hosts = ["max"]
|
||||
label = "Validate Loaded Plugins"
|
||||
optional = True
|
||||
actions = [RepairAction]
|
||||
|
||||
family_plugins_mapping = {}
|
||||
|
||||
def get_invalid(self, instance):
|
||||
"""Plugin entry point."""
|
||||
if not self.is_active(instance.data):
|
||||
self.log.debug("Skipping Validate Loaded Plugin...")
|
||||
return
|
||||
|
||||
required_plugins = (
|
||||
instance.context.data["project_settings"]["max"]["publish"]
|
||||
["ValidateLoadedPlugin"]
|
||||
["family_plugins_mapping"]
|
||||
)
|
||||
|
||||
required_plugins = self.family_plugins_mapping
|
||||
if not required_plugins:
|
||||
return
|
||||
|
||||
|
|
@ -54,11 +51,12 @@ class ValidateLoadedPlugin(OptionalPyblishPluginMixin,
|
|||
# Build instance families lookup
|
||||
instance_families = {instance.data["family"]}
|
||||
instance_families.update(instance.data.get("families", []))
|
||||
self.log.debug(f"Checking plug-in validation for instance families: {instance_families}")
|
||||
for families in required_plugins.keys():
|
||||
self.log.debug("Checking plug-in validation "
|
||||
f"for instance families: {instance_families}")
|
||||
for family in required_plugins:
|
||||
# Check for matching families
|
||||
match_families = {fam.strip() for fam in
|
||||
families.split(",") if fam.strip()}
|
||||
family.split(",") if fam.strip()}
|
||||
self.log.debug(f"Plug-in family requirements: {match_families}")
|
||||
has_match = "*" in match_families or match_families.intersection(
|
||||
instance_families)
|
||||
|
|
@ -66,7 +64,8 @@ class ValidateLoadedPlugin(OptionalPyblishPluginMixin,
|
|||
if not has_match:
|
||||
continue
|
||||
|
||||
plugins = [plugin for plugin in required_plugins[families]["plugins"]]
|
||||
plugins = [plugin for plugin in
|
||||
required_plugins[family]["plugins"]]
|
||||
for plugin in plugins:
|
||||
if not plugin:
|
||||
return
|
||||
|
|
@ -75,7 +74,8 @@ class ValidateLoadedPlugin(OptionalPyblishPluginMixin,
|
|||
|
||||
if plugin_index is None:
|
||||
invalid.append(
|
||||
f"Plugin {plugin} does not exist in 3dsMax Plugin List."
|
||||
f"Plugin {plugin} does not exist"
|
||||
" in 3dsMax Plugin List."
|
||||
)
|
||||
continue
|
||||
|
||||
|
|
@ -105,17 +105,14 @@ class ValidateLoadedPlugin(OptionalPyblishPluginMixin,
|
|||
plugin_name.lower(): index for index, plugin_name in enumerate(
|
||||
get_plugins())
|
||||
}
|
||||
required_plugins = (
|
||||
instance.context.data["project_settings"]["max"]["publish"]
|
||||
["ValidateLoadedPlugin"]
|
||||
["family_plugins_mapping"]
|
||||
)
|
||||
required_plugins = cls.family_plugins_mapping
|
||||
instance_families = {instance.data["family"]}
|
||||
instance_families.update(instance.data.get("families", []))
|
||||
cls.log.debug(f"Checking plug-in validation for instance families: {instance_families}")
|
||||
for families in required_plugins.keys():
|
||||
cls.log.debug("Checking plug-in validation "
|
||||
f"for instance families: {instance_families}")
|
||||
for family in required_plugins.keys():
|
||||
match_families = {fam.strip() for fam in
|
||||
families.split(",") if fam.strip()}
|
||||
family.split(",") if fam.strip()}
|
||||
cls.log.debug(f"Plug-in family requirements: {match_families}")
|
||||
has_match = "*" in match_families or match_families.intersection(
|
||||
instance_families)
|
||||
|
|
@ -123,7 +120,8 @@ class ValidateLoadedPlugin(OptionalPyblishPluginMixin,
|
|||
if not has_match:
|
||||
continue
|
||||
|
||||
plugins = [plugin for plugin in required_plugins[families]["plugins"]]
|
||||
plugins = [plugin for plugin in
|
||||
required_plugins[family]["plugins"]]
|
||||
for plugin in plugins:
|
||||
if not plugin:
|
||||
return
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue