diff --git a/client/ayon_core/addon/base.py b/client/ayon_core/addon/base.py index 5a2c1d353e..fcd41c5f7d 100644 --- a/client/ayon_core/addon/base.py +++ b/client/ayon_core/addon/base.py @@ -57,6 +57,7 @@ MOVED_ADDON_MILESTONE_VERSIONS = { "max": VersionInfo(0, 2, 0), "traypublisher": VersionInfo(0, 2, 0), "tvpaint": VersionInfo(0, 2, 0), + "maya": VersionInfo(0, 2, 0), "nuke": VersionInfo(0, 2, 0), "substancepainter": VersionInfo(0, 2, 0), } @@ -1330,7 +1331,7 @@ class TrayAddonsManager(AddonsManager): self.doubleclick_callback = None def add_doubleclick_callback(self, addon, callback): - """Register doubleclick callbacks on tray icon. + """Register double-click callbacks on tray icon. Currently, there is no way how to determine which is launched. Name of callback can be defined with `doubleclick_callback` attribute. diff --git a/client/ayon_core/modules/deadline/plugins/publish/submit_maya_deadline.py b/client/ayon_core/modules/deadline/plugins/publish/submit_maya_deadline.py index f1bc1cb2be..b1193fb914 100644 --- a/client/ayon_core/modules/deadline/plugins/publish/submit_maya_deadline.py +++ b/client/ayon_core/modules/deadline/plugins/publish/submit_maya_deadline.py @@ -39,8 +39,8 @@ from ayon_core.lib import ( EnumDef, is_in_tests, ) -from ayon_core.hosts.maya.api.lib_rendersettings import RenderSettings -from ayon_core.hosts.maya.api.lib import get_attr_in_layer +from ayon_maya.api.lib_rendersettings import RenderSettings +from ayon_maya.api.lib import get_attr_in_layer from openpype_modules.deadline import abstract_submit_deadline from openpype_modules.deadline.abstract_submit_deadline import DeadlineJobInfo diff --git a/pyproject.toml b/pyproject.toml index 4726bef41a..63d7434c06 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -108,6 +108,10 @@ line-ending = "auto" # Ignore words that are not in the dictionary. ignore-words-list = "ayon,ynput,parms,parm,hda,developpement,ue" +# Ignore lines that contain this regex. This is hack for missing inline ignore. +# Remove with next codespell release (>2.2.6) +ignore-regex = ".*codespell:ignore.*" + skip = "./.*,./package/*,*/vendor/*,*/unreal/integration/*,*/aftereffects/api/extension/js/libs/*" count = true quiet-level = 3 diff --git a/client/ayon_core/hosts/maya/__init__.py b/server_addon/maya/client/ayon_maya/__init__.py similarity index 100% rename from client/ayon_core/hosts/maya/__init__.py rename to server_addon/maya/client/ayon_maya/__init__.py diff --git a/client/ayon_core/hosts/maya/addon.py b/server_addon/maya/client/ayon_maya/addon.py similarity index 100% rename from client/ayon_core/hosts/maya/addon.py rename to server_addon/maya/client/ayon_maya/addon.py diff --git a/client/ayon_core/hosts/maya/api/__init__.py b/server_addon/maya/client/ayon_maya/api/__init__.py similarity index 100% rename from client/ayon_core/hosts/maya/api/__init__.py rename to server_addon/maya/client/ayon_maya/api/__init__.py diff --git a/client/ayon_core/hosts/maya/api/action.py b/server_addon/maya/client/ayon_maya/api/action.py similarity index 100% rename from client/ayon_core/hosts/maya/api/action.py rename to server_addon/maya/client/ayon_maya/api/action.py diff --git a/client/ayon_core/hosts/maya/api/alembic.py b/server_addon/maya/client/ayon_maya/api/alembic.py similarity index 99% rename from client/ayon_core/hosts/maya/api/alembic.py rename to server_addon/maya/client/ayon_maya/api/alembic.py index 6bd00e1cb1..007e3ce4f3 100644 --- a/client/ayon_core/hosts/maya/api/alembic.py +++ b/server_addon/maya/client/ayon_maya/api/alembic.py @@ -4,7 +4,7 @@ import os from maya import cmds # noqa -from ayon_core.hosts.maya.api.lib import evaluation +from ayon_maya.api.lib import evaluation log = logging.getLogger(__name__) diff --git a/client/ayon_core/hosts/maya/api/commands.py b/server_addon/maya/client/ayon_maya/api/commands.py similarity index 100% rename from client/ayon_core/hosts/maya/api/commands.py rename to server_addon/maya/client/ayon_maya/api/commands.py diff --git a/client/ayon_core/hosts/maya/api/customize.py b/server_addon/maya/client/ayon_maya/api/customize.py similarity index 100% rename from client/ayon_core/hosts/maya/api/customize.py rename to server_addon/maya/client/ayon_maya/api/customize.py diff --git a/client/ayon_core/hosts/maya/api/exitstack.py b/server_addon/maya/client/ayon_maya/api/exitstack.py similarity index 98% rename from client/ayon_core/hosts/maya/api/exitstack.py rename to server_addon/maya/client/ayon_maya/api/exitstack.py index 5eb7e15784..c35724e889 100644 --- a/client/ayon_core/hosts/maya/api/exitstack.py +++ b/server_addon/maya/client/ayon_maya/api/exitstack.py @@ -6,7 +6,7 @@ compatible implementation to support bothPython 2 and Python 3. Instead of using ExitStack from contextlib, use it from this module: ->>> from ayon_core.hosts.maya.api.exitstack import ExitStack +>>> from ayon_maya.api.exitstack import ExitStack It will provide the appropriate ExitStack implementation for the current running Python version. diff --git a/client/ayon_core/hosts/maya/api/fbx.py b/server_addon/maya/client/ayon_maya/api/fbx.py similarity index 99% rename from client/ayon_core/hosts/maya/api/fbx.py rename to server_addon/maya/client/ayon_maya/api/fbx.py index fd1bf2c901..28a4058551 100644 --- a/client/ayon_core/hosts/maya/api/fbx.py +++ b/server_addon/maya/client/ayon_maya/api/fbx.py @@ -4,7 +4,7 @@ import logging from maya import cmds # noqa import maya.mel as mel # noqa -from ayon_core.hosts.maya.api.lib import maintained_selection +from ayon_maya.api.lib import maintained_selection class FBXExtractor: diff --git a/client/ayon_core/hosts/maya/api/gltf.py b/server_addon/maya/client/ayon_maya/api/gltf.py similarity index 97% rename from client/ayon_core/hosts/maya/api/gltf.py rename to server_addon/maya/client/ayon_maya/api/gltf.py index 2a983f1573..9aa4bf37ef 100644 --- a/client/ayon_core/hosts/maya/api/gltf.py +++ b/server_addon/maya/client/ayon_maya/api/gltf.py @@ -16,7 +16,7 @@ _gltf_options = { "hbu": bool, # hashBufferURI "ext": bool, # externalTextures "ivt": int, # initialValuesTime - "acn": str, # animationClipName + "acn": str, # animationClipName # codespell:ignore acn "ast": int, # animationClipStartTime "aet": int, # animationClipEndTime "afr": float, # animationClipFrameRate diff --git a/client/ayon_core/hosts/maya/api/lib.py b/server_addon/maya/client/ayon_maya/api/lib.py similarity index 100% rename from client/ayon_core/hosts/maya/api/lib.py rename to server_addon/maya/client/ayon_maya/api/lib.py diff --git a/client/ayon_core/hosts/maya/api/lib_renderproducts.py b/server_addon/maya/client/ayon_maya/api/lib_renderproducts.py similarity index 100% rename from client/ayon_core/hosts/maya/api/lib_renderproducts.py rename to server_addon/maya/client/ayon_maya/api/lib_renderproducts.py diff --git a/client/ayon_core/hosts/maya/api/lib_rendersettings.py b/server_addon/maya/client/ayon_maya/api/lib_rendersettings.py similarity index 99% rename from client/ayon_core/hosts/maya/api/lib_rendersettings.py rename to server_addon/maya/client/ayon_maya/api/lib_rendersettings.py index f9e243146a..f7f3f1d746 100644 --- a/client/ayon_core/hosts/maya/api/lib_rendersettings.py +++ b/server_addon/maya/client/ayon_maya/api/lib_rendersettings.py @@ -8,7 +8,7 @@ from ayon_core.settings import get_project_settings from ayon_core.pipeline import CreatorError, get_current_project_name from ayon_core.pipeline.context_tools import get_current_folder_entity -from ayon_core.hosts.maya.api.lib import reset_frame_range +from ayon_maya.api.lib import reset_frame_range class RenderSettings(object): diff --git a/client/ayon_core/hosts/maya/api/lib_rendersetup.py b/server_addon/maya/client/ayon_maya/api/lib_rendersetup.py similarity index 99% rename from client/ayon_core/hosts/maya/api/lib_rendersetup.py rename to server_addon/maya/client/ayon_maya/api/lib_rendersetup.py index 6dca8eb6dd..d93e6af0e2 100644 --- a/client/ayon_core/hosts/maya/api/lib_rendersetup.py +++ b/server_addon/maya/client/ayon_maya/api/lib_rendersetup.py @@ -19,7 +19,7 @@ from maya.app.renderSetup.model.override import ( UniqueOverride ) -from ayon_core.hosts.maya.api.lib import get_attribute +from ayon_maya.api.lib import get_attribute EXACT_MATCH = 0 PARENT_MATCH = 1 diff --git a/client/ayon_core/hosts/maya/api/menu.py b/server_addon/maya/client/ayon_maya/api/menu.py similarity index 99% rename from client/ayon_core/hosts/maya/api/menu.py rename to server_addon/maya/client/ayon_maya/api/menu.py index e3ef50cdc0..153aff07c3 100644 --- a/client/ayon_core/hosts/maya/api/menu.py +++ b/server_addon/maya/client/ayon_maya/api/menu.py @@ -15,7 +15,7 @@ from ayon_core.pipeline import ( ) from ayon_core.pipeline.workfile import BuildWorkfile from ayon_core.tools.utils import host_tools -from ayon_core.hosts.maya.api import lib, lib_rendersettings +from ayon_maya.api import lib, lib_rendersettings from .lib import get_main_window, IS_HEADLESS from ..tools import show_look_assigner diff --git a/client/ayon_core/hosts/maya/api/pipeline.py b/server_addon/maya/client/ayon_maya/api/pipeline.py similarity index 99% rename from client/ayon_core/hosts/maya/api/pipeline.py rename to server_addon/maya/client/ayon_maya/api/pipeline.py index 74d73e5f95..84268cc6f1 100644 --- a/client/ayon_core/hosts/maya/api/pipeline.py +++ b/server_addon/maya/client/ayon_maya/api/pipeline.py @@ -45,8 +45,8 @@ from ayon_core.pipeline.workfile.lock_workfile import ( is_workfile_locked, is_workfile_lock_enabled ) -from ayon_core.hosts.maya import MAYA_ROOT_DIR -from ayon_core.hosts.maya.lib import create_workspace_mel +from ayon_maya import MAYA_ROOT_DIR +from ayon_maya.lib import create_workspace_mel from . import menu, lib from .workio import ( @@ -58,7 +58,7 @@ from .workio import ( current_file ) -log = logging.getLogger("ayon_core.hosts.maya") +log = logging.getLogger("ayon_maya") PLUGINS_DIR = os.path.join(MAYA_ROOT_DIR, "plugins") PUBLISH_PATH = os.path.join(PLUGINS_DIR, "publish") diff --git a/client/ayon_core/hosts/maya/api/plugin.py b/server_addon/maya/client/ayon_maya/api/plugin.py similarity index 97% rename from client/ayon_core/hosts/maya/api/plugin.py rename to server_addon/maya/client/ayon_maya/api/plugin.py index 6f8b74c906..b8d9748ef1 100644 --- a/client/ayon_core/hosts/maya/api/plugin.py +++ b/server_addon/maya/client/ayon_maya/api/plugin.py @@ -2,40 +2,41 @@ import json import os from abc import ABCMeta +import ayon_api import qargparse import six -import ayon_api -from maya import cmds -from maya.app.renderSetup.model import renderSetup from ayon_core.lib import BoolDef, Logger -from ayon_core.settings import get_project_settings from ayon_core.pipeline import ( - AYON_INSTANCE_ID, - AYON_CONTAINER_ID, - AVALON_INSTANCE_ID, AVALON_CONTAINER_ID, + AVALON_INSTANCE_ID, + AYON_CONTAINER_ID, + AYON_INSTANCE_ID, Anatomy, - + AutoCreator, CreatedInstance, Creator as NewCreator, - AutoCreator, - HiddenCreator, - CreatorError, + HiddenCreator, LegacyCreator, LoaderPlugin, - get_representation_path, get_current_project_name, + get_representation_path, + publish, ) -from ayon_core.pipeline.load import LoadError from ayon_core.pipeline.create import get_product_name +from ayon_core.pipeline.load import LoadError +from ayon_core.settings import get_project_settings +from maya import cmds +from maya.app.renderSetup.model import renderSetup +from pyblish.api import ContextPlugin, InstancePlugin from . import lib from .lib import imprint, read from .pipeline import containerise log = Logger.get_logger() +SETTINGS_CATEGORY = "maya" def _get_attr(node, attr, default=None): @@ -652,7 +653,7 @@ def get_load_color_for_product_type(product_type, settings=None): class Loader(LoaderPlugin): hosts = ["maya"] - + settings_category = SETTINGS_CATEGORY load_settings = {} # defined in settings @classmethod @@ -807,10 +808,9 @@ class ReferenceLoader(Loader): raise NotImplementedError("Must be implemented by subclass") def update(self, container, context): + from ayon_maya.api.lib import get_container_members from maya import cmds - from ayon_core.hosts.maya.api.lib import get_container_members - node = container["objectName"] project_name = context["project"]["name"] @@ -1025,3 +1025,30 @@ class ReferenceLoader(Loader): AYON_CONTAINER_ID, AVALON_CONTAINER_ID }: cmds.sets(node, forceElement=container) + + +class MayaLoader(LoaderPlugin): + """Base class for loader plugins.""" + + settings_category = SETTINGS_CATEGORY + + +class MayaInstancePlugin(InstancePlugin): + """Base class for instance publish plugins.""" + + settings_category = SETTINGS_CATEGORY + hosts = ["maya"] + + +class MayaContextPlugin(ContextPlugin): + """Base class for context publish plugins.""" + + settings_category = SETTINGS_CATEGORY + hosts = ["maya"] + + +class MayaExtractorPlugin(publish.Extractor): + """Base class for extract plugins.""" + + settings_category = SETTINGS_CATEGORY + hosts = ["maya"] diff --git a/client/ayon_core/hosts/maya/api/render_setup_tools.py b/server_addon/maya/client/ayon_maya/api/render_setup_tools.py similarity index 100% rename from client/ayon_core/hosts/maya/api/render_setup_tools.py rename to server_addon/maya/client/ayon_maya/api/render_setup_tools.py diff --git a/client/ayon_core/hosts/maya/api/setdress.py b/server_addon/maya/client/ayon_maya/api/setdress.py similarity index 99% rename from client/ayon_core/hosts/maya/api/setdress.py rename to server_addon/maya/client/ayon_maya/api/setdress.py index b1d5beb343..a130b93f4f 100644 --- a/client/ayon_core/hosts/maya/api/setdress.py +++ b/server_addon/maya/client/ayon_maya/api/setdress.py @@ -20,7 +20,7 @@ from ayon_core.pipeline import ( get_representation_path, get_current_project_name, ) -from ayon_core.hosts.maya.api.lib import ( +from ayon_maya.api.lib import ( matrix_equals, unique_namespace, get_container_transforms, diff --git a/client/ayon_core/hosts/maya/api/workfile_template_builder.py b/server_addon/maya/client/ayon_maya/api/workfile_template_builder.py similarity index 100% rename from client/ayon_core/hosts/maya/api/workfile_template_builder.py rename to server_addon/maya/client/ayon_maya/api/workfile_template_builder.py diff --git a/client/ayon_core/hosts/maya/api/workio.py b/server_addon/maya/client/ayon_maya/api/workio.py similarity index 100% rename from client/ayon_core/hosts/maya/api/workio.py rename to server_addon/maya/client/ayon_maya/api/workio.py diff --git a/client/ayon_core/hosts/maya/api/yeti.py b/server_addon/maya/client/ayon_maya/api/yeti.py similarity index 100% rename from client/ayon_core/hosts/maya/api/yeti.py rename to server_addon/maya/client/ayon_maya/api/yeti.py diff --git a/client/ayon_core/hosts/maya/hooks/pre_auto_load_plugins.py b/server_addon/maya/client/ayon_maya/hooks/pre_auto_load_plugins.py similarity index 100% rename from client/ayon_core/hosts/maya/hooks/pre_auto_load_plugins.py rename to server_addon/maya/client/ayon_maya/hooks/pre_auto_load_plugins.py diff --git a/client/ayon_core/hosts/maya/hooks/pre_copy_mel.py b/server_addon/maya/client/ayon_maya/hooks/pre_copy_mel.py similarity index 92% rename from client/ayon_core/hosts/maya/hooks/pre_copy_mel.py rename to server_addon/maya/client/ayon_maya/hooks/pre_copy_mel.py index 683b4c59c7..c3268b09ee 100644 --- a/client/ayon_core/hosts/maya/hooks/pre_copy_mel.py +++ b/server_addon/maya/client/ayon_maya/hooks/pre_copy_mel.py @@ -1,5 +1,5 @@ from ayon_applications import PreLaunchHook, LaunchTypes -from ayon_core.hosts.maya.lib import create_workspace_mel +from ayon_maya.lib import create_workspace_mel class PreCopyMel(PreLaunchHook): diff --git a/client/ayon_core/hosts/maya/hooks/pre_open_workfile_post_initialization.py b/server_addon/maya/client/ayon_maya/hooks/pre_open_workfile_post_initialization.py similarity index 100% rename from client/ayon_core/hosts/maya/hooks/pre_open_workfile_post_initialization.py rename to server_addon/maya/client/ayon_maya/hooks/pre_open_workfile_post_initialization.py diff --git a/client/ayon_core/hosts/maya/lib.py b/server_addon/maya/client/ayon_maya/lib.py similarity index 100% rename from client/ayon_core/hosts/maya/lib.py rename to server_addon/maya/client/ayon_maya/lib.py diff --git a/client/ayon_core/hosts/maya/plugins/__init__.py b/server_addon/maya/client/ayon_maya/plugins/__init__.py similarity index 100% rename from client/ayon_core/hosts/maya/plugins/__init__.py rename to server_addon/maya/client/ayon_maya/plugins/__init__.py diff --git a/client/ayon_core/hosts/maya/plugins/create/convert_legacy.py b/server_addon/maya/client/ayon_maya/plugins/create/convert_legacy.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/create/convert_legacy.py rename to server_addon/maya/client/ayon_maya/plugins/create/convert_legacy.py index 81cf9613b4..8616413bdd 100644 --- a/client/ayon_core/hosts/maya/plugins/create/convert_legacy.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/convert_legacy.py @@ -1,8 +1,8 @@ import ayon_api from ayon_core.pipeline.create.creator_plugins import ProductConvertorPlugin -from ayon_core.hosts.maya.api import plugin -from ayon_core.hosts.maya.api.lib import read +from ayon_maya.api import plugin +from ayon_maya.api.lib import read from maya import cmds from maya.app.renderSetup.model import renderSetup @@ -12,7 +12,7 @@ class MayaLegacyConvertor(ProductConvertorPlugin, plugin.MayaCreatorBase): """Find and convert any legacy products in the scene. - This Convertor will find all legacy products in the scene and will + This Converter will find all legacy products in the scene and will transform them to the current system. Since the old products doesn't retain any information about their original creators, the only mapping we can do is based on their families. diff --git a/client/ayon_core/hosts/maya/plugins/create/create_animation_pointcache.py b/server_addon/maya/client/ayon_maya/plugins/create/create_animation_pointcache.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/create/create_animation_pointcache.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_animation_pointcache.py index 069762e4ae..ea4cdb57fe 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_animation_pointcache.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_animation_pointcache.py @@ -1,6 +1,6 @@ from maya import cmds -from ayon_core.hosts.maya.api import lib, plugin +from ayon_maya.api import lib, plugin from ayon_core.lib import ( BoolDef, diff --git a/client/ayon_core/hosts/maya/plugins/create/create_arnold_scene_source.py b/server_addon/maya/client/ayon_maya/plugins/create/create_arnold_scene_source.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/create/create_arnold_scene_source.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_arnold_scene_source.py index e321c13ca0..8ae2759628 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_arnold_scene_source.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_arnold_scene_source.py @@ -1,6 +1,6 @@ from maya import cmds -from ayon_core.hosts.maya.api import ( +from ayon_maya.api import ( lib, plugin ) diff --git a/client/ayon_core/hosts/maya/plugins/create/create_assembly.py b/server_addon/maya/client/ayon_maya/plugins/create/create_assembly.py similarity index 83% rename from client/ayon_core/hosts/maya/plugins/create/create_assembly.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_assembly.py index 92df125748..dff04f059e 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_assembly.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_assembly.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import plugin +from ayon_maya.api import plugin class CreateAssembly(plugin.MayaCreator): diff --git a/client/ayon_core/hosts/maya/plugins/create/create_camera.py b/server_addon/maya/client/ayon_maya/plugins/create/create_camera.py similarity index 95% rename from client/ayon_core/hosts/maya/plugins/create/create_camera.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_camera.py index 4b1265bd3b..393176f5dd 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_camera.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_camera.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import ( +from ayon_maya.api import ( lib, plugin ) diff --git a/client/ayon_core/hosts/maya/plugins/create/create_layout.py b/server_addon/maya/client/ayon_maya/plugins/create/create_layout.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/create/create_layout.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_layout.py index 6cbc697502..1d9bc2c1c8 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_layout.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_layout.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import plugin +from ayon_maya.api import plugin from ayon_core.lib import BoolDef diff --git a/client/ayon_core/hosts/maya/plugins/create/create_look.py b/server_addon/maya/client/ayon_maya/plugins/create/create_look.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/create/create_look.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_look.py index ac3625c38f..1f90d18607 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_look.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_look.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import ( +from ayon_maya.api import ( plugin, lib ) diff --git a/client/ayon_core/hosts/maya/plugins/create/create_matchmove.py b/server_addon/maya/client/ayon_maya/plugins/create/create_matchmove.py similarity index 94% rename from client/ayon_core/hosts/maya/plugins/create/create_matchmove.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_matchmove.py index 44443a8b9f..9cb2a3dd47 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_matchmove.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_matchmove.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import ( +from ayon_maya.api import ( lib, plugin ) diff --git a/client/ayon_core/hosts/maya/plugins/create/create_maya_usd.py b/server_addon/maya/client/ayon_maya/plugins/create/create_maya_usd.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/create/create_maya_usd.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_maya_usd.py index 3f34a541b4..19b55384f3 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_maya_usd.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_maya_usd.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import plugin, lib +from ayon_maya.api import plugin, lib from ayon_core.lib import ( BoolDef, EnumDef, diff --git a/client/ayon_core/hosts/maya/plugins/create/create_mayascene.py b/server_addon/maya/client/ayon_maya/plugins/create/create_mayascene.py similarity index 84% rename from client/ayon_core/hosts/maya/plugins/create/create_mayascene.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_mayascene.py index cfe46336a2..9913efc016 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_mayascene.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_mayascene.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import plugin +from ayon_maya.api import plugin class CreateMayaScene(plugin.MayaCreator): diff --git a/client/ayon_core/hosts/maya/plugins/create/create_model.py b/server_addon/maya/client/ayon_maya/plugins/create/create_model.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/create/create_model.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_model.py index b47df421f3..87696c58d2 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_model.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_model.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import plugin +from ayon_maya.api import plugin from ayon_core.lib import ( BoolDef, TextDef diff --git a/client/ayon_core/hosts/maya/plugins/create/create_multishot_layout.py b/server_addon/maya/client/ayon_maya/plugins/create/create_multishot_layout.py similarity index 99% rename from client/ayon_core/hosts/maya/plugins/create/create_multishot_layout.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_multishot_layout.py index 7216236719..5229823110 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_multishot_layout.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_multishot_layout.py @@ -8,7 +8,7 @@ from ayon_api import ( ) from maya import cmds # noqa: F401 -from ayon_core.hosts.maya.api import plugin +from ayon_maya.api import plugin from ayon_core.lib import BoolDef, EnumDef, TextDef from ayon_core.pipeline import ( Creator, diff --git a/client/ayon_core/hosts/maya/plugins/create/create_multiverse_look.py b/server_addon/maya/client/ayon_maya/plugins/create/create_multiverse_look.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/create/create_multiverse_look.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_multiverse_look.py index de604a33b3..f2dcb77187 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_multiverse_look.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_multiverse_look.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import plugin +from ayon_maya.api import plugin from ayon_core.lib import ( BoolDef, EnumDef diff --git a/client/ayon_core/hosts/maya/plugins/create/create_multiverse_usd.py b/server_addon/maya/client/ayon_maya/plugins/create/create_multiverse_usd.py similarity index 99% rename from client/ayon_core/hosts/maya/plugins/create/create_multiverse_usd.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_multiverse_usd.py index 668700995f..bdcea4cd2c 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_multiverse_usd.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_multiverse_usd.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import plugin, lib +from ayon_maya.api import plugin, lib from ayon_core.lib import ( BoolDef, NumberDef, diff --git a/client/ayon_core/hosts/maya/plugins/create/create_multiverse_usd_comp.py b/server_addon/maya/client/ayon_maya/plugins/create/create_multiverse_usd_comp.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/create/create_multiverse_usd_comp.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_multiverse_usd_comp.py index 120e6ad920..2459704d14 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_multiverse_usd_comp.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_multiverse_usd_comp.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import plugin, lib +from ayon_maya.api import plugin, lib from ayon_core.lib import ( BoolDef, NumberDef, diff --git a/client/ayon_core/hosts/maya/plugins/create/create_multiverse_usd_over.py b/server_addon/maya/client/ayon_maya/plugins/create/create_multiverse_usd_over.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/create/create_multiverse_usd_over.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_multiverse_usd_over.py index 26208794e3..b070daf550 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_multiverse_usd_over.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_multiverse_usd_over.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import plugin, lib +from ayon_maya.api import plugin, lib from ayon_core.lib import ( BoolDef, NumberDef, diff --git a/client/ayon_core/hosts/maya/plugins/create/create_proxy_abc.py b/server_addon/maya/client/ayon_maya/plugins/create/create_proxy_abc.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/create/create_proxy_abc.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_proxy_abc.py index ecc031436c..431f113941 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_proxy_abc.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_proxy_abc.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import ( +from ayon_maya.api import ( lib, plugin ) diff --git a/client/ayon_core/hosts/maya/plugins/create/create_redshift_proxy.py b/server_addon/maya/client/ayon_maya/plugins/create/create_redshift_proxy.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/create/create_redshift_proxy.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_redshift_proxy.py index d99fe5a787..c4cc874a2a 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_redshift_proxy.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_redshift_proxy.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- """Creator of Redshift proxy product types.""" -from ayon_core.hosts.maya.api import plugin, lib +from ayon_maya.api import plugin, lib from ayon_core.lib import BoolDef diff --git a/client/ayon_core/hosts/maya/plugins/create/create_render.py b/server_addon/maya/client/ayon_maya/plugins/create/create_render.py similarity index 99% rename from client/ayon_core/hosts/maya/plugins/create/create_render.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_render.py index e5a8d4dbd8..5defee7d07 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_render.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_render.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- """Create ``Render`` instance in Maya.""" -from ayon_core.hosts.maya.api import ( +from ayon_maya.api import ( lib_rendersettings, plugin ) diff --git a/client/ayon_core/hosts/maya/plugins/create/create_rendersetup.py b/server_addon/maya/client/ayon_maya/plugins/create/create_rendersetup.py similarity index 95% rename from client/ayon_core/hosts/maya/plugins/create/create_rendersetup.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_rendersetup.py index 3d8d6a7309..415ab4ff8c 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_rendersetup.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_rendersetup.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import plugin +from ayon_maya.api import plugin from ayon_core.pipeline import CreatorError diff --git a/client/ayon_core/hosts/maya/plugins/create/create_review.py b/server_addon/maya/client/ayon_maya/plugins/create/create_review.py similarity index 99% rename from client/ayon_core/hosts/maya/plugins/create/create_review.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_review.py index 8a2f2df745..26fad91ed9 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_review.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_review.py @@ -3,7 +3,7 @@ import json from maya import cmds import ayon_api -from ayon_core.hosts.maya.api import ( +from ayon_maya.api import ( lib, plugin ) diff --git a/client/ayon_core/hosts/maya/plugins/create/create_rig.py b/server_addon/maya/client/ayon_maya/plugins/create/create_rig.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/create/create_rig.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_rig.py index 54be50c169..135e51bcbf 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_rig.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_rig.py @@ -1,6 +1,6 @@ from maya import cmds -from ayon_core.hosts.maya.api import plugin +from ayon_maya.api import plugin class CreateRig(plugin.MayaCreator): diff --git a/client/ayon_core/hosts/maya/plugins/create/create_setdress.py b/server_addon/maya/client/ayon_maya/plugins/create/create_setdress.py similarity index 91% rename from client/ayon_core/hosts/maya/plugins/create/create_setdress.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_setdress.py index 0f72d4d184..12532e0724 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_setdress.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_setdress.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import plugin +from ayon_maya.api import plugin from ayon_core.lib import BoolDef diff --git a/client/ayon_core/hosts/maya/plugins/create/create_unreal_skeletalmesh.py b/server_addon/maya/client/ayon_maya/plugins/create/create_unreal_skeletalmesh.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/create/create_unreal_skeletalmesh.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_unreal_skeletalmesh.py index a32e94971e..a182fe7a24 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_unreal_skeletalmesh.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_unreal_skeletalmesh.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """Creator for Unreal Skeletal Meshes.""" -from ayon_core.hosts.maya.api import plugin, lib +from ayon_maya.api import plugin, lib from ayon_core.lib import ( BoolDef, TextDef diff --git a/client/ayon_core/hosts/maya/plugins/create/create_unreal_staticmesh.py b/server_addon/maya/client/ayon_maya/plugins/create/create_unreal_staticmesh.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/create/create_unreal_staticmesh.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_unreal_staticmesh.py index 76c33f00cc..e5436bca64 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_unreal_staticmesh.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_unreal_staticmesh.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """Creator for Unreal Static Meshes.""" -from ayon_core.hosts.maya.api import plugin, lib +from ayon_maya.api import plugin, lib from maya import cmds # noqa diff --git a/client/ayon_core/hosts/maya/plugins/create/create_unreal_yeticache.py b/server_addon/maya/client/ayon_maya/plugins/create/create_unreal_yeticache.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/create/create_unreal_yeticache.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_unreal_yeticache.py index dea64b40fb..eea866d406 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_unreal_yeticache.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_unreal_yeticache.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import ( +from ayon_maya.api import ( lib, plugin ) diff --git a/client/ayon_core/hosts/maya/plugins/create/create_vrayproxy.py b/server_addon/maya/client/ayon_maya/plugins/create/create_vrayproxy.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/create/create_vrayproxy.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_vrayproxy.py index d565ec37e0..742e14ace0 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_vrayproxy.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_vrayproxy.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import ( +from ayon_maya.api import ( plugin, lib ) diff --git a/client/ayon_core/hosts/maya/plugins/create/create_vrayscene.py b/server_addon/maya/client/ayon_maya/plugins/create/create_vrayscene.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/create/create_vrayscene.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_vrayscene.py index cf5e7b5364..11c356fdef 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_vrayscene.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_vrayscene.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- """Create instance of vrayscene.""" -from ayon_core.hosts.maya.api import ( +from ayon_maya.api import ( lib_rendersettings, plugin ) diff --git a/client/ayon_core/hosts/maya/plugins/create/create_workfile.py b/server_addon/maya/client/ayon_maya/plugins/create/create_workfile.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/create/create_workfile.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_workfile.py index f636ed7b74..e0c94611b0 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_workfile.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_workfile.py @@ -3,7 +3,7 @@ import ayon_api from ayon_core.pipeline import CreatedInstance, AutoCreator -from ayon_core.hosts.maya.api import plugin +from ayon_maya.api import plugin from maya import cmds diff --git a/client/ayon_core/hosts/maya/plugins/create/create_xgen.py b/server_addon/maya/client/ayon_maya/plugins/create/create_xgen.py similarity index 79% rename from client/ayon_core/hosts/maya/plugins/create/create_xgen.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_xgen.py index fec2f07456..d13d032a13 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_xgen.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_xgen.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import plugin +from ayon_maya.api import plugin class CreateXgen(plugin.MayaCreator): diff --git a/client/ayon_core/hosts/maya/plugins/create/create_yeti_cache.py b/server_addon/maya/client/ayon_maya/plugins/create/create_yeti_cache.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/create/create_yeti_cache.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_yeti_cache.py index bf20acaca8..8a834f18c0 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_yeti_cache.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_yeti_cache.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.maya.api import ( +from ayon_maya.api import ( lib, plugin ) diff --git a/client/ayon_core/hosts/maya/plugins/create/create_yeti_rig.py b/server_addon/maya/client/ayon_maya/plugins/create/create_yeti_rig.py similarity index 95% rename from client/ayon_core/hosts/maya/plugins/create/create_yeti_rig.py rename to server_addon/maya/client/ayon_maya/plugins/create/create_yeti_rig.py index dfe224ceb1..c5378dc1b8 100644 --- a/client/ayon_core/hosts/maya/plugins/create/create_yeti_rig.py +++ b/server_addon/maya/client/ayon_maya/plugins/create/create_yeti_rig.py @@ -1,6 +1,6 @@ from maya import cmds -from ayon_core.hosts.maya.api import ( +from ayon_maya.api import ( lib, plugin ) diff --git a/client/ayon_core/hosts/maya/plugins/inventory/connect_geometry.py b/server_addon/maya/client/ayon_maya/plugins/inventory/connect_geometry.py similarity index 99% rename from client/ayon_core/hosts/maya/plugins/inventory/connect_geometry.py rename to server_addon/maya/client/ayon_maya/plugins/inventory/connect_geometry.py index 5410546a2e..ccb88313e9 100644 --- a/client/ayon_core/hosts/maya/plugins/inventory/connect_geometry.py +++ b/server_addon/maya/client/ayon_maya/plugins/inventory/connect_geometry.py @@ -1,7 +1,7 @@ from maya import cmds from ayon_core.pipeline import InventoryAction, get_repres_contexts -from ayon_core.hosts.maya.api.lib import get_id +from ayon_maya.api.lib import get_id class ConnectGeometry(InventoryAction): diff --git a/client/ayon_core/hosts/maya/plugins/inventory/connect_xgen.py b/server_addon/maya/client/ayon_maya/plugins/inventory/connect_xgen.py similarity index 100% rename from client/ayon_core/hosts/maya/plugins/inventory/connect_xgen.py rename to server_addon/maya/client/ayon_maya/plugins/inventory/connect_xgen.py diff --git a/client/ayon_core/hosts/maya/plugins/inventory/connect_yeti_rig.py b/server_addon/maya/client/ayon_maya/plugins/inventory/connect_yeti_rig.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/inventory/connect_yeti_rig.py rename to server_addon/maya/client/ayon_maya/plugins/inventory/connect_yeti_rig.py index 8f13cc6ae5..2385444403 100644 --- a/client/ayon_core/hosts/maya/plugins/inventory/connect_yeti_rig.py +++ b/server_addon/maya/client/ayon_maya/plugins/inventory/connect_yeti_rig.py @@ -9,7 +9,7 @@ from ayon_core.pipeline import ( get_repres_contexts, get_representation_path, ) -from ayon_core.hosts.maya.api.lib import get_container_members, get_id +from ayon_maya.api.lib import get_container_members, get_id class ConnectYetiRig(InventoryAction): diff --git a/client/ayon_core/hosts/maya/plugins/inventory/import_modelrender.py b/server_addon/maya/client/ayon_maya/plugins/inventory/import_modelrender.py similarity index 99% rename from client/ayon_core/hosts/maya/plugins/inventory/import_modelrender.py rename to server_addon/maya/client/ayon_maya/plugins/inventory/import_modelrender.py index 4655017ae5..5e36ec6bc1 100644 --- a/client/ayon_core/hosts/maya/plugins/inventory/import_modelrender.py +++ b/server_addon/maya/client/ayon_maya/plugins/inventory/import_modelrender.py @@ -8,7 +8,7 @@ from ayon_core.pipeline import ( InventoryAction, get_current_project_name, ) -from ayon_core.hosts.maya.api.lib import ( +from ayon_maya.api.lib import ( maintained_selection, apply_shaders ) diff --git a/client/ayon_core/hosts/maya/plugins/inventory/import_reference.py b/server_addon/maya/client/ayon_maya/plugins/inventory/import_reference.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/inventory/import_reference.py rename to server_addon/maya/client/ayon_maya/plugins/inventory/import_reference.py index 771cb96a57..5e42facad4 100644 --- a/client/ayon_core/hosts/maya/plugins/inventory/import_reference.py +++ b/server_addon/maya/client/ayon_maya/plugins/inventory/import_reference.py @@ -1,7 +1,7 @@ from maya import cmds from ayon_core.pipeline import InventoryAction -from ayon_core.hosts.maya.api.lib import get_reference_node +from ayon_maya.api.lib import get_reference_node class ImportReference(InventoryAction): diff --git a/client/ayon_core/hosts/maya/plugins/inventory/rig_recreate_animation_instance.py b/server_addon/maya/client/ayon_maya/plugins/inventory/rig_recreate_animation_instance.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/inventory/rig_recreate_animation_instance.py rename to server_addon/maya/client/ayon_maya/plugins/inventory/rig_recreate_animation_instance.py index cbff293cd7..796a651f8a 100644 --- a/client/ayon_core/hosts/maya/plugins/inventory/rig_recreate_animation_instance.py +++ b/server_addon/maya/client/ayon_maya/plugins/inventory/rig_recreate_animation_instance.py @@ -3,7 +3,7 @@ from ayon_core.pipeline import ( get_current_project_name, ) from ayon_core.pipeline.load import get_representation_contexts_by_ids -from ayon_core.hosts.maya.api.lib import ( +from ayon_maya.api.lib import ( create_rig_animation_instance, get_container_members, ) diff --git a/client/ayon_core/hosts/maya/plugins/inventory/select_containers.py b/server_addon/maya/client/ayon_maya/plugins/inventory/select_containers.py similarity index 95% rename from client/ayon_core/hosts/maya/plugins/inventory/select_containers.py rename to server_addon/maya/client/ayon_maya/plugins/inventory/select_containers.py index f0bb2fc376..e45c8a5706 100644 --- a/client/ayon_core/hosts/maya/plugins/inventory/select_containers.py +++ b/server_addon/maya/client/ayon_maya/plugins/inventory/select_containers.py @@ -1,7 +1,7 @@ from maya import cmds from ayon_core.pipeline import InventoryAction, registered_host -from ayon_core.hosts.maya.api.lib import get_container_members +from ayon_maya.api.lib import get_container_members class SelectInScene(InventoryAction): diff --git a/client/ayon_core/hosts/maya/plugins/load/_load_animation.py b/server_addon/maya/client/ayon_maya/plugins/load/_load_animation.py similarity index 91% rename from client/ayon_core/hosts/maya/plugins/load/_load_animation.py rename to server_addon/maya/client/ayon_maya/plugins/load/_load_animation.py index 393f6b0115..6d4ebe250c 100644 --- a/client/ayon_core/hosts/maya/plugins/load/_load_animation.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/_load_animation.py @@ -1,4 +1,4 @@ -import ayon_core.hosts.maya.api.plugin +import ayon_maya.api.plugin import maya.cmds as cmds @@ -14,7 +14,7 @@ def _process_reference(file_url, name, namespace, options): Returns: list: list of object nodes """ - from ayon_core.hosts.maya.api.lib import unique_namespace + from ayon_maya.api.lib import unique_namespace # Get name from asset being loaded # Assuming name is product name from the animation, we split the number # suffix from the name to ensure the namespace is unique @@ -43,7 +43,7 @@ def _process_reference(file_url, name, namespace, options): return nodes -class AbcLoader(ayon_core.hosts.maya.api.plugin.ReferenceLoader): +class AbcLoader(ayon_maya.api.plugin.ReferenceLoader): """Loader to reference an Alembic file""" product_types = { @@ -74,7 +74,7 @@ class AbcLoader(ayon_core.hosts.maya.api.plugin.ReferenceLoader): return nodes -class FbxLoader(ayon_core.hosts.maya.api.plugin.ReferenceLoader): +class FbxLoader(ayon_maya.api.plugin.ReferenceLoader): """Loader to reference an Fbx files""" product_types = { diff --git a/client/ayon_core/hosts/maya/plugins/load/actions.py b/server_addon/maya/client/ayon_maya/plugins/load/actions.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/load/actions.py rename to server_addon/maya/client/ayon_maya/plugins/load/actions.py index 8bef219812..d28645ea43 100644 --- a/client/ayon_core/hosts/maya/plugins/load/actions.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/actions.py @@ -3,11 +3,11 @@ """ import qargparse from ayon_core.pipeline import load -from ayon_core.hosts.maya.api.lib import ( +from ayon_maya.api.lib import ( maintained_selection, get_custom_namespace ) -import ayon_core.hosts.maya.api.plugin +import ayon_maya.api.plugin class SetFrameRangeLoader(load.LoaderPlugin): @@ -85,7 +85,7 @@ class SetFrameRangeWithHandlesLoader(load.LoaderPlugin): animationEndTime=end) -class ImportMayaLoader(ayon_core.hosts.maya.api.plugin.Loader): +class ImportMayaLoader(ayon_maya.api.plugin.Loader): """Import action for Maya (unmanaged) Warning: diff --git a/client/ayon_core/hosts/maya/plugins/load/load_arnold_standin.py b/server_addon/maya/client/ayon_maya/plugins/load/load_arnold_standin.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/load/load_arnold_standin.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_arnold_standin.py index ae3b68965a..d01cea3ad4 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_arnold_standin.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_arnold_standin.py @@ -1,21 +1,18 @@ import os + import clique - import maya.cmds as cmds - +from ayon_core.pipeline import get_representation_path from ayon_core.settings import get_project_settings -from ayon_core.pipeline import ( - load, - get_representation_path -) -from ayon_core.hosts.maya.api.lib import ( - unique_namespace, +from ayon_maya.api.lib import ( get_attribute_input, + get_fps_for_current_context, maintained_selection, - get_fps_for_current_context + unique_namespace, ) -from ayon_core.hosts.maya.api.pipeline import containerise -from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type +from ayon_maya.api.pipeline import containerise +from ayon_maya.api.plugin import get_load_color_for_product_type +from ayon_maya.api import plugin def is_sequence(files): @@ -26,7 +23,7 @@ def is_sequence(files): return sequence -class ArnoldStandinLoader(load.LoaderPlugin): +class ArnoldStandinLoader(plugin.Loader): """Load as Arnold standin""" product_types = { diff --git a/client/ayon_core/hosts/maya/plugins/load/load_as_template.py b/server_addon/maya/client/ayon_maya/plugins/load/load_as_template.py similarity index 79% rename from client/ayon_core/hosts/maya/plugins/load/load_as_template.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_as_template.py index f696d369e3..b6bd3c3ab6 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_as_template.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_as_template.py @@ -1,16 +1,10 @@ -from ayon_core.lib import ( - BoolDef -) -from ayon_core.pipeline import ( - load, - registered_host -) -from ayon_core.hosts.maya.api.workfile_template_builder import ( - MayaTemplateBuilder -) +from ayon_core.lib import BoolDef +from ayon_core.pipeline import registered_host +from ayon_maya.api import plugin +from ayon_maya.api.workfile_template_builder import MayaTemplateBuilder -class LoadAsTemplate(load.LoaderPlugin): +class LoadAsTemplate(plugin.Loader): """Load workfile as a template """ product_types = {"workfile", "mayaScene"} diff --git a/client/ayon_core/hosts/maya/plugins/load/load_assembly.py b/server_addon/maya/client/ayon_maya/plugins/load/load_assembly.py similarity index 88% rename from client/ayon_core/hosts/maya/plugins/load/load_assembly.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_assembly.py index 0fcbc6bd07..490631aa67 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_assembly.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_assembly.py @@ -1,16 +1,12 @@ import maya.cmds as cmds - -from ayon_core.pipeline import ( - load, - remove_container -) - -from ayon_core.hosts.maya.api.pipeline import containerise -from ayon_core.hosts.maya.api.lib import unique_namespace -from ayon_core.hosts.maya.api import setdress +from ayon_core.pipeline import remove_container +from ayon_maya.api import setdress +from ayon_maya.api.lib import unique_namespace +from ayon_maya.api.pipeline import containerise +from ayon_maya.api import plugin -class AssemblyLoader(load.LoaderPlugin): +class AssemblyLoader(plugin.Loader): product_types = {"assembly"} representations = {"json"} diff --git a/client/ayon_core/hosts/maya/plugins/load/load_audio.py b/server_addon/maya/client/ayon_maya/plugins/load/load_audio.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/load/load_audio.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_audio.py index 228189f1a1..d9f67fdd90 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_audio.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_audio.py @@ -1,14 +1,11 @@ +from ayon_core.pipeline import get_representation_path +from ayon_maya.api.lib import get_container_members, unique_namespace +from ayon_maya.api.pipeline import containerise +from ayon_maya.api import plugin from maya import cmds, mel -from ayon_core.pipeline import ( - load, - get_representation_path, -) -from ayon_core.hosts.maya.api.pipeline import containerise -from ayon_core.hosts.maya.api.lib import unique_namespace, get_container_members - -class AudioLoader(load.LoaderPlugin): +class AudioLoader(plugin.Loader): """Specific loader of audio.""" product_types = {"audio"} diff --git a/client/ayon_core/hosts/maya/plugins/load/load_gpucache.py b/server_addon/maya/client/ayon_maya/plugins/load/load_gpucache.py similarity index 91% rename from client/ayon_core/hosts/maya/plugins/load/load_gpucache.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_gpucache.py index 9832d2d657..795d01fd5a 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_gpucache.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_gpucache.py @@ -1,16 +1,13 @@ import maya.cmds as cmds - -from ayon_core.hosts.maya.api.pipeline import containerise -from ayon_core.hosts.maya.api.lib import unique_namespace -from ayon_core.pipeline import ( - load, - get_representation_path -) +from ayon_core.pipeline import get_representation_path from ayon_core.settings import get_project_settings -from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type +from ayon_maya.api.lib import unique_namespace +from ayon_maya.api.pipeline import containerise +from ayon_maya.api import plugin +from ayon_maya.api.plugin import get_load_color_for_product_type -class GpuCacheLoader(load.LoaderPlugin): +class GpuCacheLoader(plugin.Loader): """Load Alembic as gpuCache""" product_types = {"model", "animation", "proxyAbc", "pointcache"} diff --git a/client/ayon_core/hosts/maya/plugins/load/load_image.py b/server_addon/maya/client/ayon_maya/plugins/load/load_image.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/load/load_image.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_image.py index 171920f747..453e24a2d5 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_image.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_image.py @@ -1,24 +1,17 @@ import copy from ayon_core.lib import EnumDef -from ayon_core.pipeline import ( - load, - get_current_host_name, +from ayon_core.pipeline import get_current_host_name +from ayon_core.pipeline.colorspace import ( + get_current_context_imageio_config_preset, + get_imageio_file_rules, + get_imageio_file_rules_colorspace_from_filepath, ) from ayon_core.pipeline.load.utils import get_representation_path_from_context -from ayon_core.pipeline.colorspace import ( - get_imageio_file_rules_colorspace_from_filepath, - get_current_context_imageio_config_preset, - get_imageio_file_rules -) from ayon_core.settings import get_project_settings - -from ayon_core.hosts.maya.api.pipeline import containerise -from ayon_core.hosts.maya.api.lib import ( - unique_namespace, - namespaced -) - +from ayon_maya.api.lib import namespaced, unique_namespace +from ayon_maya.api.pipeline import containerise +from ayon_maya.api import plugin from maya import cmds @@ -88,7 +81,7 @@ def create_stencil(): return file, place, stencil, place_stencil -class FileNodeLoader(load.LoaderPlugin): +class FileNodeLoader(plugin.Loader): """File node loader.""" product_types = {"image", "plate", "render"} diff --git a/client/ayon_core/hosts/maya/plugins/load/load_image_plane.py b/server_addon/maya/client/ayon_maya/plugins/load/load_image_plane.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/load/load_image_plane.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_image_plane.py index 15c7654c52..3da67221e2 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_image_plane.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_image_plane.py @@ -1,18 +1,14 @@ -from qtpy import QtWidgets, QtCore - -from ayon_core.pipeline import ( - load, - get_representation_path, -) -from ayon_core.hosts.maya.api.pipeline import containerise -from ayon_core.hosts.maya.api.lib import ( - unique_namespace, +from ayon_core.pipeline import get_representation_path +from ayon_maya.api.lib import ( + get_container_members, namespaced, pairwise, - get_container_members + unique_namespace, ) - +from ayon_maya.api.pipeline import containerise +from ayon_maya.api import plugin from maya import cmds +from qtpy import QtCore, QtWidgets def disconnect_inputs(plug): @@ -84,7 +80,7 @@ class CameraWindow(QtWidgets.QDialog): self.close() -class ImagePlaneLoader(load.LoaderPlugin): +class ImagePlaneLoader(plugin.Loader): """Specific loader of plate for image planes on selected camera.""" product_types = {"image", "plate", "render"} diff --git a/client/ayon_core/hosts/maya/plugins/load/load_look.py b/server_addon/maya/client/ayon_maya/plugins/load/load_look.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/load/load_look.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_look.py index af0e000dd2..da7b3691fd 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_look.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_look.py @@ -3,18 +3,16 @@ import json from collections import defaultdict -from qtpy import QtWidgets +import ayon_maya.api.plugin from ayon_api import get_representation_by_name - from ayon_core.pipeline import get_representation_path -import ayon_core.hosts.maya.api.plugin -from ayon_core.hosts.maya.api import lib -from ayon_core.hosts.maya.api.lib import get_reference_node - from ayon_core.tools.utils import ScrollMessageBox +from ayon_maya.api import lib +from ayon_maya.api.lib import get_reference_node +from qtpy import QtWidgets -class LookLoader(ayon_core.hosts.maya.api.plugin.ReferenceLoader): +class LookLoader(ayon_maya.api.plugin.ReferenceLoader): """Specific loader for lookdev""" product_types = {"look"} diff --git a/client/ayon_core/hosts/maya/plugins/load/load_matchmove.py b/server_addon/maya/client/ayon_maya/plugins/load/load_matchmove.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/load/load_matchmove.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_matchmove.py index b19b14b1aa..7689a3ca5e 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_matchmove.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_matchmove.py @@ -1,7 +1,8 @@ +from ayon_maya.api import plugin from maya import mel -from ayon_core.pipeline import load -class MatchmoveLoader(load.LoaderPlugin): + +class MatchmoveLoader(plugin.Loader): """ This will run matchmove script to create track in scene. diff --git a/client/ayon_core/hosts/maya/plugins/load/load_maya_usd.py b/server_addon/maya/client/ayon_maya/plugins/load/load_maya_usd.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/load/load_maya_usd.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_maya_usd.py index 628a25e574..79fc1fc94f 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_maya_usd.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_maya_usd.py @@ -1,19 +1,13 @@ # -*- coding: utf-8 -*- import maya.cmds as cmds - -from ayon_core.pipeline import ( - load, - get_representation_path, -) +from ayon_core.pipeline import get_representation_path from ayon_core.pipeline.load import get_representation_path_from_context -from ayon_core.hosts.maya.api.lib import ( - namespaced, - unique_namespace -) -from ayon_core.hosts.maya.api.pipeline import containerise +from ayon_maya.api.lib import namespaced, unique_namespace +from ayon_maya.api.pipeline import containerise +from ayon_maya.api import plugin -class MayaUsdLoader(load.LoaderPlugin): +class MayaUsdLoader(plugin.Loader): """Read USD data in a Maya USD Proxy""" product_types = {"model", "usd", "pointcache", "animation"} diff --git a/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd.py b/server_addon/maya/client/ayon_maya/plugins/load/load_multiverse_usd.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_multiverse_usd.py index f32c76481d..026740a957 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_multiverse_usd.py @@ -1,23 +1,16 @@ # -*- coding: utf-8 -*- -import maya.cmds as cmds -from maya import mel import os +import maya.cmds as cmds from ayon_api import get_representation_by_id - -from ayon_core.pipeline import ( - load, - get_representation_path -) -from ayon_core.hosts.maya.api.lib import ( - maintained_selection, - namespaced, - unique_namespace -) -from ayon_core.hosts.maya.api.pipeline import containerise +from ayon_core.pipeline import get_representation_path +from ayon_maya.api import plugin +from ayon_maya.api.lib import maintained_selection, namespaced, unique_namespace +from ayon_maya.api.pipeline import containerise +from maya import mel -class MultiverseUsdLoader(load.LoaderPlugin): +class MultiverseUsdLoader(plugin.Loader): """Read USD data in a Multiverse Compound""" product_types = { diff --git a/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd_over.py b/server_addon/maya/client/ayon_maya/plugins/load/load_multiverse_usd_over.py similarity index 94% rename from client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd_over.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_multiverse_usd_over.py index b23fa48f07..a8fff12577 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd_over.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_multiverse_usd_over.py @@ -1,22 +1,17 @@ # -*- coding: utf-8 -*- -import maya.cmds as cmds -from maya import mel import os +import maya.cmds as cmds import qargparse from ayon_api import get_representation_by_id - -from ayon_core.pipeline import ( - load, - get_representation_path -) -from ayon_core.hosts.maya.api.lib import ( - maintained_selection -) -from ayon_core.hosts.maya.api.pipeline import containerise +from ayon_core.pipeline import get_representation_path +from ayon_maya.api import plugin +from ayon_maya.api.lib import maintained_selection +from ayon_maya.api.pipeline import containerise +from maya import mel -class MultiverseUsdOverLoader(load.LoaderPlugin): +class MultiverseUsdOverLoader(plugin.Loader): """Reference file""" product_types = {"mvUsdOverride"} diff --git a/client/ayon_core/hosts/maya/plugins/load/load_redshift_proxy.py b/server_addon/maya/client/ayon_maya/plugins/load/load_redshift_proxy.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/load/load_redshift_proxy.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_redshift_proxy.py index 7760d4081c..92bf6dfe26 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_redshift_proxy.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_redshift_proxy.py @@ -1,25 +1,18 @@ # -*- coding: utf-8 -*- """Loader for Redshift proxy.""" import os + import clique - import maya.cmds as cmds - +from ayon_core.pipeline import get_representation_path from ayon_core.settings import get_project_settings -from ayon_core.pipeline import ( - load, - get_representation_path -) -from ayon_core.hosts.maya.api.lib import ( - namespaced, - maintained_selection, - unique_namespace -) -from ayon_core.hosts.maya.api.pipeline import containerise -from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type +from ayon_maya.api import plugin +from ayon_maya.api.lib import maintained_selection, namespaced, unique_namespace +from ayon_maya.api.pipeline import containerise +from ayon_maya.api.plugin import get_load_color_for_product_type -class RedshiftProxyLoader(load.LoaderPlugin): +class RedshiftProxyLoader(plugin.Loader): """Load Redshift proxy""" product_types = {"redshiftproxy"} diff --git a/client/ayon_core/hosts/maya/plugins/load/load_reference.py b/server_addon/maya/client/ayon_maya/plugins/load/load_reference.py similarity index 99% rename from client/ayon_core/hosts/maya/plugins/load/load_reference.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_reference.py index 847591bd11..f8e1062e38 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_reference.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_reference.py @@ -1,17 +1,16 @@ -import difflib import contextlib +import difflib -from maya import cmds import qargparse - from ayon_core.settings import get_project_settings -from ayon_core.hosts.maya.api import plugin -from ayon_core.hosts.maya.api.lib import ( - maintained_selection, +from ayon_maya.api import plugin +from ayon_maya.api.lib import ( + create_rig_animation_instance, get_container_members, + maintained_selection, parent_nodes, - create_rig_animation_instance ) +from maya import cmds @contextlib.contextmanager diff --git a/client/ayon_core/hosts/maya/plugins/load/load_rendersetup.py b/server_addon/maya/client/ayon_maya/plugins/load/load_rendersetup.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/load/load_rendersetup.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_rendersetup.py index d5685b2c4c..3b323698c4 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_rendersetup.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_rendersetup.py @@ -6,21 +6,18 @@ When this json is loaded, it will overwrite all settings on RenderSetup instance. """ +import contextlib import json import sys -import six -import contextlib -from ayon_core.lib import BoolDef, EnumDef -from ayon_core.pipeline import ( - load, - get_representation_path -) -from ayon_core.hosts.maya.api import lib -from ayon_core.hosts.maya.api.pipeline import containerise - -from maya import cmds import maya.app.renderSetup.model.renderSetup as renderSetup +import six +from ayon_core.lib import BoolDef, EnumDef +from ayon_core.pipeline import get_representation_path +from ayon_maya.api import lib +from ayon_maya.api import plugin +from ayon_maya.api.pipeline import containerise +from maya import cmds @contextlib.contextmanager @@ -48,7 +45,7 @@ def mark_all_imported(enabled): cmds.deleteAttr(plug) -class RenderSetupLoader(load.LoaderPlugin): +class RenderSetupLoader(plugin.Loader): """Load json preset for RenderSetup overwriting current one.""" product_types = {"rendersetup"} diff --git a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_arnold.py b/server_addon/maya/client/ayon_maya/plugins/load/load_vdb_to_arnold.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/load/load_vdb_to_arnold.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_vdb_to_arnold.py index 5b0c78fd6f..4515ec499d 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_arnold.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_vdb_to_arnold.py @@ -1,15 +1,18 @@ +"""Load OpenVDB for Arnold in aiVolume. + +TODO: + `aiVolume` doesn't automatically set velocity fps correctly, set manual? + +""" import os +from ayon_core.pipeline import get_representation_path from ayon_core.settings import get_project_settings -from ayon_core.pipeline import ( - load, - get_representation_path -) -from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type -# TODO aiVolume doesn't automatically set velocity fps correctly, set manual? +from ayon_maya.api import plugin +from ayon_maya.api.plugin import get_load_color_for_product_type -class LoadVDBtoArnold(load.LoaderPlugin): +class LoadVDBtoArnold(plugin.Loader): """Load OpenVDB for Arnold in aiVolume""" product_types = {"vdbcache"} @@ -21,9 +24,9 @@ class LoadVDBtoArnold(load.LoaderPlugin): def load(self, context, name, namespace, data): + from ayon_maya.api.lib import unique_namespace + from ayon_maya.api.pipeline import containerise from maya import cmds - from ayon_core.hosts.maya.api.pipeline import containerise - from ayon_core.hosts.maya.api.lib import unique_namespace product_type = context["product"]["productType"] diff --git a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_redshift.py b/server_addon/maya/client/ayon_maya/plugins/load/load_vdb_to_redshift.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/load/load_vdb_to_redshift.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_vdb_to_redshift.py index e345a7bf6f..c08004421b 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_redshift.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_vdb_to_redshift.py @@ -1,14 +1,12 @@ import os +from ayon_core.pipeline import get_representation_path from ayon_core.settings import get_project_settings -from ayon_core.pipeline import ( - load, - get_representation_path -) -from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type +from ayon_maya.api import plugin +from ayon_maya.api.plugin import get_load_color_for_product_type -class LoadVDBtoRedShift(load.LoaderPlugin): +class LoadVDBtoRedShift(plugin.Loader): """Load OpenVDB in a Redshift Volume Shape Note that the RedshiftVolumeShape is created without a RedshiftVolume @@ -27,9 +25,9 @@ class LoadVDBtoRedShift(load.LoaderPlugin): def load(self, context, name=None, namespace=None, data=None): + from ayon_maya.api.lib import unique_namespace + from ayon_maya.api.pipeline import containerise from maya import cmds - from ayon_core.hosts.maya.api.pipeline import containerise - from ayon_core.hosts.maya.api.lib import unique_namespace product_type = context["product"]["productType"] diff --git a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_vray.py b/server_addon/maya/client/ayon_maya/plugins/load/load_vdb_to_vray.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/load/load_vdb_to_vray.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_vdb_to_vray.py index d6d1c948b0..f022f8be5e 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_vray.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_vdb_to_vray.py @@ -1,12 +1,9 @@ import os +from ayon_core.pipeline import get_representation_path from ayon_core.settings import get_project_settings -from ayon_core.pipeline import ( - load, - get_representation_path -) -from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type - +from ayon_maya.api import plugin +from ayon_maya.api.plugin import get_load_color_for_product_type from maya import cmds # List of 3rd Party Channels Mapping names for VRayVolumeGrid @@ -74,7 +71,7 @@ def _fix_duplicate_vvg_callbacks(): matched.add(callback) -class LoadVDBtoVRay(load.LoaderPlugin): +class LoadVDBtoVRay(plugin.Loader): """Load OpenVDB in a V-Ray Volume Grid""" product_types = {"vdbcache"} @@ -86,8 +83,8 @@ class LoadVDBtoVRay(load.LoaderPlugin): def load(self, context, name, namespace, data): - from ayon_core.hosts.maya.api.lib import unique_namespace - from ayon_core.hosts.maya.api.pipeline import containerise + from ayon_maya.api.lib import unique_namespace + from ayon_maya.api.pipeline import containerise path = self.filepath_from_context(context) assert os.path.exists(path), ( @@ -159,7 +156,7 @@ class LoadVDBtoVRay(load.LoaderPlugin): def _set_path(self, grid_node, path, show_preset_popup=True): - from ayon_core.hosts.maya.api.lib import attribute_values + from ayon_maya.api.lib import attribute_values from maya import cmds def _get_filename_from_folder(path): @@ -175,6 +172,7 @@ class LoadVDBtoVRay(load.LoaderPlugin): else: # Sequence import clique + # todo: check support for negative frames as input collections, remainder = clique.assemble(files) assert len(collections) == 1, ( diff --git a/client/ayon_core/hosts/maya/plugins/load/load_vrayproxy.py b/server_addon/maya/client/ayon_maya/plugins/load/load_vrayproxy.py similarity index 94% rename from client/ayon_core/hosts/maya/plugins/load/load_vrayproxy.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_vrayproxy.py index 14d645021c..c71a48247c 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_vrayproxy.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_vrayproxy.py @@ -7,24 +7,17 @@ loader will use them instead of native vray vrmesh format. """ import os -import maya.cmds as cmds - import ayon_api +import maya.cmds as cmds +from ayon_core.pipeline import get_representation_path from ayon_core.settings import get_project_settings -from ayon_core.pipeline import ( - load, - get_representation_path, -) -from ayon_core.hosts.maya.api.lib import ( - maintained_selection, - namespaced, - unique_namespace -) -from ayon_core.hosts.maya.api.pipeline import containerise -from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type +from ayon_maya.api.lib import maintained_selection, namespaced, unique_namespace +from ayon_maya.api.pipeline import containerise +from ayon_maya.api import plugin +from ayon_maya.api.plugin import get_load_color_for_product_type -class VRayProxyLoader(load.LoaderPlugin): +class VRayProxyLoader(plugin.Loader): """Load VRay Proxy with Alembic or VrayMesh.""" product_types = {"vrayproxy", "model", "pointcache", "animation"} diff --git a/client/ayon_core/hosts/maya/plugins/load/load_vrayscene.py b/server_addon/maya/client/ayon_maya/plugins/load/load_vrayscene.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/load/load_vrayscene.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_vrayscene.py index ea3215da97..255ca844ba 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_vrayscene.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_vrayscene.py @@ -1,20 +1,14 @@ # -*- coding: utf-8 -*- import maya.cmds as cmds # noqa +from ayon_core.pipeline import get_representation_path from ayon_core.settings import get_project_settings -from ayon_core.pipeline import ( - load, - get_representation_path -) -from ayon_core.hosts.maya.api.lib import ( - maintained_selection, - namespaced, - unique_namespace -) -from ayon_core.hosts.maya.api.pipeline import containerise -from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type +from ayon_maya.api.lib import maintained_selection, namespaced, unique_namespace +from ayon_maya.api.pipeline import containerise +from ayon_maya.api import plugin +from ayon_maya.api.plugin import get_load_color_for_product_type -class VRaySceneLoader(load.LoaderPlugin): +class VRaySceneLoader(plugin.Loader): """Load Vray scene""" product_types = {"vrayscene_layer"} diff --git a/client/ayon_core/hosts/maya/plugins/load/load_xgen.py b/server_addon/maya/client/ayon_maya/plugins/load/load_xgen.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/load/load_xgen.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_xgen.py index e2664439b0..88d9d550da 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_xgen.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_xgen.py @@ -1,23 +1,21 @@ import os import shutil +from ayon_maya.api import plugin import maya.cmds as cmds import xgenm - +from ayon_core.pipeline import get_representation_path +from ayon_maya.api import current_file +from ayon_maya.api.lib import ( + attribute_values, + get_container_members, + maintained_selection, + write_xgen_file, +) from qtpy import QtWidgets -import ayon_core.hosts.maya.api.plugin -from ayon_core.hosts.maya.api.lib import ( - maintained_selection, - get_container_members, - attribute_values, - write_xgen_file -) -from ayon_core.hosts.maya.api import current_file -from ayon_core.pipeline import get_representation_path - -class XgenLoader(ayon_core.hosts.maya.api.plugin.ReferenceLoader): +class XgenLoader(plugin.ReferenceLoader): """Load Xgen as reference""" product_types = {"xgen"} diff --git a/client/ayon_core/hosts/maya/plugins/load/load_yeti_cache.py b/server_addon/maya/client/ayon_maya/plugins/load/load_yeti_cache.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/load/load_yeti_cache.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_yeti_cache.py index 4ca9ae9d03..6000de2507 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_yeti_cache.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_yeti_cache.py @@ -1,21 +1,17 @@ -import os import json +import os import re from collections import defaultdict import clique -from maya import cmds - +from ayon_core.pipeline import get_representation_path from ayon_core.settings import get_project_settings -from ayon_core.pipeline import ( - load, - get_representation_path -) -from ayon_core.hosts.maya.api import lib -from ayon_core.hosts.maya.api.yeti import create_yeti_variable -from ayon_core.hosts.maya.api.pipeline import containerise -from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type - +from ayon_maya.api import lib +from ayon_maya.api.pipeline import containerise +from ayon_maya.api import plugin +from ayon_maya.api.plugin import get_load_color_for_product_type +from ayon_maya.api.yeti import create_yeti_variable +from maya import cmds # Do not reset these values on update but only apply on first load # to preserve any potential local overrides @@ -45,7 +41,7 @@ def set_attribute(node, attr, value): lib.set_attribute(node, attr, value) -class YetiCacheLoader(load.LoaderPlugin): +class YetiCacheLoader(plugin.Loader): """Load Yeti Cache with one or more Yeti nodes""" product_types = {"yeticache", "yetiRig"} diff --git a/client/ayon_core/hosts/maya/plugins/load/load_yeti_rig.py b/server_addon/maya/client/ayon_maya/plugins/load/load_yeti_rig.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/load/load_yeti_rig.py rename to server_addon/maya/client/ayon_maya/plugins/load/load_yeti_rig.py index 7444566ee1..a45e5c63ef 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_yeti_rig.py +++ b/server_addon/maya/client/ayon_maya/plugins/load/load_yeti_rig.py @@ -1,12 +1,9 @@ from typing import List import maya.cmds as cmds - -from ayon_core.hosts.maya.api import plugin -from ayon_core.hosts.maya.api import lib - from ayon_core.pipeline import registered_host from ayon_core.pipeline.create import CreateContext +from ayon_maya.api import lib, plugin class YetiRigLoader(plugin.ReferenceLoader): diff --git a/client/ayon_core/hosts/maya/plugins/publish/__init__.py b/server_addon/maya/client/ayon_maya/plugins/publish/__init__.py similarity index 100% rename from client/ayon_core/hosts/maya/plugins/publish/__init__.py rename to server_addon/maya/client/ayon_maya/plugins/publish/__init__.py diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_animation.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_animation.py similarity index 95% rename from client/ayon_core/hosts/maya/plugins/publish/collect_animation.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_animation.py index 391c80c84e..528d981c4b 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_animation.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_animation.py @@ -1,9 +1,9 @@ -import pyblish.api - import maya.cmds as cmds +import pyblish.api +from ayon_maya.api import plugin -class CollectAnimationOutputGeometry(pyblish.api.InstancePlugin): +class CollectAnimationOutputGeometry(plugin.MayaInstancePlugin): """Collect out hierarchy data for instance. Collect all hierarchy nodes which reside in the out_SET of the animation @@ -18,7 +18,6 @@ class CollectAnimationOutputGeometry(pyblish.api.InstancePlugin): order = pyblish.api.CollectorOrder + 0.4 families = ["animation"] label = "Collect Animation Output Geometry" - hosts = ["maya"] ignore_type = ["constraints"] diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_arnold_scene_source.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_arnold_scene_source.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/collect_arnold_scene_source.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_arnold_scene_source.py index fb71e128eb..c9dd0b8063 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_arnold_scene_source.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_arnold_scene_source.py @@ -1,10 +1,10 @@ +import pyblish.api +from ayon_maya.api.lib import get_all_children +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -from ayon_core.hosts.maya.api.lib import get_all_children - -class CollectArnoldSceneSource(pyblish.api.InstancePlugin): +class CollectArnoldSceneSource(plugin.MayaInstancePlugin): """Collect Arnold Scene Source data.""" # Offset to be after renderable camera collection. diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_assembly.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_assembly.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/publish/collect_assembly.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_assembly.py index eebbbd4447..e57d70662c 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_assembly.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_assembly.py @@ -1,14 +1,20 @@ +"""Collect all relevant assembly items. + +Todo: + Publish of assembly need unique namespace for all assets, we should + create validator for this. + +""" from collections import defaultdict import pyblish.api from maya import cmds, mel -from ayon_core.hosts.maya import api -from ayon_core.hosts.maya.api import lib - -# TODO : Publish of assembly: -unique namespace for all assets, VALIDATOR! +from ayon_maya import api +from ayon_maya.api import lib +from ayon_maya.api import plugin -class CollectAssembly(pyblish.api.InstancePlugin): +class CollectAssembly(plugin.MayaInstancePlugin): """Collect all relevant assembly items Collected data: diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_current_file.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_current_file.py similarity index 78% rename from client/ayon_core/hosts/maya/plugins/publish/collect_current_file.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_current_file.py index c7105a7f3c..8bd1908c73 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_current_file.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_current_file.py @@ -1,15 +1,13 @@ - import pyblish.api - +from ayon_maya.api import plugin from maya import cmds -class CollectCurrentFile(pyblish.api.ContextPlugin): +class CollectCurrentFile(plugin.MayaContextPlugin): """Inject the current working file.""" order = pyblish.api.CollectorOrder - 0.4 label = "Maya Current File" - hosts = ['maya'] def process(self, context): """Inject the current working file""" diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_fbx_animation.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_fbx_animation.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/collect_fbx_animation.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_fbx_animation.py index d8fd7a16e8..83f42667a5 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_fbx_animation.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_fbx_animation.py @@ -1,16 +1,16 @@ # -*- coding: utf-8 -*- -from maya import cmds # noqa import pyblish.api from ayon_core.pipeline import OptionalPyblishPluginMixin +from ayon_maya.api import plugin +from maya import cmds # noqa -class CollectFbxAnimation(pyblish.api.InstancePlugin, +class CollectFbxAnimation(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Collect Animated Rig Data for FBX Extractor.""" order = pyblish.api.CollectorOrder + 0.2 label = "Collect Fbx Animation" - hosts = ["maya"] families = ["animation"] optional = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_fbx_camera.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_fbx_camera.py similarity index 85% rename from client/ayon_core/hosts/maya/plugins/publish/collect_fbx_camera.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_fbx_camera.py index bfa5bccbb9..f6791b6e72 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_fbx_camera.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_fbx_camera.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- -from maya import cmds # noqa import pyblish.api +from ayon_maya.api import plugin +from maya import cmds # noqa -class CollectFbxCamera(pyblish.api.InstancePlugin): +class CollectFbxCamera(plugin.MayaInstancePlugin): """Collect Camera for FBX export.""" order = pyblish.api.CollectorOrder + 0.2 diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_file_dependencies.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_file_dependencies.py similarity index 91% rename from client/ayon_core/hosts/maya/plugins/publish/collect_file_dependencies.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_file_dependencies.py index 60853bd1ee..74b8054c33 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_file_dependencies.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_file_dependencies.py @@ -1,14 +1,13 @@ from maya import cmds - +from ayon_maya.api import plugin import pyblish.api -class CollectFileDependencies(pyblish.api.ContextPlugin): +class CollectFileDependencies(plugin.MayaContextPlugin): """Gather all files referenced in this scene.""" label = "Collect File Dependencies" order = pyblish.api.CollectorOrder - 0.49 - hosts = ["maya"] families = ["renderlayer"] @classmethod diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_gltf.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_gltf.py similarity index 85% rename from client/ayon_core/hosts/maya/plugins/publish/collect_gltf.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_gltf.py index bb37fe3a7e..7ee23d289c 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_gltf.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_gltf.py @@ -1,8 +1,9 @@ # -*- coding: utf-8 -*- import pyblish.api +from ayon_maya.api import plugin -class CollectGLTF(pyblish.api.InstancePlugin): +class CollectGLTF(plugin.MayaInstancePlugin): """Collect Assets for GLTF/GLB export.""" order = pyblish.api.CollectorOrder + 0.2 diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_history.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_history.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/collect_history.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_history.py index 2da74991c0..9041d4d1d5 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_history.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_history.py @@ -1,9 +1,9 @@ +import pyblish.api +from ayon_maya.api import plugin from maya import cmds -import pyblish.api - -class CollectMayaHistory(pyblish.api.InstancePlugin): +class CollectMayaHistory(plugin.MayaInstancePlugin): """Collect history for instances from the Maya scene Note: diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_inputs.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_inputs.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/publish/collect_inputs.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_inputs.py index fa5a694a76..67d4a3f378 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_inputs.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_inputs.py @@ -5,8 +5,9 @@ import maya.api.OpenMaya as om import pyblish.api from ayon_core.pipeline import registered_host -from ayon_core.hosts.maya.api.lib import get_container_members -from ayon_core.hosts.maya.api.lib_rendersetup import get_shader_in_layer +from ayon_maya.api.lib import get_container_members +from ayon_maya.api.lib_rendersetup import get_shader_in_layer +from ayon_maya.api import plugin def iter_history(nodes, @@ -93,7 +94,7 @@ def collect_input_containers(containers, nodes): if any(node in container["_members"] for node in nodes)] -class CollectUpstreamInputs(pyblish.api.InstancePlugin): +class CollectUpstreamInputs(plugin.MayaInstancePlugin): """Collect input source inputs for this publish. This will include `inputs` data of which loaded publishes were used in the @@ -104,7 +105,6 @@ class CollectUpstreamInputs(pyblish.api.InstancePlugin): label = "Collect Inputs" order = pyblish.api.CollectorOrder + 0.34 - hosts = ["maya"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_instances.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_instances.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/collect_instances.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_instances.py index 774c217cfd..0ca43d4be9 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_instances.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_instances.py @@ -1,10 +1,11 @@ from maya import cmds import pyblish.api -from ayon_core.hosts.maya.api.lib import get_all_children +from ayon_maya.api.lib import get_all_children +from ayon_maya.api import plugin -class CollectNewInstances(pyblish.api.InstancePlugin): +class CollectNewInstances(plugin.MayaInstancePlugin): """Gather members for instances and pre-defined attribute This collector takes into account assets that are associated with @@ -105,8 +106,10 @@ class CollectNewInstances(pyblish.api.InstancePlugin): parents = set() for node in nodes: - splitted = node.split("|") - items = ["|".join(splitted[0:i]) for i in range(2, len(splitted))] + split_parts = node.split("|") + items = [ + "|".join(split_parts[:i]) for i in range(2, len(split_parts)) + ] parents.update(items) return parents diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_look.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_look.py similarity index 99% rename from client/ayon_core/hosts/maya/plugins/publish/collect_look.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_look.py index a3a32bc0cb..691933babd 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_look.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_look.py @@ -1,12 +1,13 @@ # -*- coding: utf-8 -*- """Maya look collector.""" -import re -import os import glob +import os +import re -from maya import cmds # noqa import pyblish.api -from ayon_core.hosts.maya.api import lib +from ayon_maya.api import lib +from ayon_maya.api import plugin +from maya import cmds # noqa SHAPE_ATTRS = {"castsShadows", "receiveShadows", @@ -265,7 +266,7 @@ def get_file_node_files(node): return result -class CollectLook(pyblish.api.InstancePlugin): +class CollectLook(plugin.MayaInstancePlugin): """Collect look data for instance. For the shapes/transforms of the referenced object to collect look for @@ -286,7 +287,6 @@ class CollectLook(pyblish.api.InstancePlugin): order = pyblish.api.CollectorOrder + 0.2 families = ["look"] label = "Collect Look" - hosts = ["maya"] def process(self, instance): """Collect the Look in the instance with the correct layer settings""" @@ -644,7 +644,6 @@ class CollectModelRenderSets(CollectLook): order = pyblish.api.CollectorOrder + 0.21 families = ["model"] label = "Collect Model Render Sets" - hosts = ["maya"] def collect_sets(self, instance): """Collect all related objectSets except shadingEngines diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_maya_scene_time.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_maya_scene_time.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/publish/collect_maya_scene_time.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_maya_scene_time.py index 6a20cb151f..c10d0fffbe 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_maya_scene_time.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_maya_scene_time.py @@ -1,9 +1,9 @@ +import pyblish.api +from ayon_maya.api import plugin from maya import cmds -import pyblish.api - -class CollectMayaSceneTime(pyblish.api.InstancePlugin): +class CollectMayaSceneTime(plugin.MayaInstancePlugin): """Collect Maya Scene playback range This allows to reproduce the playback range for the content to be loaded. diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_maya_units.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_maya_units.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/publish/collect_maya_units.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_maya_units.py index 2421641d26..47888506ff 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_maya_units.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_maya_units.py @@ -1,15 +1,16 @@ import maya.cmds as cmds import maya.mel as mel +from ayon_maya.api import plugin + import pyblish.api -class CollectMayaUnits(pyblish.api.ContextPlugin): +class CollectMayaUnits(plugin.MayaContextPlugin): """Collect Maya's scene units.""" label = "Maya Units" order = pyblish.api.CollectorOrder - hosts = ["maya"] def process(self, context): diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_maya_workspace.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_maya_workspace.py similarity index 87% rename from client/ayon_core/hosts/maya/plugins/publish/collect_maya_workspace.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_maya_workspace.py index 122fabe8a1..a7b51e1fb3 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_maya_workspace.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_maya_workspace.py @@ -1,17 +1,16 @@ import os import pyblish.api - +from ayon_maya.api import plugin from maya import cmds -class CollectMayaWorkspace(pyblish.api.ContextPlugin): +class CollectMayaWorkspace(plugin.MayaContextPlugin): """Inject the current workspace into context""" order = pyblish.api.CollectorOrder - 0.5 label = "Maya Workspace" - hosts = ['maya'] def process(self, context): workspace = cmds.workspace(rootDirectory=True, query=True) diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_model.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_model.py similarity index 89% rename from client/ayon_core/hosts/maya/plugins/publish/collect_model.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_model.py index 9d45ed63bc..13e5a609e7 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_model.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_model.py @@ -1,9 +1,9 @@ +import pyblish.api +from ayon_maya.api import plugin from maya import cmds -import pyblish.api - -class CollectModelData(pyblish.api.InstancePlugin): +class CollectModelData(plugin.MayaInstancePlugin): """Collect model data Ensures always only a single frame is extracted (current frame). diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_multiverse_look.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_multiverse_look.py similarity index 99% rename from client/ayon_core/hosts/maya/plugins/publish/collect_multiverse_look.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_multiverse_look.py index 83e743c92e..ddf36b7eda 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_multiverse_look.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_multiverse_look.py @@ -2,9 +2,10 @@ import glob import os import re -from maya import cmds import pyblish.api -from ayon_core.hosts.maya.api import lib +from ayon_maya.api import lib +from ayon_maya.api import plugin +from maya import cmds SHAPE_ATTRS = ["castsShadows", "receiveShadows", @@ -251,7 +252,7 @@ def is_mipmap(fname): return False -class CollectMultiverseLookData(pyblish.api.InstancePlugin): +class CollectMultiverseLookData(plugin.MayaInstancePlugin): """Collect Multiverse Look Searches through the overrides finding all material overrides. From there diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_pointcache.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_pointcache.py similarity index 95% rename from client/ayon_core/hosts/maya/plugins/publish/collect_pointcache.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_pointcache.py index 5578a57f31..8d0b45137f 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_pointcache.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_pointcache.py @@ -1,15 +1,14 @@ +import pyblish.api +from ayon_maya.api import plugin from maya import cmds -import pyblish.api - -class CollectPointcache(pyblish.api.InstancePlugin): +class CollectPointcache(plugin.MayaInstancePlugin): """Collect pointcache data for instance.""" order = pyblish.api.CollectorOrder + 0.4 families = ["pointcache"] label = "Collect Pointcache" - hosts = ["maya"] def process(self, instance): if instance.data.get("farm"): diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_remove_marked.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_remove_marked.py similarity index 86% rename from client/ayon_core/hosts/maya/plugins/publish/collect_remove_marked.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_remove_marked.py index 69e69f6630..14d914cac5 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_remove_marked.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_remove_marked.py @@ -1,7 +1,8 @@ import pyblish.api +from ayon_maya.api import plugin -class CollectRemoveMarked(pyblish.api.ContextPlugin): +class CollectRemoveMarked(plugin.MayaContextPlugin): """Remove marked data Remove instances that have 'remove' in their instance.data diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_render.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_render.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/publish/collect_render.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_render.py index 21095935a2..160a019540 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_render.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_render.py @@ -32,24 +32,23 @@ Provides: instance -> pixelAspect """ +import json import os import platform -import json - -from maya import cmds import pyblish.api - -from ayon_core.pipeline import KnownPublishError from ayon_core.lib import get_formatted_current_time -from ayon_core.hosts.maya.api.lib_renderproducts import ( +from ayon_core.pipeline import KnownPublishError +from ayon_maya.api import lib +from ayon_maya.api.lib_renderproducts import ( + UnsupportedRendererException, get as get_layer_render_products, - UnsupportedRendererException ) -from ayon_core.hosts.maya.api import lib +from ayon_maya.api import plugin +from maya import cmds -class CollectMayaRender(pyblish.api.InstancePlugin): +class CollectMayaRender(plugin.MayaInstancePlugin): """Gather all publishable render layers from renderSetup.""" order = pyblish.api.CollectorOrder + 0.01 diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_render_layer_aovs.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_render_layer_aovs.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/publish/collect_render_layer_aovs.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_render_layer_aovs.py index 1c83918155..dd4a8fefe5 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_render_layer_aovs.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_render_layer_aovs.py @@ -1,11 +1,10 @@ +import pyblish.api +from ayon_maya.api import lib +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -from ayon_core.hosts.maya.api import lib - - -class CollectRenderLayerAOVS(pyblish.api.InstancePlugin): +class CollectRenderLayerAOVS(plugin.MayaInstancePlugin): """Collect all render layer's AOVs / Render Elements that will render. This collector is important to be able to Extend Frames. @@ -26,7 +25,6 @@ class CollectRenderLayerAOVS(pyblish.api.InstancePlugin): order = pyblish.api.CollectorOrder + 0.02 label = "Render Elements / AOVs" - hosts = ["maya"] families = ["renderlayer"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_renderable_camera.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_renderable_camera.py similarity index 85% rename from client/ayon_core/hosts/maya/plugins/publish/collect_renderable_camera.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_renderable_camera.py index 97d857079b..fbd181de3e 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_renderable_camera.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_renderable_camera.py @@ -1,11 +1,10 @@ import pyblish.api - +from ayon_maya.api.lib_rendersetup import get_attr_in_layer +from ayon_maya.api import plugin from maya import cmds -from ayon_core.hosts.maya.api.lib_rendersetup import get_attr_in_layer - -class CollectRenderableCamera(pyblish.api.InstancePlugin): +class CollectRenderableCamera(plugin.MayaInstancePlugin): """Collect the renderable camera(s) for the render layer""" # Offset to be after renderlayer collection. diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_review.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_review.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/publish/collect_review.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_review.py index 4e35b3bcc2..8a50c2f0a9 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_review.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_review.py @@ -1,13 +1,12 @@ -from maya import cmds, mel - import ayon_api import pyblish.api - from ayon_core.pipeline import KnownPublishError -from ayon_core.hosts.maya.api import lib +from ayon_maya.api import lib +from ayon_maya.api import plugin +from maya import cmds, mel -class CollectReview(pyblish.api.InstancePlugin): +class CollectReview(plugin.MayaInstancePlugin): """Collect Review data """ diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_rig_sets.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_rig_sets.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/collect_rig_sets.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_rig_sets.py index 34ff26a8b8..98f4d38ab2 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_rig_sets.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_rig_sets.py @@ -1,8 +1,9 @@ import pyblish.api +from ayon_maya.api import plugin from maya import cmds -class CollectRigSets(pyblish.api.InstancePlugin): +class CollectRigSets(plugin.MayaInstancePlugin): """Ensure rig contains pipeline-critical content Every rig must contain at least two object sets: @@ -13,7 +14,6 @@ class CollectRigSets(pyblish.api.InstancePlugin): order = pyblish.api.CollectorOrder + 0.05 label = "Collect Rig Sets" - hosts = ["maya"] families = ["rig"] accepted_output = ["mesh", "transform"] diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_skeleton_mesh.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_skeleton_mesh.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/collect_skeleton_mesh.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_skeleton_mesh.py index 31f0eca88c..aaec4cb6d9 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_skeleton_mesh.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_skeleton_mesh.py @@ -1,14 +1,14 @@ # -*- coding: utf-8 -*- -from maya import cmds # noqa import pyblish.api +from ayon_maya.api import plugin +from maya import cmds # noqa -class CollectSkeletonMesh(pyblish.api.InstancePlugin): +class CollectSkeletonMesh(plugin.MayaInstancePlugin): """Collect Static Rig Data for FBX Extractor.""" order = pyblish.api.CollectorOrder + 0.2 label = "Collect Skeleton Mesh" - hosts = ["maya"] families = ["rig"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_unreal_skeletalmesh.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_unreal_skeletalmesh.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/collect_unreal_skeletalmesh.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_unreal_skeletalmesh.py index 79693bb35e..32515a5957 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_unreal_skeletalmesh.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_unreal_skeletalmesh.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- from maya import cmds # noqa import pyblish.api +from ayon_maya.api import plugin -class CollectUnrealSkeletalMesh(pyblish.api.InstancePlugin): +class CollectUnrealSkeletalMesh(plugin.MayaInstancePlugin): """Collect Unreal Skeletal Mesh.""" order = pyblish.api.CollectorOrder + 0.2 diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_unreal_staticmesh.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_unreal_staticmesh.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/collect_unreal_staticmesh.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_unreal_staticmesh.py index 03b6c4a188..35295d6e3b 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_unreal_staticmesh.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_unreal_staticmesh.py @@ -1,10 +1,11 @@ # -*- coding: utf-8 -*- from maya import cmds # noqa import pyblish.api +from ayon_maya.api import plugin from pprint import pformat -class CollectUnrealStaticMesh(pyblish.api.InstancePlugin): +class CollectUnrealStaticMesh(plugin.MayaInstancePlugin): """Collect Unreal Static Mesh.""" order = pyblish.api.CollectorOrder + 0.2 diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_user_defined_attributes.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_user_defined_attributes.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/collect_user_defined_attributes.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_user_defined_attributes.py index 3d586d48fb..e468636def 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_user_defined_attributes.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_user_defined_attributes.py @@ -1,15 +1,14 @@ from maya import cmds - +from ayon_maya.api import plugin import pyblish.api -class CollectUserDefinedAttributes(pyblish.api.InstancePlugin): +class CollectUserDefinedAttributes(plugin.MayaInstancePlugin): """Collect user defined attributes for nodes in instance.""" order = pyblish.api.CollectorOrder + 0.45 families = ["pointcache", "animation", "usd"] label = "Collect User Defined Attributes" - hosts = ["maya"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_vrayproxy.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_vrayproxy.py similarity index 88% rename from client/ayon_core/hosts/maya/plugins/publish/collect_vrayproxy.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_vrayproxy.py index 8630f56e58..a5491e5f9b 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_vrayproxy.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_vrayproxy.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- """Collect Vray Proxy.""" import pyblish.api +from ayon_maya.api import plugin -class CollectVrayProxy(pyblish.api.InstancePlugin): +class CollectVrayProxy(plugin.MayaInstancePlugin): """Collect Vray Proxy instance. Add `pointcache` family for it. diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_vrayscene.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_vrayscene.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/publish/collect_vrayscene.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_vrayscene.py index 9548cd9387..f14735574e 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_vrayscene.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_vrayscene.py @@ -1,13 +1,13 @@ # -*- coding: utf-8 -*- """Collect Vray Scene and prepare it for extraction and publishing.""" - import pyblish.api from ayon_core.lib import get_formatted_current_time -from ayon_core.hosts.maya.api import lib +from ayon_maya.api import lib +from ayon_maya.api import plugin -class CollectVrayScene(pyblish.api.InstancePlugin): +class CollectVrayScene(plugin.MayaInstancePlugin): """Collect Vray Scene. If export on farm is checked, job is created to export it. diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_workfile.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_workfile.py similarity index 91% rename from client/ayon_core/hosts/maya/plugins/publish/collect_workfile.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_workfile.py index e2b64f1ebd..fa0689849a 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_workfile.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_workfile.py @@ -1,13 +1,13 @@ import os import pyblish.api +from ayon_maya.api import plugin -class CollectWorkfileData(pyblish.api.InstancePlugin): +class CollectWorkfileData(plugin.MayaInstancePlugin): """Inject data into Workfile instance""" order = pyblish.api.CollectorOrder - 0.01 label = "Maya Workfile" - hosts = ['maya'] families = ["workfile"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_workscene_fps.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_workscene_fps.py similarity index 78% rename from client/ayon_core/hosts/maya/plugins/publish/collect_workscene_fps.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_workscene_fps.py index 41d6ffea33..a87483e67f 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_workscene_fps.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_workscene_fps.py @@ -1,13 +1,13 @@ import pyblish.api +from ayon_maya.api import plugin from maya import mel -class CollectWorksceneFPS(pyblish.api.ContextPlugin): +class CollectWorksceneFPS(plugin.MayaContextPlugin): """Get the FPS of the work scene""" label = "Workscene FPS" order = pyblish.api.CollectorOrder - hosts = ["maya"] def process(self, context): fps = mel.eval('currentTimeUnitToFPS()') diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_xgen.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_xgen.py similarity index 94% rename from client/ayon_core/hosts/maya/plugins/publish/collect_xgen.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_xgen.py index f8f506376d..9ef17f3399 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_xgen.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_xgen.py @@ -1,12 +1,12 @@ import os +import pyblish.api +from ayon_maya.api.lib import get_attribute_input +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -from ayon_core.hosts.maya.api.lib import get_attribute_input - -class CollectXgen(pyblish.api.InstancePlugin): +class CollectXgen(plugin.MayaInstancePlugin): """Collect Xgen""" order = pyblish.api.CollectorOrder + 0.499999 diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_yeti_cache.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_yeti_cache.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/collect_yeti_cache.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_yeti_cache.py index e1755e4212..44de461126 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_yeti_cache.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_yeti_cache.py @@ -1,10 +1,8 @@ -from maya import cmds - import pyblish.api - -from ayon_core.hosts.maya.api import lib -from ayon_core.hosts.maya.api.yeti import get_yeti_user_variables - +from ayon_maya.api import lib +from ayon_maya.api import plugin +from ayon_maya.api.yeti import get_yeti_user_variables +from maya import cmds SETTINGS = { # Preview @@ -24,7 +22,7 @@ SETTINGS = { } -class CollectYetiCache(pyblish.api.InstancePlugin): +class CollectYetiCache(plugin.MayaInstancePlugin): """Collect all information of the Yeti caches The information contains the following attributes per Yeti node @@ -41,7 +39,6 @@ class CollectYetiCache(pyblish.api.InstancePlugin): order = pyblish.api.CollectorOrder + 0.45 label = "Collect Yeti Cache" families = ["yetiRig", "yeticache", "yeticacheUE"] - hosts = ["maya"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_yeti_rig.py b/server_addon/maya/client/ayon_maya/plugins/publish/collect_yeti_rig.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/publish/collect_yeti_rig.py rename to server_addon/maya/client/ayon_maya/plugins/publish/collect_yeti_rig.py index 8964e17f14..dbdc10789f 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_yeti_rig.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/collect_yeti_rig.py @@ -1,13 +1,11 @@ import os import re -from maya import cmds - import pyblish.api - -from ayon_core.hosts.maya.api import lib from ayon_core.pipeline.publish import KnownPublishError - +from ayon_maya.api import lib +from ayon_maya.api import plugin +from maya import cmds SETTINGS = {"renderDensity", "renderWidth", @@ -17,13 +15,12 @@ SETTINGS = {"renderDensity", "cbId"} -class CollectYetiRig(pyblish.api.InstancePlugin): +class CollectYetiRig(plugin.MayaInstancePlugin): """Collect all information of the Yeti Rig""" order = pyblish.api.CollectorOrder + 0.4 label = "Collect Yeti Rig" families = ["yetiRig"] - hosts = ["maya"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/determine_future_version.py b/server_addon/maya/client/ayon_maya/plugins/publish/determine_future_version.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/determine_future_version.py rename to server_addon/maya/client/ayon_maya/plugins/publish/determine_future_version.py index 5b597f2707..0c05b499c0 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/determine_future_version.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/determine_future_version.py @@ -1,13 +1,13 @@ import pyblish.api +from ayon_maya.api import plugin -class DetermineFutureVersion(pyblish.api.InstancePlugin): +class DetermineFutureVersion(plugin.MayaInstancePlugin): """ This will determine version of product if we want render to be attached to. """ label = "Determine Product Version" order = pyblish.api.IntegratorOrder - hosts = ["maya"] families = ["renderlayer"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_active_view_thumbnail.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_active_view_thumbnail.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/extract_active_view_thumbnail.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_active_view_thumbnail.py index b5054b4846..290f7e24eb 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_active_view_thumbnail.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_active_view_thumbnail.py @@ -1,13 +1,13 @@ -import maya.api.OpenMaya as om -import maya.api.OpenMayaUI as omui - -import pyblish.api import tempfile -from ayon_core.hosts.maya.api.lib import IS_HEADLESS +import maya.api.OpenMaya as om +import maya.api.OpenMayaUI as omui +import pyblish.api +from ayon_maya.api.lib import IS_HEADLESS +from ayon_maya.api import plugin -class ExtractActiveViewThumbnail(pyblish.api.InstancePlugin): +class ExtractActiveViewThumbnail(plugin.MayaInstancePlugin): """Set instance thumbnail to a screengrab of current active viewport. This makes it so that if an instance does not have a thumbnail set yet that @@ -18,7 +18,6 @@ class ExtractActiveViewThumbnail(pyblish.api.InstancePlugin): order = pyblish.api.ExtractorOrder + 0.49 label = "Active View Thumbnail" families = ["workfile"] - hosts = ["maya"] def process(self, instance): if IS_HEADLESS: diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_arnold_scene_source.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_arnold_scene_source.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/publish/extract_arnold_scene_source.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_arnold_scene_source.py index fb4c41f1de..b39c875400 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_arnold_scene_source.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_arnold_scene_source.py @@ -1,19 +1,16 @@ +import json import os from collections import defaultdict -import json -from maya import cmds import arnold - -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api import lib +from ayon_maya.api import lib, plugin +from maya import cmds -class ExtractArnoldSceneSource(publish.Extractor): +class ExtractArnoldSceneSource(plugin.MayaExtractorPlugin): """Extract the content of the instance to an Arnold Scene Source file.""" label = "Extract Arnold Scene Source" - hosts = ["maya"] families = ["ass"] asciiAss = False diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_assembly.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_assembly.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/extract_assembly.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_assembly.py index 5f51dc38cb..8460fb716f 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_assembly.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_assembly.py @@ -1,13 +1,12 @@ -import os import json +import os -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api.alembic import extract_alembic - +from ayon_maya.api.alembic import extract_alembic +from ayon_maya.api import plugin from maya import cmds -class ExtractAssembly(publish.Extractor): +class ExtractAssembly(plugin.MayaExtractorPlugin): """Produce an alembic of just point positions and normals. Positions and normals are preserved, but nothing more, @@ -16,7 +15,6 @@ class ExtractAssembly(publish.Extractor): """ label = "Extract Assembly" - hosts = ["maya"] families = ["assembly"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_camera_alembic.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_camera_alembic.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/publish/extract_camera_alembic.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_camera_alembic.py index 74abc8de75..b5ce6a6a44 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_camera_alembic.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_camera_alembic.py @@ -2,12 +2,12 @@ import os import json from maya import cmds - +from ayon_maya.api import plugin from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api import lib +from ayon_maya.api import lib -class ExtractCameraAlembic(publish.Extractor, +class ExtractCameraAlembic(plugin.MayaExtractorPlugin, publish.OptionalPyblishPluginMixin): """Extract a Camera as Alembic. diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_camera_mayaScene.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_camera_mayaScene.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/publish/extract_camera_mayaScene.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_camera_mayaScene.py index cb3951ec0c..c5aa331cb2 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_camera_mayaScene.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_camera_mayaScene.py @@ -1,16 +1,14 @@ # -*- coding: utf-8 -*- """Extract camera as Maya Scene.""" -import os -import itertools import contextlib +import itertools +import os -from maya import cmds - +from ayon_core.lib import BoolDef from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api import lib -from ayon_core.lib import ( - BoolDef -) +from ayon_maya.api import lib +from ayon_maya.api import plugin +from maya import cmds def massage_ma_file(path): @@ -82,7 +80,7 @@ def unlock(plug): cmds.disconnectAttr(source, destination) -class ExtractCameraMayaScene(publish.Extractor, +class ExtractCameraMayaScene(plugin.MayaExtractorPlugin, publish.OptionalPyblishPluginMixin): """Extract a Camera as Maya Scene. diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_fbx.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_fbx.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/publish/extract_fbx.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_fbx.py index bb2a6dad07..d9b0a789c5 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_fbx.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_fbx.py @@ -1,16 +1,15 @@ # -*- coding: utf-8 -*- import os -from maya import cmds # noqa import maya.mel as mel # noqa import pyblish.api - -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api.lib import maintained_selection -from ayon_core.hosts.maya.api import fbx +from ayon_maya.api import fbx +from ayon_maya.api.lib import maintained_selection +from ayon_maya.api import plugin +from maya import cmds # noqa -class ExtractFBX(publish.Extractor): +class ExtractFBX(plugin.MayaExtractorPlugin): """Extract FBX from Maya. This extracts reproducible FBX exports ignoring any of the diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_fbx_animation.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_fbx_animation.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/publish/extract_fbx_animation.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_fbx_animation.py index 77b5b79b5f..c22241d2ca 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_fbx_animation.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_fbx_animation.py @@ -1,17 +1,14 @@ # -*- coding: utf-8 -*- import os -from maya import cmds # noqa import pyblish.api - -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api import fbx -from ayon_core.hosts.maya.api.lib import ( - namespaced, get_namespace, strip_namespace -) +from ayon_maya.api import fbx +from ayon_maya.api.lib import get_namespace, namespaced, strip_namespace +from ayon_maya.api import plugin +from maya import cmds # noqa -class ExtractFBXAnimation(publish.Extractor): +class ExtractFBXAnimation(plugin.MayaExtractorPlugin): """Extract Rig in FBX format from Maya. This extracts the rig in fbx with the constraints @@ -22,7 +19,6 @@ class ExtractFBXAnimation(publish.Extractor): """ order = pyblish.api.ExtractorOrder label = "Extract Animation (FBX)" - hosts = ["maya"] families = ["animation.fbx"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_gltf.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_gltf.py similarity index 88% rename from client/ayon_core/hosts/maya/plugins/publish/extract_gltf.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_gltf.py index ff11bf0c1f..46da8f9463 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_gltf.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_gltf.py @@ -1,17 +1,15 @@ import os -from maya import cmds, mel import pyblish.api - -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api import lib -from ayon_core.hosts.maya.api.gltf import extract_gltf +from ayon_maya.api import lib +from ayon_maya.api.gltf import extract_gltf +from ayon_maya.api import plugin +from maya import cmds, mel -class ExtractGLB(publish.Extractor): +class ExtractGLB(plugin.MayaExtractorPlugin): order = pyblish.api.ExtractorOrder - hosts = ["maya"] label = "Extract GLB" families = ["gltf"] @@ -39,7 +37,7 @@ class ExtractGLB(publish.Extractor): "aet": end_frame, "afr": fps, "dsa": 1, - "acn": instance.name, + "acn": instance.name, # codespell:ignore acn "glb": True, "vno": True # visibleNodeOnly } diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_gpu_cache.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_gpu_cache.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/publish/extract_gpu_cache.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_gpu_cache.py index 4b293b5785..53944571a8 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_gpu_cache.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_gpu_cache.py @@ -1,16 +1,15 @@ import json +from ayon_core.pipeline import publish +from ayon_maya.api import plugin from maya import cmds -from ayon_core.pipeline import publish - -class ExtractGPUCache(publish.Extractor, +class ExtractGPUCache(plugin.MayaExtractorPlugin, publish.OptionalPyblishPluginMixin): """Extract the content of the instance to a GPU cache file.""" label = "GPU Cache" - hosts = ["maya"] families = ["model", "animation", "pointcache"] step = 1.0 stepSave = 1 diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_import_reference.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_import_reference.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/publish/extract_import_reference.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_import_reference.py index 3fb84c8d83..b5964e426b 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_import_reference.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_import_reference.py @@ -1,18 +1,16 @@ import os import sys - -from maya import cmds - -import pyblish.api import tempfile +import pyblish.api from ayon_core.lib import run_subprocess -from ayon_core.pipeline import publish from ayon_core.pipeline.publish import OptionalPyblishPluginMixin -from ayon_core.hosts.maya.api import lib +from ayon_maya.api import lib +from ayon_maya.api import plugin +from maya import cmds -class ExtractImportReference(publish.Extractor, +class ExtractImportReference(plugin.MayaExtractorPlugin, OptionalPyblishPluginMixin): """ @@ -24,7 +22,6 @@ class ExtractImportReference(publish.Extractor, label = "Extract Import Reference" order = pyblish.api.ExtractorOrder - 0.48 - hosts = ["maya"] families = ["renderlayer", "workfile"] optional = True tmp_format = "_tmp" diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_layout.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_layout.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/publish/extract_layout.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_layout.py index b025a1605a..ca53f563d4 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_layout.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_layout.py @@ -1,19 +1,17 @@ +import json import math import os -import json +from ayon_api import get_representation_by_id +from ayon_maya.api import plugin from maya import cmds from maya.api import OpenMaya as om -from ayon_api import get_representation_by_id - -from ayon_core.pipeline import publish -class ExtractLayout(publish.Extractor): +class ExtractLayout(plugin.MayaExtractorPlugin): """Extract a layout.""" label = "Extract Layout" - hosts = ["maya"] families = ["layout"] project_container = "AVALON_CONTAINERS" optional = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_look.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_look.py similarity index 99% rename from client/ayon_core/hosts/maya/plugins/publish/extract_look.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_look.py index 2a86b20131..8e57b22d64 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_look.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_look.py @@ -1,31 +1,29 @@ # -*- coding: utf-8 -*- """Maya look extractor.""" -import os -import sys import contextlib import json import logging -import tempfile +import os import platform +import sys +import tempfile from abc import ABCMeta, abstractmethod from collections import OrderedDict -import six import attr import pyblish.api - -from maya import cmds # noqa - +import six from ayon_core.lib import ( - find_executable, - source_hash, - run_subprocess, - get_oiio_tool_args, ToolNotFoundError, + find_executable, + get_oiio_tool_args, + run_subprocess, + source_hash, ) - -from ayon_core.pipeline import publish, KnownPublishError -from ayon_core.hosts.maya.api import lib +from ayon_core.pipeline import KnownPublishError +from ayon_maya.api import lib +from ayon_maya.api import plugin +from maya import cmds # noqa # Modes for transfer COPY = 1 @@ -407,7 +405,7 @@ class MakeTX(TextureProcessor): return False -class ExtractLook(publish.Extractor): +class ExtractLook(plugin.MayaExtractorPlugin): """Extract Look (Maya Scene + JSON) Only extracts the sets (shadingEngines and alike) alongside a .json file diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_maya_scene_raw.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_maya_scene_raw.py similarity index 95% rename from client/ayon_core/hosts/maya/plugins/publish/extract_maya_scene_raw.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_maya_scene_raw.py index 2fd4f44449..6e66353c7a 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_maya_scene_raw.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_maya_scene_raw.py @@ -2,26 +2,21 @@ """Extract data as Maya scene (raw).""" import os +from ayon_core.lib import BoolDef +from ayon_core.pipeline import AVALON_CONTAINER_ID, AYON_CONTAINER_ID +from ayon_core.pipeline.publish import AYONPyblishPluginMixin +from ayon_maya.api.lib import maintained_selection +from ayon_maya.api import plugin from maya import cmds -from ayon_core.hosts.maya.api.lib import maintained_selection -from ayon_core.pipeline import ( - AYON_CONTAINER_ID, - AVALON_CONTAINER_ID, - publish, -) -from ayon_core.pipeline.publish import AYONPyblishPluginMixin -from ayon_core.lib import BoolDef - -class ExtractMayaSceneRaw(publish.Extractor, AYONPyblishPluginMixin): +class ExtractMayaSceneRaw(plugin.MayaExtractorPlugin, AYONPyblishPluginMixin): """Extract as Maya Scene (raw). This will preserve all references, construction history, etc. """ label = "Maya Scene (Raw)" - hosts = ["maya"] families = ["mayaAscii", "mayaScene", "setdress", diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_maya_usd.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_maya_usd.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/publish/extract_maya_usd.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_maya_usd.py index cfaea8e479..d2bf98afbc 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_maya_usd.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_maya_usd.py @@ -1,13 +1,12 @@ -import os -import six -import json import contextlib - -from maya import cmds +import json +import os import pyblish.api -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api.lib import maintained_selection +import six +from ayon_maya.api.lib import maintained_selection +from ayon_maya.api import plugin +from maya import cmds @contextlib.contextmanager @@ -112,14 +111,13 @@ def usd_export_attributes(nodes, attrs=None, attr_prefixes=None, mapping=None): dg_mod.undoIt() -class ExtractMayaUsd(publish.Extractor): +class ExtractMayaUsd(plugin.MayaExtractorPlugin): """Extractor for Maya USD Asset data. Upon publish a .usd (or .usdz) asset file will typically be written. """ label = "Extract Maya USD Asset" - hosts = ["maya"] families = ["mayaUsd"] @property diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_model.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_model.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/publish/extract_model.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_model.py index 543af59e8f..7f257a2013 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_model.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_model.py @@ -2,13 +2,13 @@ """Extract model as Maya Scene.""" import os +from ayon_core.pipeline import publish +from ayon_maya.api import lib +from ayon_maya.api import plugin from maya import cmds -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api import lib - -class ExtractModel(publish.Extractor, +class ExtractModel(plugin.MayaExtractorPlugin, publish.OptionalPyblishPluginMixin): """Extract as Model (Maya Scene). @@ -25,7 +25,6 @@ class ExtractModel(publish.Extractor, """ label = "Model (Maya Scene)" - hosts = ["maya"] families = ["model"] scene_type = "ma" optional = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_multiverse_look.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_multiverse_look.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/publish/extract_multiverse_look.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_multiverse_look.py index 2dd8821b3a..b6f8043a93 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_multiverse_look.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_multiverse_look.py @@ -2,11 +2,11 @@ import os from maya import cmds -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api.lib import maintained_selection +from ayon_maya.api.lib import maintained_selection +from ayon_maya.api import plugin -class ExtractMultiverseLook(publish.Extractor): +class ExtractMultiverseLook(plugin.MayaExtractorPlugin): """Extractor for Multiverse USD look data. This will extract: @@ -34,7 +34,6 @@ class ExtractMultiverseLook(publish.Extractor): """ label = "Extract Multiverse USD Look" - hosts = ["maya"] families = ["mvLook"] scene_type = "usda" file_formats = ["usda", "usd"] diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_multiverse_usd.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_multiverse_usd.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/publish/extract_multiverse_usd.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_multiverse_usd.py index 8c195c25fd..477af9dc26 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_multiverse_usd.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_multiverse_usd.py @@ -1,15 +1,13 @@ import os -import six - -from maya import cmds -from maya import mel import pyblish.api -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api.lib import maintained_selection +import six +from ayon_maya.api.lib import maintained_selection +from ayon_maya.api import plugin +from maya import cmds, mel -class ExtractMultiverseUsd(publish.Extractor): +class ExtractMultiverseUsd(plugin.MayaExtractorPlugin): """Extractor for Multiverse USD Asset data. This will extract settings for a Multiverse Write Asset operation: @@ -27,7 +25,6 @@ class ExtractMultiverseUsd(publish.Extractor): """ label = "Extract Multiverse USD Asset" - hosts = ["maya"] families = ["mvUsd"] scene_type = "usd" file_formats = ["usd", "usda", "usdz"] diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_multiverse_usd_comp.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_multiverse_usd_comp.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/publish/extract_multiverse_usd_comp.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_multiverse_usd_comp.py index d31660d1b4..3d18bb80e1 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_multiverse_usd_comp.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_multiverse_usd_comp.py @@ -1,12 +1,11 @@ import os +from ayon_maya.api.lib import maintained_selection +from ayon_maya.api import plugin from maya import cmds -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api.lib import maintained_selection - -class ExtractMultiverseUsdComposition(publish.Extractor): +class ExtractMultiverseUsdComposition(plugin.MayaExtractorPlugin): """Extractor of Multiverse USD Composition data. This will extract settings for a Multiverse Write Composition operation: @@ -24,7 +23,6 @@ class ExtractMultiverseUsdComposition(publish.Extractor): """ label = "Extract Multiverse USD Composition" - hosts = ["maya"] families = ["mvUsdComposition"] scene_type = "usd" # Order of `fileFormat` must match create_multiverse_usd_comp.py diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_multiverse_usd_over.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_multiverse_usd_over.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/publish/extract_multiverse_usd_over.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_multiverse_usd_over.py index 00303e604c..a67f5c0a99 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_multiverse_usd_over.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_multiverse_usd_over.py @@ -1,12 +1,11 @@ import os -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api.lib import maintained_selection - +from ayon_maya.api.lib import maintained_selection +from ayon_maya.api import plugin from maya import cmds -class ExtractMultiverseUsdOverride(publish.Extractor): +class ExtractMultiverseUsdOverride(plugin.MayaExtractorPlugin): """Extractor for Multiverse USD Override data. This will extract settings for a Multiverse Write Override operation: @@ -22,7 +21,6 @@ class ExtractMultiverseUsdOverride(publish.Extractor): """ label = "Extract Multiverse USD Override" - hosts = ["maya"] families = ["mvUsdOverride"] scene_type = "usd" # Order of `fileFormat` must match create_multiverse_usd_over.py diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_obj.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_obj.py similarity index 94% rename from client/ayon_core/hosts/maya/plugins/publish/extract_obj.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_obj.py index 6ce40a8728..baf86b581e 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_obj.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_obj.py @@ -1,13 +1,13 @@ # -*- coding: utf-8 -*- import os -from maya import cmds import pyblish.api -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api import lib +from ayon_maya.api import lib +from ayon_maya.api import plugin +from maya import cmds -class ExtractObj(publish.Extractor): +class ExtractObj(plugin.MayaExtractorPlugin): """Extract OBJ from Maya. This extracts reproducible OBJ exports ignoring any of the settings @@ -15,7 +15,6 @@ class ExtractObj(publish.Extractor): """ order = pyblish.api.ExtractorOrder - hosts = ["maya"] label = "Extract OBJ" families = ["model"] diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_playblast.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_playblast.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/publish/extract_playblast.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_playblast.py index a394d880ff..539246eef0 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_playblast.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_playblast.py @@ -1,14 +1,12 @@ import os import clique - -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api import lib - +from ayon_maya.api import lib +from ayon_maya.api import plugin from maya import cmds -class ExtractPlayblast(publish.Extractor): +class ExtractPlayblast(plugin.MayaExtractorPlugin): """Extract viewport playblast. Takes review camera and creates review Quicktime video based on viewport @@ -17,7 +15,6 @@ class ExtractPlayblast(publish.Extractor): """ label = "Extract Playblast" - hosts = ["maya"] families = ["review"] optional = True capture_preset = {} diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_pointcache.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_pointcache.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/publish/extract_pointcache.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_pointcache.py index cc930e49cc..d3e9d89aaf 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_pointcache.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_pointcache.py @@ -1,29 +1,28 @@ import os from collections import OrderedDict -from maya import cmds - -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api.alembic import extract_alembic -from ayon_core.hosts.maya.api.lib import ( - get_all_children, - suspended_refresh, - maintained_selection, - iter_visible_nodes_in_range -) from ayon_core.lib import ( BoolDef, - TextDef, - NumberDef, EnumDef, - UISeparatorDef, + NumberDef, + TextDef, UILabelDef, + UISeparatorDef, ) -from ayon_core.pipeline.publish import AYONPyblishPluginMixin from ayon_core.pipeline import KnownPublishError +from ayon_core.pipeline.publish import AYONPyblishPluginMixin +from ayon_maya.api.alembic import extract_alembic +from ayon_maya.api.lib import ( + get_all_children, + iter_visible_nodes_in_range, + maintained_selection, + suspended_refresh, +) +from ayon_maya.api import plugin +from maya import cmds -class ExtractAlembic(publish.Extractor, AYONPyblishPluginMixin): +class ExtractAlembic(plugin.MayaExtractorPlugin, AYONPyblishPluginMixin): """Produce an alembic of just point positions and normals. Positions and normals, uvs, creases are preserved, but nothing more, diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_proxy_abc.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_proxy_abc.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/extract_proxy_abc.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_proxy_abc.py index 5aefdfc33a..fc1c7981ed 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_proxy_abc.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_proxy_abc.py @@ -1,22 +1,20 @@ import os +from ayon_maya.api.alembic import extract_alembic +from ayon_maya.api.lib import ( + iter_visible_nodes_in_range, + maintained_selection, + suspended_refresh, +) +from ayon_maya.api import plugin from maya import cmds -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api.alembic import extract_alembic -from ayon_core.hosts.maya.api.lib import ( - suspended_refresh, - maintained_selection, - iter_visible_nodes_in_range -) - -class ExtractProxyAlembic(publish.Extractor): +class ExtractProxyAlembic(plugin.MayaExtractorPlugin): """Produce an alembic for bounding box geometry """ label = "Extract Proxy (Alembic)" - hosts = ["maya"] families = ["proxyAbc"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_redshift_proxy.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_redshift_proxy.py similarity index 91% rename from client/ayon_core/hosts/maya/plugins/publish/extract_redshift_proxy.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_redshift_proxy.py index 66dd805437..909d3dd172 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_redshift_proxy.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_redshift_proxy.py @@ -2,23 +2,18 @@ """Redshift Proxy extractor.""" import os +from ayon_maya.api.lib import maintained_selection, renderlayer +from ayon_maya.api import plugin +from ayon_maya.api.render_setup_tools import ( + allow_export_from_render_setup_layer, +) from maya import cmds -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api.lib import ( - maintained_selection, - renderlayer -) -from ayon_core.hosts.maya.api.render_setup_tools import ( - allow_export_from_render_setup_layer -) - -class ExtractRedshiftProxy(publish.Extractor): +class ExtractRedshiftProxy(plugin.MayaExtractorPlugin): """Extract the content of the instance to a redshift proxy file.""" label = "Redshift Proxy (.rs)" - hosts = ["maya"] families = ["redshiftproxy"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_rendersetup.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_rendersetup.py similarity index 91% rename from client/ayon_core/hosts/maya/plugins/publish/extract_rendersetup.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_rendersetup.py index 4815033777..8dcdd603b7 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_rendersetup.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_rendersetup.py @@ -1,11 +1,11 @@ -import os import json +import os import maya.app.renderSetup.model.renderSetup as renderSetup -from ayon_core.pipeline import publish +from ayon_maya.api import plugin -class ExtractRenderSetup(publish.Extractor): +class ExtractRenderSetup(plugin.MayaExtractorPlugin): """ Produce renderSetup template file @@ -13,7 +13,6 @@ class ExtractRenderSetup(publish.Extractor): """ label = "Extract RenderSetup" - hosts = ["maya"] families = ["rendersetup"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_rig.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_rig.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/extract_rig.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_rig.py index 305f4698c6..3f96d7123d 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_rig.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_rig.py @@ -2,17 +2,15 @@ """Extract rig as Maya Scene.""" import os +from ayon_maya.api.lib import maintained_selection +from ayon_maya.api import plugin from maya import cmds -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api.lib import maintained_selection - -class ExtractRig(publish.Extractor): +class ExtractRig(plugin.MayaExtractorPlugin): """Extract rig as Maya Scene.""" label = "Extract Rig (Maya Scene)" - hosts = ["maya"] families = ["rig"] scene_type = "ma" diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_skeleton_mesh.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_skeleton_mesh.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/publish/extract_skeleton_mesh.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_skeleton_mesh.py index a6811d6a6f..e496d53d42 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_skeleton_mesh.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_skeleton_mesh.py @@ -4,12 +4,12 @@ import os from maya import cmds # noqa import pyblish.api -from ayon_core.pipeline import publish from ayon_core.pipeline.publish import OptionalPyblishPluginMixin -from ayon_core.hosts.maya.api import fbx +from ayon_maya.api import fbx +from ayon_maya.api import plugin -class ExtractSkeletonMesh(publish.Extractor, +class ExtractSkeletonMesh(plugin.MayaExtractorPlugin, OptionalPyblishPluginMixin): """Extract Rig in FBX format from Maya. @@ -21,7 +21,6 @@ class ExtractSkeletonMesh(publish.Extractor, """ order = pyblish.api.ExtractorOrder label = "Extract Skeleton Mesh" - hosts = ["maya"] families = ["rig.fbx"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_thumbnail.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_thumbnail.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/publish/extract_thumbnail.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_thumbnail.py index d3140487a6..c2ffedd67c 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_thumbnail.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_thumbnail.py @@ -1,12 +1,12 @@ -import os import glob +import os import tempfile -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api import lib +from ayon_maya.api import lib +from ayon_maya.api import plugin -class ExtractThumbnail(publish.Extractor): +class ExtractThumbnail(plugin.MayaExtractorPlugin): """Extract viewport thumbnail. Takes review camera and creates a thumbnail based on viewport @@ -15,7 +15,6 @@ class ExtractThumbnail(publish.Extractor): """ label = "Thumbnail" - hosts = ["maya"] families = ["review"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_unreal_skeletalmesh_abc.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_unreal_skeletalmesh_abc.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/extract_unreal_skeletalmesh_abc.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_unreal_skeletalmesh_abc.py index b5cc7745a1..a5d9303052 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_unreal_skeletalmesh_abc.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_unreal_skeletalmesh_abc.py @@ -2,21 +2,16 @@ """Create Unreal Skeletal Mesh data to be extracted as FBX.""" import os +from ayon_maya.api.alembic import extract_alembic +from ayon_maya.api.lib import maintained_selection, suspended_refresh +from ayon_maya.api import plugin from maya import cmds # noqa -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api.alembic import extract_alembic -from ayon_core.hosts.maya.api.lib import ( - suspended_refresh, - maintained_selection -) - -class ExtractUnrealSkeletalMeshAbc(publish.Extractor): +class ExtractUnrealSkeletalMeshAbc(plugin.MayaExtractorPlugin): """Extract Unreal Skeletal Mesh as FBX from Maya. """ label = "Extract Unreal Skeletal Mesh - Alembic" - hosts = ["maya"] families = ["skeletalMesh"] optional = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_unreal_skeletalmesh_fbx.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_unreal_skeletalmesh_fbx.py similarity index 95% rename from client/ayon_core/hosts/maya/plugins/publish/extract_unreal_skeletalmesh_fbx.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_unreal_skeletalmesh_fbx.py index 6292afcf41..36324d3511 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_unreal_skeletalmesh_fbx.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_unreal_skeletalmesh_fbx.py @@ -3,12 +3,10 @@ import os from contextlib import contextmanager -from maya import cmds # noqa - import pyblish.api - -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api import fbx +from ayon_maya.api import fbx +from ayon_maya.api import plugin +from maya import cmds # noqa @contextmanager @@ -21,7 +19,7 @@ def renamed(original_name, renamed_name): cmds.rename(renamed_name, original_name) -class ExtractUnrealSkeletalMeshFbx(publish.Extractor): +class ExtractUnrealSkeletalMeshFbx(plugin.MayaExtractorPlugin): """Extract Unreal Skeletal Mesh as FBX from Maya. """ order = pyblish.api.ExtractorOrder - 0.1 diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_unreal_staticmesh.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_unreal_staticmesh.py similarity index 88% rename from client/ayon_core/hosts/maya/plugins/publish/extract_unreal_staticmesh.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_unreal_staticmesh.py index 9cf8a543f4..215f82b338 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_unreal_staticmesh.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_unreal_staticmesh.py @@ -2,19 +2,14 @@ """Create Unreal Static Mesh data to be extracted as FBX.""" import os +import pyblish.api +from ayon_maya.api import fbx +from ayon_maya.api.lib import maintained_selection, parent_nodes +from ayon_maya.api import plugin from maya import cmds # noqa -import pyblish.api -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api.lib import ( - parent_nodes, - maintained_selection -) -from ayon_core.hosts.maya.api import fbx - - -class ExtractUnrealStaticMesh(publish.Extractor): +class ExtractUnrealStaticMesh(plugin.MayaExtractorPlugin): """Extract Unreal Static Mesh as FBX from Maya. """ order = pyblish.api.ExtractorOrder - 0.1 diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_unreal_yeticache.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_unreal_yeticache.py similarity index 94% rename from client/ayon_core/hosts/maya/plugins/publish/extract_unreal_yeticache.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_unreal_yeticache.py index 9a6b4ebaed..79f47fbe9b 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_unreal_yeticache.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_unreal_yeticache.py @@ -1,18 +1,16 @@ import os +from ayon_maya.api import plugin from maya import cmds -from ayon_core.pipeline import publish - -class ExtractUnrealYetiCache(publish.Extractor): +class ExtractUnrealYetiCache(plugin.MayaExtractorPlugin): """Producing Yeti cache files using scene time range. This will extract Yeti cache file sequence and fur settings. """ label = "Extract Yeti Cache (Unreal)" - hosts = ["maya"] families = ["yeticacheUE"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_vrayproxy.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_vrayproxy.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/extract_vrayproxy.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_vrayproxy.py index d16f9e8701..d6f1fd6698 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_vrayproxy.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_vrayproxy.py @@ -1,12 +1,11 @@ import os +from ayon_maya.api.lib import maintained_selection +from ayon_maya.api import plugin from maya import cmds -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api.lib import maintained_selection - -class ExtractVRayProxy(publish.Extractor): +class ExtractVRayProxy(plugin.MayaExtractorPlugin): """Extract the content of the instance to a vrmesh file Things to pay attention to: @@ -15,7 +14,6 @@ class ExtractVRayProxy(publish.Extractor): """ label = "VRay Proxy (.vrmesh)" - hosts = ["maya"] families = ["vrayproxy.vrmesh"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_vrayscene.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_vrayscene.py similarity index 94% rename from client/ayon_core/hosts/maya/plugins/publish/extract_vrayscene.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_vrayscene.py index 023a15e67a..785cb4c37c 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_vrayscene.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_vrayscene.py @@ -3,18 +3,16 @@ import os import re -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api.render_setup_tools import export_in_rs_layer -from ayon_core.hosts.maya.api.lib import maintained_selection - +from ayon_maya.api.lib import maintained_selection +from ayon_maya.api import plugin +from ayon_maya.api.render_setup_tools import export_in_rs_layer from maya import cmds -class ExtractVrayscene(publish.Extractor): +class ExtractVrayscene(plugin.MayaExtractorPlugin): """Extractor for vrscene.""" label = "VRay Scene (.vrscene)" - hosts = ["maya"] families = ["vrayscene_layer"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_workfile_xgen.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_workfile_xgen.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/publish/extract_workfile_xgen.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_workfile_xgen.py index 54d295b479..e6df19c7f1 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_workfile_xgen.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_workfile_xgen.py @@ -1,15 +1,14 @@ +import copy import os import shutil -import copy - -from maya import cmds import pyblish.api -from ayon_core.hosts.maya.api.alembic import extract_alembic -from ayon_core.pipeline import publish +from ayon_maya.api.alembic import extract_alembic +from ayon_maya.api import plugin +from maya import cmds -class ExtractWorkfileXgen(publish.Extractor): +class ExtractWorkfileXgen(plugin.MayaExtractorPlugin): """Extract Workfile Xgen. When submitting a render, we need to prep Xgen side car files. @@ -19,7 +18,6 @@ class ExtractWorkfileXgen(publish.Extractor): order = pyblish.api.ExtractorOrder - 0.499 label = "Extract Workfile Xgen" families = ["workfile"] - hosts = ["maya"] def get_render_max_frame_range(self, context): """Return start to end frame range including all renderlayers in diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_xgen.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_xgen.py similarity index 95% rename from client/ayon_core/hosts/maya/plugins/publish/extract_xgen.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_xgen.py index b672089a63..bb700bbdec 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_xgen.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_xgen.py @@ -1,17 +1,19 @@ -import os import copy +import os import tempfile -from maya import cmds import xgenm - -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api.lib import ( - maintained_selection, attribute_values, write_xgen_file, delete_after +from ayon_maya.api.lib import ( + attribute_values, + delete_after, + maintained_selection, + write_xgen_file, ) +from ayon_maya.api import plugin +from maya import cmds -class ExtractXgen(publish.Extractor): +class ExtractXgen(plugin.MayaExtractorPlugin): """Extract Xgen Workflow: @@ -23,7 +25,6 @@ class ExtractXgen(publish.Extractor): """ label = "Extract Xgen" - hosts = ["maya"] families = ["xgen"] scene_type = "ma" diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_yeti_cache.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_yeti_cache.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/publish/extract_yeti_cache.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_yeti_cache.py index b9cd7a1be5..b84867316c 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_yeti_cache.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_yeti_cache.py @@ -1,19 +1,17 @@ -import os import json +import os +from ayon_maya.api import plugin from maya import cmds -from ayon_core.pipeline import publish - -class ExtractYetiCache(publish.Extractor): +class ExtractYetiCache(plugin.MayaExtractorPlugin): """Producing Yeti cache files using scene time range. This will extract Yeti cache file sequence and fur settings. """ label = "Extract Yeti Cache" - hosts = ["maya"] families = ["yetiRig", "yeticache"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/extract_yeti_rig.py b/server_addon/maya/client/ayon_maya/plugins/publish/extract_yeti_rig.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/publish/extract_yeti_rig.py rename to server_addon/maya/client/ayon_maya/plugins/publish/extract_yeti_rig.py index 0b67117ebc..640b37b667 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/extract_yeti_rig.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/extract_yeti_rig.py @@ -1,15 +1,14 @@ # -*- coding: utf-8 -*- """Extract Yeti rig.""" -import os -import json import contextlib +import json +import os +from ayon_maya.api import lib +from ayon_maya.api import plugin from maya import cmds -from ayon_core.pipeline import publish -from ayon_core.hosts.maya.api import lib - @contextlib.contextmanager def disconnect_plugs(settings, members): @@ -90,11 +89,10 @@ def yetigraph_attribute_values(assumed_destination, resources): pass -class ExtractYetiRig(publish.Extractor): +class ExtractYetiRig(plugin.MayaExtractorPlugin): """Extract the Yeti rig to a Maya Scene and write the Yeti rig data.""" label = "Extract Yeti Rig" - hosts = ["maya"] families = ["yetiRig"] scene_type = "ma" diff --git a/client/ayon_core/hosts/maya/plugins/publish/help/submit_maya_remote_publish_deadline.xml b/server_addon/maya/client/ayon_maya/plugins/publish/help/submit_maya_remote_publish_deadline.xml similarity index 97% rename from client/ayon_core/hosts/maya/plugins/publish/help/submit_maya_remote_publish_deadline.xml rename to server_addon/maya/client/ayon_maya/plugins/publish/help/submit_maya_remote_publish_deadline.xml index e92320ccdc..fa908fe425 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/help/submit_maya_remote_publish_deadline.xml +++ b/server_addon/maya/client/ayon_maya/plugins/publish/help/submit_maya_remote_publish_deadline.xml @@ -13,4 +13,4 @@ Check all failing plugins (should be highlighted in red) and fix issues if possi - \ No newline at end of file + diff --git a/client/ayon_core/hosts/maya/plugins/publish/help/validate_animation_out_set_related_node_ids.xml b/server_addon/maya/client/ayon_maya/plugins/publish/help/validate_animation_out_set_related_node_ids.xml similarity index 90% rename from client/ayon_core/hosts/maya/plugins/publish/help/validate_animation_out_set_related_node_ids.xml rename to server_addon/maya/client/ayon_maya/plugins/publish/help/validate_animation_out_set_related_node_ids.xml index a855dd90a5..cdaf97b8f4 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/help/validate_animation_out_set_related_node_ids.xml +++ b/server_addon/maya/client/ayon_maya/plugins/publish/help/validate_animation_out_set_related_node_ids.xml @@ -6,13 +6,13 @@ Meshes are detected where the (deformed) mesh has a different `cbId` than the same mesh in its deformation history. -Theses should normally be the same. +These should normally be the same. ### How to repair? By using the repair action the IDs from the shape in history will be copied to the deformed shape. For **animation** instances using the -repair action usually is usually the correct fix. +repair action is usually the correct fix. diff --git a/client/ayon_core/hosts/maya/plugins/publish/help/validate_maya_units.xml b/server_addon/maya/client/ayon_maya/plugins/publish/help/validate_maya_units.xml similarity index 100% rename from client/ayon_core/hosts/maya/plugins/publish/help/validate_maya_units.xml rename to server_addon/maya/client/ayon_maya/plugins/publish/help/validate_maya_units.xml diff --git a/client/ayon_core/hosts/maya/plugins/publish/help/validate_mesh_non_manifold.xml b/server_addon/maya/client/ayon_maya/plugins/publish/help/validate_mesh_non_manifold.xml similarity index 100% rename from client/ayon_core/hosts/maya/plugins/publish/help/validate_mesh_non_manifold.xml rename to server_addon/maya/client/ayon_maya/plugins/publish/help/validate_mesh_non_manifold.xml diff --git a/client/ayon_core/hosts/maya/plugins/publish/help/validate_node_ids.xml b/server_addon/maya/client/ayon_maya/plugins/publish/help/validate_node_ids.xml similarity index 100% rename from client/ayon_core/hosts/maya/plugins/publish/help/validate_node_ids.xml rename to server_addon/maya/client/ayon_maya/plugins/publish/help/validate_node_ids.xml diff --git a/client/ayon_core/hosts/maya/plugins/publish/help/validate_rig_out_set_node_ids.xml b/server_addon/maya/client/ayon_maya/plugins/publish/help/validate_rig_out_set_node_ids.xml similarity index 96% rename from client/ayon_core/hosts/maya/plugins/publish/help/validate_rig_out_set_node_ids.xml rename to server_addon/maya/client/ayon_maya/plugins/publish/help/validate_rig_out_set_node_ids.xml index 374b8e59ae..956a7adb3b 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/help/validate_rig_out_set_node_ids.xml +++ b/server_addon/maya/client/ayon_maya/plugins/publish/help/validate_rig_out_set_node_ids.xml @@ -6,7 +6,7 @@ Meshes are detected in the **rig** where the (deformed) mesh has a different `cbId` than the same mesh in its deformation history. -Theses should normally be the same. +These should normally be the same. ### How to repair? diff --git a/client/ayon_core/hosts/maya/plugins/publish/help/validate_skeletalmesh_hierarchy.xml b/server_addon/maya/client/ayon_maya/plugins/publish/help/validate_skeletalmesh_hierarchy.xml similarity index 100% rename from client/ayon_core/hosts/maya/plugins/publish/help/validate_skeletalmesh_hierarchy.xml rename to server_addon/maya/client/ayon_maya/plugins/publish/help/validate_skeletalmesh_hierarchy.xml diff --git a/client/ayon_core/hosts/maya/plugins/publish/increment_current_file_deadline.py b/server_addon/maya/client/ayon_maya/plugins/publish/increment_current_file_deadline.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/increment_current_file_deadline.py rename to server_addon/maya/client/ayon_maya/plugins/publish/increment_current_file_deadline.py index a9378df8e1..66019c4837 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/increment_current_file_deadline.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/increment_current_file_deadline.py @@ -1,7 +1,8 @@ import pyblish.api +from ayon_maya.api import plugin -class IncrementCurrentFileDeadline(pyblish.api.ContextPlugin): +class IncrementCurrentFileDeadline(plugin.MayaContextPlugin): """Increment the current file. Saves the current maya scene with an increased version number. @@ -10,15 +11,14 @@ class IncrementCurrentFileDeadline(pyblish.api.ContextPlugin): label = "Increment current file" order = pyblish.api.IntegratorOrder + 9.0 - hosts = ["maya"] families = ["workfile"] optional = True def process(self, context): - from maya import cmds from ayon_core.lib import version_up from ayon_core.pipeline.publish import get_errored_plugins_from_context + from maya import cmds errored_plugins = get_errored_plugins_from_context(context) if any(plugin.__name__ == "MayaSubmitDeadline" diff --git a/client/ayon_core/hosts/maya/plugins/publish/reset_xgen_attributes.py b/server_addon/maya/client/ayon_maya/plugins/publish/reset_xgen_attributes.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/reset_xgen_attributes.py rename to server_addon/maya/client/ayon_maya/plugins/publish/reset_xgen_attributes.py index 759aa23258..ac9e1beeec 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/reset_xgen_attributes.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/reset_xgen_attributes.py @@ -1,9 +1,9 @@ +import pyblish.api +from ayon_maya.api import plugin from maya import cmds -import pyblish.api - -class ResetXgenAttributes(pyblish.api.InstancePlugin): +class ResetXgenAttributes(plugin.MayaInstancePlugin): """Reset Xgen attributes. When the incremental save of the workfile triggers, the Xgen attributes diff --git a/client/ayon_core/hosts/maya/plugins/publish/save_scene.py b/server_addon/maya/client/ayon_maya/plugins/publish/save_scene.py similarity index 88% rename from client/ayon_core/hosts/maya/plugins/publish/save_scene.py rename to server_addon/maya/client/ayon_maya/plugins/publish/save_scene.py index eb7c06a113..9c23fcff85 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/save_scene.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/save_scene.py @@ -1,18 +1,16 @@ import pyblish.api from ayon_core.pipeline.workfile.lock_workfile import ( is_workfile_lock_enabled, - remove_workfile_lock + remove_workfile_lock, ) +from ayon_maya.api import plugin -class SaveCurrentScene(pyblish.api.ContextPlugin): - """Save current scene - - """ +class SaveCurrentScene(plugin.MayaContextPlugin): + """Save current scene.""" label = "Save current file" order = pyblish.api.ExtractorOrder - 0.49 - hosts = ["maya"] families = ["renderlayer", "workfile"] def process(self, context): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_alembic_options_defaults.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_alembic_options_defaults.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/validate_alembic_options_defaults.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_alembic_options_defaults.py index 11f4c313fa..fd4e2254a7 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_alembic_options_defaults.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_alembic_options_defaults.py @@ -1,12 +1,13 @@ import inspect -import pyblish.api +import pyblish.api from ayon_core.pipeline import OptionalPyblishPluginMixin -from ayon_core.pipeline.publish import RepairAction, PublishValidationError +from ayon_core.pipeline.publish import PublishValidationError, RepairAction +from ayon_maya.api import plugin class ValidateAlembicDefaultsPointcache( - pyblish.api.InstancePlugin, OptionalPyblishPluginMixin + plugin.MayaInstancePlugin, OptionalPyblishPluginMixin ): """Validate the attributes on the instance are defaults. @@ -15,7 +16,6 @@ class ValidateAlembicDefaultsPointcache( order = pyblish.api.ValidatorOrder families = ["pointcache"] - hosts = ["maya"] label = "Validate Alembic Options Defaults" actions = [RepairAction] optional = True @@ -54,8 +54,8 @@ class ValidateAlembicDefaultsPointcache( default_value = settings[key] - # Lists are best to compared sorted since we cant rely on the order - # of the items. + # Lists are best to compared sorted since we can't rely on + # the order of the items. if isinstance(value, list): value = sorted(value) default_value = sorted(default_value) @@ -79,15 +79,15 @@ class ValidateAlembicDefaultsPointcache( def get_description(): return inspect.cleandoc( """### Alembic Extract settings differ from defaults - - The alembic export options differ from the project default values. - - If this is intentional you can disable this validation by + + The alembic export options differ from the project default values. + + If this is intentional you can disable this validation by disabling **Validate Alembic Options Default**. - + If not you may use the "Repair" action to revert all the options to their default values. - + """ ) diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_animation_content.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_animation_content.py similarity index 88% rename from client/ayon_core/hosts/maya/plugins/publish/validate_animation_content.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_animation_content.py index ea989bbcf3..b10a1a2bb7 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_animation_content.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_animation_content.py @@ -1,13 +1,13 @@ -import pyblish.api -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, PublishValidationError, ValidateContentsOrder, - OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin -class ValidateAnimationContent(pyblish.api.InstancePlugin, +class ValidateAnimationContent(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Adheres to the content of 'animation' product type @@ -17,10 +17,9 @@ class ValidateAnimationContent(pyblish.api.InstancePlugin, """ order = ValidateContentsOrder - hosts = ["maya"] families = ["animation"] label = "Animation Content" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = False @classmethod diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_animation_out_set_related_node_ids.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_animation_out_set_related_node_ids.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/validate_animation_out_set_related_node_ids.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_animation_out_set_related_node_ids.py index 7ecd602662..40f03b2690 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_animation_out_set_related_node_ids.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_animation_out_set_related_node_ids.py @@ -1,19 +1,18 @@ +import ayon_maya.api.action import maya.cmds as cmds - -import pyblish.api -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api import lib from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishXmlValidationError, RepairAction, ValidateContentsOrder, - PublishXmlValidationError, - OptionalPyblishPluginMixin, + apply_plugin_settings_automatically, get_plugin_settings, - apply_plugin_settings_automatically ) +from ayon_maya.api import lib +from ayon_maya.api import plugin -class ValidateOutRelatedNodeIds(pyblish.api.InstancePlugin, +class ValidateOutRelatedNodeIds(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate if deformed shapes have related IDs to the original shapes @@ -29,7 +28,7 @@ class ValidateOutRelatedNodeIds(pyblish.api.InstancePlugin, hosts = ['maya'] label = 'Animation Out Set Related Node Ids' actions = [ - ayon_core.hosts.maya.api.action.SelectInvalidAction, + ayon_maya.api.action.SelectInvalidAction, RepairAction ] optional = False diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_arnold_scene_source.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_arnold_scene_source.py similarity index 95% rename from client/ayon_core/hosts/maya/plugins/publish/validate_arnold_scene_source.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_arnold_scene_source.py index 8574b3ecc8..edc4161dff 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_arnold_scene_source.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_arnold_scene_source.py @@ -1,21 +1,20 @@ +import pyblish.api +from ayon_core.pipeline.publish import ( + PublishValidationError, + ValidateContentsOrder, +) +from ayon_maya.api.lib import is_visible +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -from ayon_core.pipeline.publish import ( - ValidateContentsOrder, PublishValidationError -) -from ayon_core.hosts.maya.api.lib import is_visible - - -class ValidateArnoldSceneSource(pyblish.api.InstancePlugin): +class ValidateArnoldSceneSource(plugin.MayaInstancePlugin): """Validate Arnold Scene Source. Ensure no nodes are hidden. """ order = ValidateContentsOrder - hosts = ["maya"] families = ["ass", "assProxy"] label = "Validate Arnold Scene Source" diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_arnold_scene_source_cbid.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_arnold_scene_source_cbid.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/validate_arnold_scene_source_cbid.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_arnold_scene_source_cbid.py index e5dbe178fc..8da8813b0d 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_arnold_scene_source_cbid.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_arnold_scene_source_cbid.py @@ -1,14 +1,14 @@ -import pyblish.api -from ayon_core.hosts.maya.api import lib from ayon_core.pipeline.publish import ( - ValidateContentsOrder, + OptionalPyblishPluginMixin, PublishValidationError, RepairAction, - OptionalPyblishPluginMixin + ValidateContentsOrder, ) +from ayon_maya.api import lib +from ayon_maya.api import plugin -class ValidateArnoldSceneSourceCbid(pyblish.api.InstancePlugin, +class ValidateArnoldSceneSourceCbid(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate Arnold Scene Source Cbid. @@ -16,7 +16,6 @@ class ValidateArnoldSceneSourceCbid(pyblish.api.InstancePlugin, """ order = ValidateContentsOrder - hosts = ["maya"] families = ["assProxy"] label = "Validate Arnold Scene Source CBID" actions = [RepairAction] diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_ass_relative_paths.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_ass_relative_paths.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/publish/validate_ass_relative_paths.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_ass_relative_paths.py index 6e65eee592..36c220f862 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_ass_relative_paths.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_ass_relative_paths.py @@ -4,21 +4,20 @@ import types import maya.cmds as cmds from mtoa.core import createOptions -import pyblish.api from ayon_core.pipeline.publish import ( RepairAction, ValidateContentsOrder, PublishValidationError, OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin -class ValidateAssRelativePaths(pyblish.api.InstancePlugin, +class ValidateAssRelativePaths(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Ensure exporting ass file has set relative texture paths""" order = ValidateContentsOrder - hosts = ['maya'] families = ['ass'] label = "ASS has relative texture paths" actions = [RepairAction] diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_assembly_name.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_assembly_name.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/publish/validate_assembly_name.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_assembly_name.py index c829f4bf74..4dfe7214bf 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_assembly_name.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_assembly_name.py @@ -1,13 +1,14 @@ -import pyblish.api +import ayon_maya.api.action import maya.cmds as cmds -import ayon_core.hosts.maya.api.action +import pyblish.api from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, PublishValidationError, - OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin -class ValidateAssemblyName(pyblish.api.InstancePlugin, +class ValidateAssemblyName(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """ Ensure Assembly name ends with `GRP` @@ -17,7 +18,7 @@ class ValidateAssemblyName(pyblish.api.InstancePlugin, label = "Validate Assembly Name" order = pyblish.api.ValidatorOrder families = ["assembly"] - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] active = False optional = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_assembly_namespaces.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_assembly_namespaces.py similarity index 81% rename from client/ayon_core/hosts/maya/plugins/publish/validate_assembly_namespaces.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_assembly_namespaces.py index 814a8295c4..324b12a207 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_assembly_namespaces.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_assembly_namespaces.py @@ -1,13 +1,15 @@ +import ayon_maya.api.action import pyblish.api -import ayon_core.hosts.maya.api.action from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, PublishValidationError, - OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin -class ValidateAssemblyNamespaces(pyblish.api.InstancePlugin, + +class ValidateAssemblyNamespaces(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): - """Ensure namespaces are not nested + """Ensure namespaces are not nested. In the outliner an item in a normal namespace looks as following: props_desk_01_:modelDefault @@ -21,7 +23,7 @@ class ValidateAssemblyNamespaces(pyblish.api.InstancePlugin, label = "Validate Assembly Namespaces" order = pyblish.api.ValidatorOrder families = ["assembly"] - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = False def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_assembly_transforms.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_assembly_transforms.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/validate_assembly_transforms.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_assembly_transforms.py index 3bcae5de49..7fc14560f7 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_assembly_transforms.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_assembly_transforms.py @@ -1,15 +1,15 @@ +import ayon_maya.api.action import pyblish.api -from maya import cmds - -import ayon_core.hosts.maya.api.action from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, PublishValidationError, RepairAction, - OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin +from maya import cmds -class ValidateAssemblyModelTransforms(pyblish.api.InstancePlugin, +class ValidateAssemblyModelTransforms(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Verify only root nodes of the loaded asset have transformations. @@ -32,7 +32,7 @@ class ValidateAssemblyModelTransforms(pyblish.api.InstancePlugin, order = pyblish.api.ValidatorOrder + 0.49 label = "Assembly Model Transforms" families = ["assembly"] - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction, + actions = [ayon_maya.api.action.SelectInvalidAction, RepairAction] prompt_message = ("You are about to reset the matrix to the default values." @@ -53,7 +53,7 @@ class ValidateAssemblyModelTransforms(pyblish.api.InstancePlugin, @classmethod def get_invalid(cls, instance): - from ayon_core.hosts.maya.api import lib + from ayon_maya.api import lib # Get all transforms in the loaded containers container_roots = cmds.listRelatives(instance.data["nodesHierarchy"], @@ -98,10 +98,9 @@ class ValidateAssemblyModelTransforms(pyblish.api.InstancePlugin, """ + from ayon_maya.api import lib from qtpy import QtWidgets - from ayon_core.hosts.maya.api import lib - # Store namespace in variable, cosmetics thingy choice = QtWidgets.QMessageBox.warning( None, diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_attributes.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_attributes.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/validate_attributes.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_attributes.py index 1514972159..8d4d8323ce 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_attributes.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_attributes.py @@ -1,16 +1,18 @@ import json from collections import defaultdict -import pyblish.api +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + RepairAction, + ValidateContentsOrder, +) +from ayon_maya.api.lib import set_attribute +from ayon_maya.api import plugin from maya import cmds -from ayon_core.hosts.maya.api.lib import set_attribute -from ayon_core.pipeline.publish import ( - OptionalPyblishPluginMixin, PublishValidationError, RepairAction, - ValidateContentsOrder) - -class ValidateAttributes(pyblish.api.InstancePlugin, +class ValidateAttributes(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Ensure attributes are consistent. @@ -25,7 +27,6 @@ class ValidateAttributes(pyblish.api.InstancePlugin, order = ValidateContentsOrder label = "Validate Attributes" - hosts = ["maya"] actions = [RepairAction] optional = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_camera_attributes.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_camera_attributes.py similarity index 91% rename from client/ayon_core/hosts/maya/plugins/publish/validate_camera_attributes.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_camera_attributes.py index 5fd8772a96..8c3f3800cc 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_camera_attributes.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_camera_attributes.py @@ -1,15 +1,14 @@ -import pyblish.api -from maya import cmds - -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, PublishValidationError, ValidateContentsOrder, - OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin +from maya import cmds -class ValidateCameraAttributes(pyblish.api.InstancePlugin, +class ValidateCameraAttributes(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validates Camera has no invalid attribute keys or values. @@ -23,7 +22,7 @@ class ValidateCameraAttributes(pyblish.api.InstancePlugin, families = ['camera'] hosts = ['maya'] label = 'Camera Attributes' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = True DEFAULTS = [ diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_camera_contents.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_camera_contents.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/validate_camera_contents.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_camera_contents.py index 0f14a057f9..42a5ef1769 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_camera_contents.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_camera_contents.py @@ -1,14 +1,14 @@ -import pyblish.api from maya import cmds -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( PublishValidationError, ValidateContentsOrder, OptionalPyblishPluginMixin) +from ayon_maya.api import plugin -class ValidateCameraContents(pyblish.api.InstancePlugin, +class ValidateCameraContents(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validates Camera instance contents. @@ -21,9 +21,8 @@ class ValidateCameraContents(pyblish.api.InstancePlugin, order = ValidateContentsOrder families = ['camera'] - hosts = ['maya'] label = 'Camera Contents' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] validate_shapes = True optional = False diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_color_sets.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_color_sets.py similarity index 88% rename from client/ayon_core/hosts/maya/plugins/publish/validate_color_sets.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_color_sets.py index f70b46f89e..f95e27def1 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_color_sets.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_color_sets.py @@ -1,16 +1,15 @@ -from maya import cmds - -import pyblish.api -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( - ValidateMeshOrder, OptionalPyblishPluginMixin, PublishValidationError, - RepairAction + RepairAction, + ValidateMeshOrder, ) +from ayon_maya.api import plugin +from maya import cmds -class ValidateColorSets(pyblish.api.InstancePlugin, +class ValidateColorSets(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate all meshes in the instance have unlocked normals @@ -20,11 +19,10 @@ class ValidateColorSets(pyblish.api.InstancePlugin, """ order = ValidateMeshOrder - hosts = ['maya'] families = ['model'] label = 'Mesh ColorSets' actions = [ - ayon_core.hosts.maya.api.action.SelectInvalidAction, RepairAction + ayon_maya.api.action.SelectInvalidAction, RepairAction ] optional = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_current_renderlayer_renderable.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_current_renderlayer_renderable.py similarity index 94% rename from client/ayon_core/hosts/maya/plugins/publish/validate_current_renderlayer_renderable.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_current_renderlayer_renderable.py index 045e22545c..6c599d398d 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_current_renderlayer_renderable.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_current_renderlayer_renderable.py @@ -1,16 +1,16 @@ import inspect import pyblish.api - -from maya import cmds from ayon_core.pipeline.publish import ( - context_plugin_should_run, + OptionalPyblishPluginMixin, PublishValidationError, - OptionalPyblishPluginMixin + context_plugin_should_run, ) +from ayon_maya.api import plugin +from maya import cmds -class ValidateCurrentRenderLayerIsRenderable(pyblish.api.ContextPlugin, +class ValidateCurrentRenderLayerIsRenderable(plugin.MayaContextPlugin, OptionalPyblishPluginMixin): """Validate if current render layer has a renderable camera. @@ -25,7 +25,6 @@ class ValidateCurrentRenderLayerIsRenderable(pyblish.api.ContextPlugin, label = "Current Render Layer Has Renderable Camera" order = pyblish.api.ValidatorOrder - hosts = ["maya"] families = ["renderlayer"] optional = False diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_cycle_error.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_cycle_error.py similarity index 74% rename from client/ayon_core/hosts/maya/plugins/publish/validate_cycle_error.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_cycle_error.py index f969ff533b..0b870993e9 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_cycle_error.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_cycle_error.py @@ -1,13 +1,15 @@ -import pyblish.api +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidateContentsOrder, +) +from ayon_maya.api.lib import maintained_selection +from ayon_maya.api import plugin from maya import cmds -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api.lib import maintained_selection -from ayon_core.pipeline.publish import ( - OptionalPyblishPluginMixin, PublishValidationError, ValidateContentsOrder) - -class ValidateCycleError(pyblish.api.InstancePlugin, +class ValidateCycleError(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate nodes produce no cycle errors.""" @@ -15,7 +17,7 @@ class ValidateCycleError(pyblish.api.InstancePlugin, label = "Cycle Errors" hosts = ["maya"] families = ["rig"] - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = True def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_frame_range.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_frame_range.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/publish/validate_frame_range.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_frame_range.py index 5736e726e9..90bdef4107 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_frame_range.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_frame_range.py @@ -1,20 +1,16 @@ -import pyblish.api - -from maya import cmds from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, RepairAction, ValidateContentsOrder, - PublishValidationError, - OptionalPyblishPluginMixin -) -from ayon_core.hosts.maya.api.lib_rendersetup import ( - get_attr_overrides, - get_attr_in_layer, ) +from ayon_maya.api.lib_rendersetup import get_attr_in_layer, get_attr_overrides +from ayon_maya.api import plugin +from maya import cmds from maya.app.renderSetup.model.override import AbsOverride -class ValidateFrameRange(pyblish.api.InstancePlugin, +class ValidateFrameRange(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validates the frame ranges. diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_glsl_material.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_glsl_material.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/publish/validate_glsl_material.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_glsl_material.py index 3735dbb74c..e94cb3e663 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_glsl_material.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_glsl_material.py @@ -1,15 +1,15 @@ import os + +from ayon_core.pipeline import ( + OptionalPyblishPluginMixin, + PublishValidationError, +) +from ayon_core.pipeline.publish import RepairAction, ValidateContentsOrder +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -from ayon_core.pipeline.publish import ( - RepairAction, - ValidateContentsOrder -) -from ayon_core.pipeline import PublishValidationError, OptionalPyblishPluginMixin - -class ValidateGLSLMaterial(pyblish.api.InstancePlugin, +class ValidateGLSLMaterial(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """ Validate if the asset uses GLSL Shader @@ -17,7 +17,6 @@ class ValidateGLSLMaterial(pyblish.api.InstancePlugin, order = ValidateContentsOrder + 0.1 families = ['gltf'] - hosts = ['maya'] label = 'GLSL Shader for GLTF' actions = [RepairAction] optional = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_glsl_plugin.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_glsl_plugin.py similarity index 89% rename from client/ayon_core/hosts/maya/plugins/publish/validate_glsl_plugin.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_glsl_plugin.py index d783da8b5c..aaea616631 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_glsl_plugin.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_glsl_plugin.py @@ -1,16 +1,15 @@ - from maya import cmds -import pyblish.api from ayon_core.pipeline.publish import ( RepairAction, ValidateContentsOrder, PublishValidationError, OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin -class ValidateGLSLPlugin(pyblish.api.InstancePlugin, +class ValidateGLSLPlugin(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """ Validate if the asset uses GLSL Shader @@ -18,7 +17,6 @@ class ValidateGLSLPlugin(pyblish.api.InstancePlugin, order = ValidateContentsOrder + 0.15 families = ['gltf'] - hosts = ['maya'] label = 'maya2glTF plugin' actions = [RepairAction] optional = False diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_instance_has_members.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_instance_has_members.py similarity index 81% rename from client/ayon_core/hosts/maya/plugins/publish/validate_instance_has_members.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_instance_has_members.py index 16e04af446..baca2a9008 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_instance_has_members.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_instance_has_members.py @@ -1,18 +1,17 @@ -import pyblish.api -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( + PublishValidationError, ValidateContentsOrder, - PublishValidationError ) +from ayon_maya.api import plugin -class ValidateInstanceHasMembers(pyblish.api.InstancePlugin): +class ValidateInstanceHasMembers(plugin.MayaInstancePlugin): """Validates instance objectSet has *any* members.""" order = ValidateContentsOrder - hosts = ["maya"] label = 'Instance has members' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] @classmethod def get_invalid(cls, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_instance_in_context.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_instance_in_context.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/validate_instance_in_context.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_instance_in_context.py index e6f4b908bb..5168c8496c 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_instance_in_context.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_instance_in_context.py @@ -2,17 +2,17 @@ """Validate if instance asset is the same as context asset.""" from __future__ import absolute_import -import pyblish.api -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, RepairAction, ValidateContentsOrder, - PublishValidationError, - OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin -class ValidateInstanceInContext(pyblish.api.InstancePlugin, +class ValidateInstanceInContext(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validator to check if instance asset match context asset. @@ -26,9 +26,8 @@ class ValidateInstanceInContext(pyblish.api.InstancePlugin, order = ValidateContentsOrder label = "Instance in same Context" optional = True - hosts = ["maya"] actions = [ - ayon_core.hosts.maya.api.action.SelectInvalidAction, RepairAction + ayon_maya.api.action.SelectInvalidAction, RepairAction ] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_instance_subset.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_instance_subset.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/validate_instance_subset.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_instance_subset.py index df9ca0bf13..4c876079ff 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_instance_subset.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_instance_subset.py @@ -1,11 +1,11 @@ -import pyblish.api import string import six from ayon_core.pipeline.publish import ( + PublishValidationError, ValidateContentsOrder, - PublishValidationError ) +from ayon_maya.api import plugin # Allow only characters, numbers and underscore allowed = set(string.ascii_lowercase + @@ -18,7 +18,7 @@ def validate_name(product_name): return all(x in allowed for x in product_name) -class ValidateSubsetName(pyblish.api.InstancePlugin): +class ValidateSubsetName(plugin.MayaInstancePlugin): """Validates product name has only valid characters""" order = ValidateContentsOrder diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_loaded_plugin.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_loaded_plugin.py similarity index 67% rename from client/ayon_core/hosts/maya/plugins/publish/validate_loaded_plugin.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_loaded_plugin.py index a05920a21e..60af00186e 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_loaded_plugin.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_loaded_plugin.py @@ -7,15 +7,15 @@ from ayon_core.pipeline.publish import ( PublishValidationError, OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin -class ValidateLoadedPlugin(pyblish.api.ContextPlugin, +class ValidateLoadedPlugin(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Ensure there are no unauthorized loaded plugins""" label = "Loaded Plugin" order = pyblish.api.ValidatorOrder - host = ["maya"] actions = [RepairContextAction] optional = True @@ -23,17 +23,17 @@ class ValidateLoadedPlugin(pyblish.api.ContextPlugin, def get_invalid(cls, context): invalid = [] - loaded_plugin = cmds.pluginInfo(query=True, listPlugins=True) + loaded_plugins = cmds.pluginInfo(query=True, listPlugins=True) # get variable from AYON settings whitelist_native_plugins = cls.whitelist_native_plugins authorized_plugins = cls.authorized_plugins or [] - for plugin in loaded_plugin: + for maya_plugin in loaded_plugins: if not whitelist_native_plugins and os.getenv('MAYA_LOCATION') \ - in cmds.pluginInfo(plugin, query=True, path=True): + in cmds.pluginInfo(maya_plugin, query=True, path=True): continue - if plugin not in authorized_plugins: - invalid.append(plugin) + if maya_plugin not in authorized_plugins: + invalid.append(maya_plugin) return invalid @@ -50,6 +50,6 @@ class ValidateLoadedPlugin(pyblish.api.ContextPlugin, def repair(cls, context): """Unload forbidden plugins""" - for plugin in cls.get_invalid(context): - cmds.pluginInfo(plugin, edit=True, autoload=False) - cmds.unloadPlugin(plugin, force=True) + for maya_plugin in cls.get_invalid(context): + cmds.pluginInfo(maya_plugin, edit=True, autoload=False) + cmds.unloadPlugin(maya_plugin, force=True) diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_look_contents.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_look_contents.py similarity index 94% rename from client/ayon_core/hosts/maya/plugins/publish/validate_look_contents.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_look_contents.py index a8d8ec373a..722f92b1b5 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_look_contents.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_look_contents.py @@ -1,15 +1,13 @@ -import pyblish.api -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( PublishValidationError, - ValidateContentsOrder + ValidateContentsOrder, ) - - +from ayon_maya.api import plugin from maya import cmds # noqa -class ValidateLookContents(pyblish.api.InstancePlugin): +class ValidateLookContents(plugin.MayaInstancePlugin): """Validate look instance contents Rules: @@ -25,9 +23,8 @@ class ValidateLookContents(pyblish.api.InstancePlugin): order = ValidateContentsOrder families = ['look'] - hosts = ['maya'] label = 'Look Data Contents' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] def process(self, instance): """Process all the nodes in the instance""" diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_look_default_shaders_connections.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_look_default_shaders_connections.py similarity index 95% rename from client/ayon_core/hosts/maya/plugins/publish/validate_look_default_shaders_connections.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_look_default_shaders_connections.py index cfd4156124..ac936b36c7 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_look_default_shaders_connections.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_look_default_shaders_connections.py @@ -1,13 +1,13 @@ -from maya import cmds - import pyblish.api from ayon_core.pipeline.publish import ( + PublishValidationError, RepairContextAction, - PublishValidationError ) +from ayon_maya.api import plugin +from maya import cmds -class ValidateLookDefaultShadersConnections(pyblish.api.ContextPlugin): +class ValidateLookDefaultShadersConnections(plugin.MayaContextPlugin): """Validate default shaders in the scene have their default connections. For example the standardSurface1 or lambert1 (maya 2023 and before) could @@ -22,7 +22,6 @@ class ValidateLookDefaultShadersConnections(pyblish.api.ContextPlugin): order = pyblish.api.ValidatorOrder - 0.4999 families = ['look'] - hosts = ['maya'] label = 'Look Default Shader Connections' actions = [RepairContextAction] diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_look_id_reference_edits.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_look_id_reference_edits.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/validate_look_id_reference_edits.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_look_id_reference_edits.py index 7ae3b4b9b5..4763128f3f 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_look_id_reference_edits.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_look_id_reference_edits.py @@ -1,16 +1,16 @@ from collections import defaultdict -from maya import cmds -import pyblish.api -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( + PublishValidationError, RepairAction, ValidateContentsOrder, - PublishValidationError ) +from ayon_maya.api import plugin +from maya import cmds -class ValidateLookIdReferenceEdits(pyblish.api.InstancePlugin): +class ValidateLookIdReferenceEdits(plugin.MayaInstancePlugin): """Validate nodes in look have no reference edits to cbId. Note: @@ -22,9 +22,8 @@ class ValidateLookIdReferenceEdits(pyblish.api.InstancePlugin): order = ValidateContentsOrder families = ['look'] - hosts = ['maya'] label = 'Look Id Reference Edits' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction, + actions = [ayon_maya.api.action.SelectInvalidAction, RepairAction] @classmethod diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_look_no_default_shaders.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_look_no_default_shaders.py similarity index 88% rename from client/ayon_core/hosts/maya/plugins/publish/validate_look_no_default_shaders.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_look_no_default_shaders.py index 3a67bbd72b..e4662dd498 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_look_no_default_shaders.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_look_no_default_shaders.py @@ -1,14 +1,13 @@ +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + PublishValidationError, + ValidateContentsOrder, +) +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -import ayon_core.hosts.maya.api.action -from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - PublishValidationError -) - -class ValidateLookNoDefaultShaders(pyblish.api.InstancePlugin): +class ValidateLookNoDefaultShaders(plugin.MayaInstancePlugin): """Validate if any node has a connection to a default shader. This checks whether the look has any members of: @@ -28,9 +27,8 @@ class ValidateLookNoDefaultShaders(pyblish.api.InstancePlugin): order = ValidateContentsOrder + 0.01 families = ['look'] - hosts = ['maya'] label = 'Look No Default Shaders' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] DEFAULT_SHADERS = {"lambert1", "initialShadingGroup", "initialParticleSE", "particleCloud1"} diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_look_sets.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_look_sets.py similarity index 94% rename from client/ayon_core/hosts/maya/plugins/publish/validate_look_sets.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_look_sets.py index dd7515c1fb..eae1664114 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_look_sets.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_look_sets.py @@ -1,13 +1,13 @@ -import pyblish.api -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api import lib +import ayon_maya.api.action +from ayon_maya.api import lib from ayon_core.pipeline.publish import ( ValidateContentsOrder, PublishValidationError ) +from ayon_maya.api import plugin -class ValidateLookSets(pyblish.api.InstancePlugin): +class ValidateLookSets(plugin.MayaInstancePlugin): """Validate if any sets relationships are not being collected. A shader can be assigned to a node that is missing a Colorbleed ID. @@ -42,9 +42,8 @@ class ValidateLookSets(pyblish.api.InstancePlugin): order = ValidateContentsOrder families = ['look'] - hosts = ['maya'] label = 'Look Sets' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] def process(self, instance): """Process all the nodes in the instance""" diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_look_shading_group.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_look_shading_group.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/publish/validate_look_shading_group.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_look_shading_group.py index 070974aef5..2aecf64e01 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_look_shading_group.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_look_shading_group.py @@ -1,16 +1,15 @@ -from maya import cmds - -import pyblish.api -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, RepairAction, ValidateContentsOrder, - PublishValidationError, - OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin +from maya import cmds -class ValidateShadingEngine(pyblish.api.InstancePlugin, +class ValidateShadingEngine(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate all shading engines are named after the surface material. @@ -19,10 +18,9 @@ class ValidateShadingEngine(pyblish.api.InstancePlugin, order = ValidateContentsOrder families = ["look"] - hosts = ["maya"] label = "Look Shading Engine Naming" actions = [ - ayon_core.hosts.maya.api.action.SelectInvalidAction, RepairAction + ayon_maya.api.action.SelectInvalidAction, RepairAction ] optional = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_look_single_shader.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_look_single_shader.py similarity index 87% rename from client/ayon_core/hosts/maya/plugins/publish/validate_look_single_shader.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_look_single_shader.py index c0ffaaf9c0..d48c050d97 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_look_single_shader.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_look_single_shader.py @@ -1,12 +1,13 @@ -import pyblish.api +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + PublishValidationError, + ValidateContentsOrder, +) +from ayon_maya.api import plugin from maya import cmds -import ayon_core.hosts.maya.api.action -from ayon_core.pipeline.publish import ( - PublishValidationError, ValidateContentsOrder) - -class ValidateSingleShader(pyblish.api.InstancePlugin): +class ValidateSingleShader(plugin.MayaInstancePlugin): """Validate all nurbsSurfaces and meshes have exactly one shader assigned. This will error if a shape has no shaders or more than one shader. @@ -15,9 +16,8 @@ class ValidateSingleShader(pyblish.api.InstancePlugin): order = ValidateContentsOrder families = ['look'] - hosts = ['maya'] label = 'Look Single Shader Per Shape' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] # The default connections to check def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_maya_units.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_maya_units.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/publish/validate_maya_units.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_maya_units.py index 47314b64ac..cb4df4b5d5 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_maya_units.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_maya_units.py @@ -1,23 +1,20 @@ +import ayon_maya.api.lib as mayalib import maya.cmds as cmds - -import pyblish.api - -import ayon_core.hosts.maya.api.lib as mayalib from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishXmlValidationError, RepairContextAction, ValidateSceneOrder, - PublishXmlValidationError, - OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin -class ValidateMayaUnits(pyblish.api.ContextPlugin, +class ValidateMayaUnits(plugin.MayaContextPlugin, OptionalPyblishPluginMixin): """Check if the Maya units are set correct""" order = ValidateSceneOrder label = "Maya Units" - hosts = ['maya'] actions = [RepairContextAction] validate_linear_units = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_arnold_attributes.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_arnold_attributes.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/validate_mesh_arnold_attributes.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_arnold_attributes.py index e9d9a17ff4..9729c8863d 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_arnold_attributes.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_arnold_attributes.py @@ -1,23 +1,22 @@ -from maya import cmds -import pyblish.api - -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api.lib import ( - maintained_selection, - delete_after, - undo_chunk, - get_attribute, - set_attribute -) +import ayon_maya.api.action from ayon_core.pipeline.publish import ( OptionalPyblishPluginMixin, + PublishValidationError, RepairAction, ValidateMeshOrder, - PublishValidationError ) +from ayon_maya.api.lib import ( + delete_after, + get_attribute, + maintained_selection, + set_attribute, + undo_chunk, +) +from ayon_maya.api import plugin +from maya import cmds -class ValidateMeshArnoldAttributes(pyblish.api.InstancePlugin, +class ValidateMeshArnoldAttributes(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate the mesh has default Arnold attributes. @@ -30,7 +29,7 @@ class ValidateMeshArnoldAttributes(pyblish.api.InstancePlugin, families = ["model"] label = "Mesh Arnold Attributes" actions = [ - ayon_core.hosts.maya.api.action.SelectInvalidAction, + ayon_maya.api.action.SelectInvalidAction, RepairAction ] diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_empty.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_empty.py similarity index 83% rename from client/ayon_core/hosts/maya/plugins/publish/validate_mesh_empty.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_empty.py index c95e1ec816..12b2252eb8 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_empty.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_empty.py @@ -1,15 +1,14 @@ -from maya import cmds - -import pyblish.api -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( + PublishValidationError, RepairAction, ValidateMeshOrder, - PublishValidationError ) +from ayon_maya.api import plugin +from maya import cmds -class ValidateMeshEmpty(pyblish.api.InstancePlugin): +class ValidateMeshEmpty(plugin.MayaInstancePlugin): """Validate meshes have some vertices. Its possible to have meshes without any vertices. To replicate @@ -17,11 +16,10 @@ class ValidateMeshEmpty(pyblish.api.InstancePlugin): """ order = ValidateMeshOrder - hosts = ["maya"] families = ["model"] label = "Mesh Empty" actions = [ - ayon_core.hosts.maya.api.action.SelectInvalidAction, RepairAction + ayon_maya.api.action.SelectInvalidAction, RepairAction ] @classmethod diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_has_uv.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_has_uv.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/publish/validate_mesh_has_uv.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_has_uv.py index 633fc29732..c7576d2a78 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_has_uv.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_has_uv.py @@ -1,16 +1,15 @@ +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidateMeshOrder, +) +from ayon_maya.api.lib import len_flattened +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -import ayon_core.hosts.maya.api.action -from ayon_core.pipeline.publish import ( - ValidateMeshOrder, - OptionalPyblishPluginMixin, - PublishValidationError -) -from ayon_core.hosts.maya.api.lib import len_flattened - -class ValidateMeshHasUVs(pyblish.api.InstancePlugin, +class ValidateMeshHasUVs(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate the current mesh has UVs. @@ -21,10 +20,9 @@ class ValidateMeshHasUVs(pyblish.api.InstancePlugin, """ order = ValidateMeshOrder - hosts = ['maya'] families = ['model'] label = 'Mesh Has UVs' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = True @classmethod diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_lamina_faces.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_lamina_faces.py similarity index 86% rename from client/ayon_core/hosts/maya/plugins/publish/validate_mesh_lamina_faces.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_lamina_faces.py index bfb4257f23..50e3b5b53a 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_lamina_faces.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_lamina_faces.py @@ -1,15 +1,14 @@ +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidateMeshOrder, +) +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -import ayon_core.hosts.maya.api.action -from ayon_core.pipeline.publish import ( - ValidateMeshOrder, - OptionalPyblishPluginMixin, - PublishValidationError -) - -class ValidateMeshLaminaFaces(pyblish.api.InstancePlugin, +class ValidateMeshLaminaFaces(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate meshes don't have lamina faces. @@ -18,10 +17,9 @@ class ValidateMeshLaminaFaces(pyblish.api.InstancePlugin, """ order = ValidateMeshOrder - hosts = ['maya'] families = ['model'] label = 'Mesh Lamina Faces' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = True description = ( diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_ngons.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_ngons.py similarity index 87% rename from client/ayon_core/hosts/maya/plugins/publish/validate_mesh_ngons.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_ngons.py index 58d015e962..c73c8d27e8 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_ngons.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_ngons.py @@ -1,16 +1,15 @@ +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidateContentsOrder, +) +from ayon_maya.api import lib +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api import lib -from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - OptionalPyblishPluginMixin, - PublishValidationError -) - -class ValidateMeshNgons(pyblish.api.InstancePlugin, +class ValidateMeshNgons(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Ensure that meshes don't have ngons @@ -22,10 +21,9 @@ class ValidateMeshNgons(pyblish.api.InstancePlugin, """ order = ValidateContentsOrder - hosts = ["maya"] families = ["model"] label = "Mesh ngons" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = True description = ( diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_no_negative_scale.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_no_negative_scale.py similarity index 88% rename from client/ayon_core/hosts/maya/plugins/publish/validate_mesh_no_negative_scale.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_no_negative_scale.py index bf1489f92e..7a77a2a4f6 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_no_negative_scale.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_no_negative_scale.py @@ -1,12 +1,11 @@ -from maya import cmds - -import pyblish.api -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( - ValidateMeshOrder, + OptionalPyblishPluginMixin, PublishValidationError, - OptionalPyblishPluginMixin + ValidateMeshOrder, ) +from ayon_maya.api import plugin +from maya import cmds def _as_report_list(values, prefix="- ", suffix="\n"): @@ -16,7 +15,7 @@ def _as_report_list(values, prefix="- ", suffix="\n"): return prefix + (suffix + prefix).join(values) -class ValidateMeshNoNegativeScale(pyblish.api.InstancePlugin, +class ValidateMeshNoNegativeScale(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Ensure that meshes don't have a negative scale. @@ -30,10 +29,9 @@ class ValidateMeshNoNegativeScale(pyblish.api.InstancePlugin, """ order = ValidateMeshOrder - hosts = ['maya'] families = ['model'] label = 'Mesh No Negative Scale' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = False @staticmethod diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_non_manifold.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_non_manifold.py similarity index 95% rename from client/ayon_core/hosts/maya/plugins/publish/validate_mesh_non_manifold.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_non_manifold.py index 958707e4f4..8288e8a3b3 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_non_manifold.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_non_manifold.py @@ -1,13 +1,12 @@ -from maya import cmds, mel - -import pyblish.api -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( - ValidateMeshOrder, + OptionalPyblishPluginMixin, PublishXmlValidationError, RepairAction, - OptionalPyblishPluginMixin + ValidateMeshOrder, ) +from ayon_maya.api import plugin +from maya import cmds, mel def poly_cleanup(version=4, @@ -101,7 +100,7 @@ def _as_report_list(values, prefix="- ", suffix="\n"): return prefix + (suffix + prefix).join(values) -class ValidateMeshNonManifold(pyblish.api.InstancePlugin, +class ValidateMeshNonManifold(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Ensure that meshes don't have non-manifold edges or vertices @@ -111,10 +110,9 @@ class ValidateMeshNonManifold(pyblish.api.InstancePlugin, """ order = ValidateMeshOrder - hosts = ['maya'] families = ['model'] label = 'Mesh Non-Manifold Edges/Vertices' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction, + actions = [ayon_maya.api.action.SelectInvalidAction, CleanupMatchingPolygons] optional = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_non_zero_edge.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_non_zero_edge.py similarity index 88% rename from client/ayon_core/hosts/maya/plugins/publish/validate_mesh_non_zero_edge.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_non_zero_edge.py index 0a8d6cf159..bd11ca6488 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_non_zero_edge.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_non_zero_edge.py @@ -1,16 +1,15 @@ +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidateMeshOrder, +) +from ayon_maya.api import lib +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api import lib -from ayon_core.pipeline.publish import ( - ValidateMeshOrder, - OptionalPyblishPluginMixin, - PublishValidationError -) - -class ValidateMeshNonZeroEdgeLength(pyblish.api.InstancePlugin, +class ValidateMeshNonZeroEdgeLength(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate meshes don't have edges with a zero length. @@ -23,9 +22,8 @@ class ValidateMeshNonZeroEdgeLength(pyblish.api.InstancePlugin, order = ValidateMeshOrder families = ['model'] - hosts = ['maya'] label = 'Mesh Edge Length Non Zero' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = True __tolerance = 1e-5 diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_normals_unlocked.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_normals_unlocked.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/publish/validate_mesh_normals_unlocked.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_normals_unlocked.py index 76b716d01f..dd8c523082 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_normals_unlocked.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_normals_unlocked.py @@ -1,14 +1,13 @@ -from maya import cmds +import ayon_maya.api.action import maya.api.OpenMaya as om2 - -import pyblish.api -import ayon_core.hosts.maya.api.action from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, RepairAction, ValidateMeshOrder, - OptionalPyblishPluginMixin, - PublishValidationError ) +from ayon_maya.api import plugin +from maya import cmds def _as_report_list(values, prefix="- ", suffix="\n"): @@ -18,7 +17,7 @@ def _as_report_list(values, prefix="- ", suffix="\n"): return prefix + (suffix + prefix).join(values) -class ValidateMeshNormalsUnlocked(pyblish.api.InstancePlugin, +class ValidateMeshNormalsUnlocked(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate all meshes in the instance have unlocked normals @@ -28,10 +27,9 @@ class ValidateMeshNormalsUnlocked(pyblish.api.InstancePlugin, """ order = ValidateMeshOrder - hosts = ['maya'] families = ['model'] label = 'Mesh Normals Unlocked' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction, + actions = [ayon_maya.api.action.SelectInvalidAction, RepairAction] optional = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_overlapping_uvs.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_overlapping_uvs.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/publish/validate_mesh_overlapping_uvs.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_overlapping_uvs.py index a13d16e849..0ef6c2732e 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_overlapping_uvs.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_overlapping_uvs.py @@ -1,16 +1,15 @@ import math -from six.moves import xrange -from maya import cmds +import ayon_maya.api.action import maya.api.OpenMaya as om -import pyblish.api - -import ayon_core.hosts.maya.api.action from ayon_core.pipeline.publish import ( - ValidateMeshOrder, OptionalPyblishPluginMixin, - PublishValidationError + PublishValidationError, + ValidateMeshOrder, ) +from ayon_maya.api import plugin +from maya import cmds +from six.moves import xrange def _as_report_list(values, prefix="- ", suffix="\n"): @@ -236,7 +235,7 @@ class GetOverlappingUVs(object): return faces -class ValidateMeshHasOverlappingUVs(pyblish.api.InstancePlugin, +class ValidateMeshHasOverlappingUVs(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """ Validate the current mesh overlapping UVs. @@ -245,10 +244,9 @@ class ValidateMeshHasOverlappingUVs(pyblish.api.InstancePlugin, """ order = ValidateMeshOrder - hosts = ['maya'] families = ['model'] label = 'Mesh Has Overlapping UVs' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = True @classmethod diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_shader_connections.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_shader_connections.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/validate_mesh_shader_connections.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_shader_connections.py index 70ede83f2d..e3fff157ac 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_shader_connections.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_shader_connections.py @@ -1,13 +1,12 @@ -from maya import cmds - -import pyblish.api -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, RepairAction, ValidateMeshOrder, - PublishValidationError, - OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin +from maya import cmds def pairs(iterable): @@ -80,7 +79,7 @@ def disconnect(node_a, node_b): cmds.disconnectAttr(source, input) -class ValidateMeshShaderConnections(pyblish.api.InstancePlugin, +class ValidateMeshShaderConnections(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Ensure mesh shading engine connections are valid. @@ -93,10 +92,9 @@ class ValidateMeshShaderConnections(pyblish.api.InstancePlugin, """ order = ValidateMeshOrder - hosts = ['maya'] families = ['model'] label = "Mesh Shader Connections" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction, + actions = [ayon_maya.api.action.SelectInvalidAction, RepairAction] optional = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_single_uv_set.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_single_uv_set.py similarity index 87% rename from client/ayon_core/hosts/maya/plugins/publish/validate_mesh_single_uv_set.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_single_uv_set.py index 21697cd903..a254cbf8a6 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_single_uv_set.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_single_uv_set.py @@ -1,17 +1,16 @@ -from maya import cmds - -import pyblish.api -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api import lib +import ayon_maya.api.action from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, RepairAction, ValidateMeshOrder, - OptionalPyblishPluginMixin, - PublishValidationError ) +from ayon_maya.api import lib +from ayon_maya.api import plugin +from maya import cmds -class ValidateMeshSingleUVSet(pyblish.api.InstancePlugin, +class ValidateMeshSingleUVSet(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Warn on multiple UV sets existing for each polygon mesh. @@ -22,11 +21,10 @@ class ValidateMeshSingleUVSet(pyblish.api.InstancePlugin, """ order = ValidateMeshOrder - hosts = ['maya'] families = ['model', 'pointcache'] optional = True label = "Mesh Single UV Set" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction, + actions = [ayon_maya.api.action.SelectInvalidAction, RepairAction] @staticmethod diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_uv_set_map1.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_uv_set_map1.py similarity index 94% rename from client/ayon_core/hosts/maya/plugins/publish/validate_mesh_uv_set_map1.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_uv_set_map1.py index 305a58d78e..a749edb35a 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_uv_set_map1.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_uv_set_map1.py @@ -1,18 +1,17 @@ import inspect -from maya import cmds - -import pyblish.api -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, RepairAction, ValidateMeshOrder, - OptionalPyblishPluginMixin, - PublishValidationError ) +from ayon_maya.api import plugin +from maya import cmds -class ValidateMeshUVSetMap1(pyblish.api.InstancePlugin, +class ValidateMeshUVSetMap1(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate model's default set exists and is named 'map1'. @@ -24,11 +23,10 @@ class ValidateMeshUVSetMap1(pyblish.api.InstancePlugin, """ order = ValidateMeshOrder - hosts = ['maya'] families = ['model'] optional = True label = "Mesh has map1 UV Set" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction, + actions = [ayon_maya.api.action.SelectInvalidAction, RepairAction] @classmethod @@ -120,10 +118,10 @@ class ValidateMeshUVSetMap1(pyblish.api.InstancePlugin, @staticmethod def get_description(): return inspect.cleandoc("""### Mesh found without map1 uv set - + A mesh must have a default UV set named `map1` to adhere to the default mesh behavior of Maya meshes. - + There may be meshes that: - Have no UV set - Have no `map1` uv set but are using a different name @@ -131,7 +129,7 @@ class ValidateMeshUVSetMap1(pyblish.api.InstancePlugin, #### Repair - + Using repair will try to make the first UV set the `map1` uv set. If it does not exist yet it will be created or renames the current first UV set to `map1`. diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_vertices_have_edges.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_vertices_have_edges.py similarity index 89% rename from client/ayon_core/hosts/maya/plugins/publish/validate_mesh_vertices_have_edges.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_vertices_have_edges.py index f0962148dc..a10a275c44 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_mesh_vertices_have_edges.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mesh_vertices_have_edges.py @@ -1,17 +1,16 @@ -import pyblish.api -from maya import cmds - -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api.lib import len_flattened +import ayon_maya.api.action from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, PublishValidationError, RepairAction, ValidateMeshOrder, - OptionalPyblishPluginMixin ) +from ayon_maya.api.lib import len_flattened +from ayon_maya.api import plugin +from maya import cmds -class ValidateMeshVerticesHaveEdges(pyblish.api.InstancePlugin, +class ValidateMeshVerticesHaveEdges(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate meshes have only vertices that are connected to edges. @@ -32,10 +31,9 @@ class ValidateMeshVerticesHaveEdges(pyblish.api.InstancePlugin, """ order = ValidateMeshOrder - hosts = ['maya'] families = ['model'] label = 'Mesh Vertices Have Edges' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction, + actions = [ayon_maya.api.action.SelectInvalidAction, RepairAction] optional = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_model_content.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_model_content.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/validate_model_content.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_model_content.py index bbc644c3db..5e100dca1c 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_model_content.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_model_content.py @@ -1,18 +1,17 @@ import inspect +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidateContentsOrder, +) +from ayon_maya.api import lib +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api import lib -from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - PublishValidationError, - OptionalPyblishPluginMixin -) - -class ValidateModelContent(pyblish.api.InstancePlugin, +class ValidateModelContent(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Adheres to the content of 'model' product type @@ -21,10 +20,9 @@ class ValidateModelContent(pyblish.api.InstancePlugin, """ order = ValidateContentsOrder - hosts = ["maya"] families = ["model"] label = "Model Content" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] validate_top_group = True optional = False @@ -120,18 +118,18 @@ class ValidateModelContent(pyblish.api.InstancePlugin, message="Model content is invalid. See log for more details.", description=self.get_description() ) - + @classmethod def get_description(cls): return inspect.cleandoc(f""" ### Model content is invalid - - Your model instance does not adhere to the rules of a + + Your model instance does not adhere to the rules of a model product type: - + - Must have at least one visible shape in it, like a mesh. - - Must have one root node. When exporting multiple meshes they + - Must have one root node. When exporting multiple meshes they must be inside a group. - - May only contain the following node types: + - May only contain the following node types: {", ".join(cls.allowed)} """) diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_mvlook_contents.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mvlook_contents.py similarity index 94% rename from client/ayon_core/hosts/maya/plugins/publish/validate_mvlook_contents.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_mvlook_contents.py index 8c2bbf2a36..b26a3f4cb7 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_mvlook_contents.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_mvlook_contents.py @@ -1,24 +1,24 @@ import os -import pyblish.api -import ayon_core.hosts.maya.api.action -from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - OptionalPyblishPluginMixin, - PublishValidationError -) +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidateContentsOrder, +) +from ayon_maya.api import plugin COLOUR_SPACES = ['sRGB', 'linear', 'auto'] MIPMAP_EXTENSIONS = ['tdl'] -class ValidateMvLookContents(pyblish.api.InstancePlugin, +class ValidateMvLookContents(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): order = ValidateContentsOrder families = ['mvLook'] hosts = ['maya'] label = 'Validate mvLook Data' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] # Allow this validation step to be skipped when you just need to # get things pushed through. diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_no_animation.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_no_animation.py similarity index 87% rename from client/ayon_core/hosts/maya/plugins/publish/validate_no_animation.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_no_animation.py index bf45c0e974..146dfda2ca 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_no_animation.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_no_animation.py @@ -1,12 +1,11 @@ -from maya import cmds - -import pyblish.api -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( - ValidateContentsOrder, OptionalPyblishPluginMixin, - PublishValidationError + PublishValidationError, + ValidateContentsOrder, ) +from ayon_maya.api import plugin +from maya import cmds def _as_report_list(values, prefix="- ", suffix="\n"): @@ -16,7 +15,7 @@ def _as_report_list(values, prefix="- ", suffix="\n"): return prefix + (suffix + prefix).join(values) -class ValidateNoAnimation(pyblish.api.InstancePlugin, +class ValidateNoAnimation(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Ensure no keyframes on nodes in the Instance. @@ -31,7 +30,7 @@ class ValidateNoAnimation(pyblish.api.InstancePlugin, hosts = ["maya"] families = ["model"] optional = True - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] def process(self, instance): if not self.is_active(instance.data): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_no_default_camera.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_no_default_camera.py similarity index 85% rename from client/ayon_core/hosts/maya/plugins/publish/validate_no_default_camera.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_no_default_camera.py index 3e21ec6e50..a57c02a842 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_no_default_camera.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_no_default_camera.py @@ -1,12 +1,11 @@ -from maya import cmds - -import pyblish.api -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( - ValidateContentsOrder, + OptionalPyblishPluginMixin, PublishValidationError, - OptionalPyblishPluginMixin + ValidateContentsOrder, ) +from ayon_maya.api import plugin +from maya import cmds def _as_report_list(values, prefix="- ", suffix="\n"): @@ -16,7 +15,7 @@ def _as_report_list(values, prefix="- ", suffix="\n"): return prefix + (suffix + prefix).join(values) -class ValidateNoDefaultCameras(pyblish.api.InstancePlugin, +class ValidateNoDefaultCameras(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Ensure no default (startup) cameras are in the instance. @@ -26,10 +25,9 @@ class ValidateNoDefaultCameras(pyblish.api.InstancePlugin, """ order = ValidateContentsOrder - hosts = ['maya'] families = ['camera'] label = "No Default Cameras" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = False @staticmethod diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_no_namespace.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_no_namespace.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/publish/validate_no_namespace.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_no_namespace.py index f546caff2c..9bd2d98e54 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_no_namespace.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_no_namespace.py @@ -1,14 +1,12 @@ +import ayon_maya.api.action import maya.cmds as cmds - -import pyblish.api from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, RepairAction, ValidateContentsOrder, - PublishValidationError, - OptionalPyblishPluginMixin ) - -import ayon_core.hosts.maya.api.action +from ayon_maya.api import plugin def _as_report_list(values, prefix="- ", suffix="\n"): @@ -25,15 +23,14 @@ def get_namespace(node_name): return node_name.rpartition(":")[0] -class ValidateNoNamespace(pyblish.api.InstancePlugin, +class ValidateNoNamespace(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Ensure the nodes don't have a namespace""" order = ValidateContentsOrder - hosts = ['maya'] families = ['model'] label = 'No Namespaces' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction, + actions = [ayon_maya.api.action.SelectInvalidAction, RepairAction] optional = False diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_no_null_transforms.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_no_null_transforms.py similarity index 91% rename from client/ayon_core/hosts/maya/plugins/publish/validate_no_null_transforms.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_no_null_transforms.py index 38955fd777..5c1baeb0e3 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_no_null_transforms.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_no_null_transforms.py @@ -1,13 +1,12 @@ +import ayon_maya.api.action import maya.cmds as cmds - -import pyblish.api -import ayon_core.hosts.maya.api.action from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, RepairAction, ValidateContentsOrder, - PublishValidationError, - OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin def _as_report_list(values, prefix="- ", suffix="\n"): @@ -33,7 +32,7 @@ def has_shape_children(node): return True -class ValidateNoNullTransforms(pyblish.api.InstancePlugin, +class ValidateNoNullTransforms(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Ensure no null transforms are in the scene. @@ -46,11 +45,10 @@ class ValidateNoNullTransforms(pyblish.api.InstancePlugin, """ order = ValidateContentsOrder - hosts = ['maya'] families = ['model'] label = 'No Empty/Null Transforms' actions = [RepairAction, - ayon_core.hosts.maya.api.action.SelectInvalidAction] + ayon_maya.api.action.SelectInvalidAction] optional = False @staticmethod diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_no_unknown_nodes.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_no_unknown_nodes.py similarity index 86% rename from client/ayon_core/hosts/maya/plugins/publish/validate_no_unknown_nodes.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_no_unknown_nodes.py index 5cc3e95593..3662c94ba3 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_no_unknown_nodes.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_no_unknown_nodes.py @@ -1,12 +1,11 @@ -from maya import cmds - -import pyblish.api -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( - ValidateContentsOrder, OptionalPyblishPluginMixin, - PublishValidationError + PublishValidationError, + ValidateContentsOrder, ) +from ayon_maya.api import plugin +from maya import cmds def _as_report_list(values, prefix="- ", suffix="\n"): @@ -16,7 +15,7 @@ def _as_report_list(values, prefix="- ", suffix="\n"): return prefix + (suffix + prefix).join(values) -class ValidateNoUnknownNodes(pyblish.api.InstancePlugin, +class ValidateNoUnknownNodes(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Checks to see if there are any unknown nodes in the instance. @@ -33,7 +32,7 @@ class ValidateNoUnknownNodes(pyblish.api.InstancePlugin, families = ['model', 'rig'] optional = True label = "Unknown Nodes" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] @staticmethod def get_invalid(instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_no_vraymesh.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_no_vraymesh.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/validate_no_vraymesh.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_no_vraymesh.py index 2d59608e11..d14c335021 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_no_vraymesh.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_no_vraymesh.py @@ -1,9 +1,11 @@ import pyblish.api -from maya import cmds from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, PublishValidationError, - OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin +from maya import cmds + def _as_report_list(values, prefix="- ", suffix="\n"): """Return list as bullet point list for a report""" @@ -12,7 +14,7 @@ def _as_report_list(values, prefix="- ", suffix="\n"): return prefix + (suffix + prefix).join(values) -class ValidateNoVRayMesh(pyblish.api.InstancePlugin, +class ValidateNoVRayMesh(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate there are no VRayMesh objects in the instance""" diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_node_ids.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_node_ids.py similarity index 85% rename from client/ayon_core/hosts/maya/plugins/publish/validate_node_ids.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_node_ids.py index 2d6f231cb5..f9dafa024f 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_node_ids.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_node_ids.py @@ -1,14 +1,13 @@ -import pyblish.api - from ayon_core.pipeline.publish import ( ValidatePipelineOrder, PublishXmlValidationError ) -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api import lib +import ayon_maya.api.action +from ayon_maya.api import lib +from ayon_maya.api import plugin -class ValidateNodeIDs(pyblish.api.InstancePlugin): +class ValidateNodeIDs(plugin.MayaInstancePlugin): """Validate nodes have a Colorbleed Id. When IDs are missing from nodes *save your scene* and they should be @@ -19,7 +18,6 @@ class ValidateNodeIDs(pyblish.api.InstancePlugin): order = ValidatePipelineOrder label = 'Instance Nodes Have ID' - hosts = ['maya'] families = ["model", "look", "rig", @@ -28,8 +26,8 @@ class ValidateNodeIDs(pyblish.api.InstancePlugin): "yetiRig", "assembly"] - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction, - ayon_core.hosts.maya.api.action.GenerateUUIDsOnInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction, + ayon_maya.api.action.GenerateUUIDsOnInvalidAction] @classmethod def apply_settings(cls, project_settings): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_node_ids_deformed_shapes.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_node_ids_deformed_shapes.py similarity index 88% rename from client/ayon_core/hosts/maya/plugins/publish/validate_node_ids_deformed_shapes.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_node_ids_deformed_shapes.py index 545ab8e28c..8e3c4e5bff 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_node_ids_deformed_shapes.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_node_ids_deformed_shapes.py @@ -1,13 +1,15 @@ -import pyblish.api +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + PublishValidationError, + RepairAction, + ValidateContentsOrder, +) +from ayon_maya.api import lib +from ayon_maya.api import plugin from maya import cmds -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api import lib -from ayon_core.pipeline.publish import ( - PublishValidationError, RepairAction, ValidateContentsOrder) - -class ValidateNodeIdsDeformedShape(pyblish.api.InstancePlugin): +class ValidateNodeIdsDeformedShape(plugin.MayaInstancePlugin): """Validate if deformed shapes have related IDs to the original shapes. When a deformer is applied in the scene on a referenced mesh that already @@ -19,10 +21,9 @@ class ValidateNodeIdsDeformedShape(pyblish.api.InstancePlugin): order = ValidateContentsOrder families = ['look'] - hosts = ['maya'] label = 'Deformed shape ids' actions = [ - ayon_core.hosts.maya.api.action.SelectInvalidAction, + ayon_maya.api.action.SelectInvalidAction, RepairAction ] diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_node_ids_in_database.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_node_ids_in_database.py similarity index 88% rename from client/ayon_core/hosts/maya/plugins/publish/validate_node_ids_in_database.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_node_ids_in_database.py index d679c510af..95e488d8e7 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_node_ids_in_database.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_node_ids_in_database.py @@ -1,13 +1,14 @@ -import pyblish.api import ayon_api - -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api import lib +import ayon_maya.api.action from ayon_core.pipeline.publish import ( - PublishValidationError, ValidatePipelineOrder) + PublishValidationError, + ValidatePipelineOrder, +) +from ayon_maya.api import lib +from ayon_maya.api import plugin -class ValidateNodeIdsInDatabase(pyblish.api.InstancePlugin): +class ValidateNodeIdsInDatabase(plugin.MayaInstancePlugin): """Validate if the CB Id is related to an folder in the database All nodes with the `cbId` attribute will be validated to ensure that @@ -20,11 +21,10 @@ class ValidateNodeIdsInDatabase(pyblish.api.InstancePlugin): order = ValidatePipelineOrder label = 'Node Ids in Database' - hosts = ['maya'] families = ["*"] - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction, - ayon_core.hosts.maya.api.action.GenerateUUIDsOnInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction, + ayon_maya.api.action.GenerateUUIDsOnInvalidAction] @classmethod def apply_settings(cls, project_settings): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_node_ids_related.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_node_ids_related.py similarity index 87% rename from client/ayon_core/hosts/maya/plugins/publish/validate_node_ids_related.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_node_ids_related.py index 17eb58f421..7382653d35 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_node_ids_related.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_node_ids_related.py @@ -1,13 +1,16 @@ import inspect import uuid from collections import defaultdict -import pyblish.api -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api import lib -from ayon_core.pipeline.publish import ( - OptionalPyblishPluginMixin, PublishValidationError, ValidatePipelineOrder) +import ayon_maya.api.action from ayon_api import get_folders +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidatePipelineOrder, +) +from ayon_maya.api import lib +from ayon_maya.api import plugin def is_valid_uuid(value) -> bool: @@ -19,20 +22,19 @@ def is_valid_uuid(value) -> bool: return True -class ValidateNodeIDsRelated(pyblish.api.InstancePlugin, +class ValidateNodeIDsRelated(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate nodes have a related `cbId` to the instance.data[folderPath]""" order = ValidatePipelineOrder label = 'Node Ids Related (ID)' - hosts = ['maya'] families = ["model", "look", "rig"] optional = True - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction, - ayon_core.hosts.maya.api.action.GenerateUUIDsOnInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction, + ayon_maya.api.action.GenerateUUIDsOnInvalidAction] @classmethod def apply_settings(cls, project_settings): @@ -109,14 +111,14 @@ class ValidateNodeIDsRelated(pyblish.api.InstancePlugin, @staticmethod def get_description(): return inspect.cleandoc("""### Node IDs must match folder id - + The node ids must match the folder entity id you are publishing to. - - Usually these mismatch occurs if you are re-using nodes from another - folder or project. - + + Usually these mismatch occurs if you are re-using nodes from another + folder or project. + #### How to repair? - - The repair action will regenerate new ids for + + The repair action will regenerate new ids for the invalid nodes to match the instance's folder. """) diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_node_ids_unique.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_node_ids_unique.py similarity index 86% rename from client/ayon_core/hosts/maya/plugins/publish/validate_node_ids_unique.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_node_ids_unique.py index 6b44a307d2..27606baa55 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_node_ids_unique.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_node_ids_unique.py @@ -1,17 +1,16 @@ from collections import defaultdict -import pyblish.api +import ayon_maya.api.action from ayon_core.pipeline.publish import ( + PublishValidationError, ValidatePipelineOrder, - PublishValidationError ) -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api import lib - +from ayon_maya.api import lib +from ayon_maya.api import plugin from maya import cmds -class ValidateNodeIdsUnique(pyblish.api.InstancePlugin): +class ValidateNodeIdsUnique(plugin.MayaInstancePlugin): """Validate the nodes in the instance have a unique Colorbleed Id Here we ensure that what has been added to the instance is unique @@ -19,14 +18,13 @@ class ValidateNodeIdsUnique(pyblish.api.InstancePlugin): order = ValidatePipelineOrder label = 'Non Duplicate Instance Members (ID)' - hosts = ['maya'] families = ["model", "look", "rig", "yetiRig"] - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction, - ayon_core.hosts.maya.api.action.GenerateUUIDsOnInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction, + ayon_maya.api.action.GenerateUUIDsOnInvalidAction] @classmethod def apply_settings(cls, project_settings): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_node_no_ghosting.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_node_no_ghosting.py similarity index 87% rename from client/ayon_core/hosts/maya/plugins/publish/validate_node_no_ghosting.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_node_no_ghosting.py index 10cbbc9a88..184e4eaf15 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_node_no_ghosting.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_node_no_ghosting.py @@ -1,16 +1,14 @@ +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidateContentsOrder, +) +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -import ayon_core.hosts.maya.api.action -from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - OptionalPyblishPluginMixin, - PublishValidationError -) - - -class ValidateNodeNoGhosting(pyblish.api.InstancePlugin, +class ValidateNodeNoGhosting(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Ensure nodes do not have ghosting enabled. @@ -24,10 +22,9 @@ class ValidateNodeNoGhosting(pyblish.api.InstancePlugin, """ order = ValidateContentsOrder - hosts = ['maya'] families = ['model', 'rig'] label = "No Ghosting" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = False _attributes = {'ghosting': 0} diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_plugin_path_attributes.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_plugin_path_attributes.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/publish/validate_plugin_path_attributes.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_plugin_path_attributes.py index f961ec6e4a..506759516e 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_plugin_path_attributes.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_plugin_path_attributes.py @@ -1,26 +1,23 @@ import os +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidateContentsOrder, +) +from ayon_maya.api.action import SelectInvalidAction +from ayon_maya.api.lib import pairwise +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -from ayon_core.hosts.maya.api.lib import pairwise -from ayon_core.hosts.maya.api.action import SelectInvalidAction -from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - PublishValidationError, - OptionalPyblishPluginMixin -) - - -class ValidatePluginPathAttributes(pyblish.api.InstancePlugin, +class ValidatePluginPathAttributes(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """ Validate plug-in path attributes point to existing file paths. """ order = ValidateContentsOrder - hosts = ['maya'] families = ["workfile"] label = "Plug-in Path Attributes" actions = [SelectInvalidAction] diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_render_image_rule.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_render_image_rule.py similarity index 94% rename from client/ayon_core/hosts/maya/plugins/publish/validate_render_image_rule.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_render_image_rule.py index 117f7df822..fd1a9ad9e4 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_render_image_rule.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_render_image_rule.py @@ -1,18 +1,16 @@ import os -import pyblish.api - -from maya import cmds - from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, PublishValidationError, RepairAction, ValidateContentsOrder, - OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin +from maya import cmds -class ValidateRenderImageRule(pyblish.api.InstancePlugin, +class ValidateRenderImageRule(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validates Maya Workpace "images" file rule matches project settings. @@ -24,7 +22,6 @@ class ValidateRenderImageRule(pyblish.api.InstancePlugin, order = ValidateContentsOrder label = "Images File Rule (Workspace)" - hosts = ["maya"] families = ["renderlayer"] actions = [RepairAction] optional = False diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_render_no_default_cameras.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_render_no_default_cameras.py similarity index 82% rename from client/ayon_core/hosts/maya/plugins/publish/validate_render_no_default_cameras.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_render_no_default_cameras.py index 41c0fa4807..083b21b819 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_render_no_default_cameras.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_render_no_default_cameras.py @@ -1,24 +1,21 @@ +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidateContentsOrder, +) +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -import ayon_core.hosts.maya.api.action -from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - PublishValidationError, - OptionalPyblishPluginMixin -) - - -class ValidateRenderNoDefaultCameras(pyblish.api.InstancePlugin, +class ValidateRenderNoDefaultCameras(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Ensure no default (startup) cameras are to be rendered.""" order = ValidateContentsOrder - hosts = ['maya'] families = ['renderlayer'] label = "No Default Cameras Renderable" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = False @staticmethod diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_render_single_camera.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_render_single_camera.py similarity index 87% rename from client/ayon_core/hosts/maya/plugins/publish/validate_render_single_camera.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_render_single_camera.py index e186d74b89..6856b9a0f1 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_render_single_camera.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_render_single_camera.py @@ -1,19 +1,18 @@ -import re import inspect +import re -import pyblish.api +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidateContentsOrder, +) +from ayon_maya.api.lib_rendersettings import RenderSettings +from ayon_maya.api import plugin from maya import cmds -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api.lib_rendersettings import RenderSettings -from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - PublishValidationError, - OptionalPyblishPluginMixin -) - -class ValidateRenderSingleCamera(pyblish.api.InstancePlugin, +class ValidateRenderSingleCamera(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate renderable camera count for layer and token. @@ -23,10 +22,9 @@ class ValidateRenderSingleCamera(pyblish.api.InstancePlugin, order = ValidateContentsOrder label = "Render Single Camera" - hosts = ['maya'] families = ["renderlayer", "vrayscene"] - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = False R_CAMERA_TOKEN = re.compile(r'%c|', re.IGNORECASE) @@ -77,8 +75,8 @@ class ValidateRenderSingleCamera(pyblish.api.InstancePlugin, Your render cameras are misconfigured. You may have no render camera set or have multiple cameras with a render filename prefix that does not include the `` token. - + See the logs for more details about the cameras. - + """ ) diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_renderlayer_aovs.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_renderlayer_aovs.py similarity index 89% rename from client/ayon_core/hosts/maya/plugins/publish/validate_renderlayer_aovs.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_renderlayer_aovs.py index 910e336fc1..16350cfa08 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_renderlayer_aovs.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_renderlayer_aovs.py @@ -1,13 +1,14 @@ import ayon_api +import ayon_maya.api.action import pyblish.api - -import ayon_core.hosts.maya.api.action from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, PublishValidationError, - OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin -class ValidateRenderLayerAOVs(pyblish.api.InstancePlugin, + +class ValidateRenderLayerAOVs(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate created AOVs / RenderElement is registered in the database @@ -26,9 +27,8 @@ class ValidateRenderLayerAOVs(pyblish.api.InstancePlugin, order = pyblish.api.ValidatorOrder + 0.1 label = "Render Passes / AOVs Are Registered" - hosts = ["maya"] families = ["renderlayer"] - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = False def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_rendersettings.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_rendersettings.py similarity index 98% rename from client/ayon_core/hosts/maya/plugins/publish/validate_rendersettings.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_rendersettings.py index 7badfdc027..7b21bf6a14 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_rendersettings.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_rendersettings.py @@ -3,17 +3,16 @@ import re from collections import OrderedDict -from maya import cmds, mel - -import pyblish.api from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, RepairAction, ValidateContentsOrder, - PublishValidationError, - OptionalPyblishPluginMixin ) -from ayon_core.hosts.maya.api import lib -from ayon_core.hosts.maya.api.lib_rendersettings import RenderSettings +from ayon_maya.api import lib +from ayon_maya.api.lib_rendersettings import RenderSettings +from ayon_maya.api import plugin +from maya import cmds, mel def convert_to_int_or_float(string_value): @@ -38,7 +37,7 @@ def get_redshift_image_format_labels(): return mel.eval("{0}={0}".format(var)) -class ValidateRenderSettings(pyblish.api.InstancePlugin, +class ValidateRenderSettings(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validates the global render settings diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_resolution.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_resolution.py similarity index 95% rename from client/ayon_core/hosts/maya/plugins/publish/validate_resolution.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_resolution.py index d822dca288..58d2ad3030 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_resolution.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_resolution.py @@ -1,21 +1,21 @@ import pyblish.api from ayon_core.pipeline import ( + OptionalPyblishPluginMixin, PublishValidationError, - OptionalPyblishPluginMixin ) -from maya import cmds from ayon_core.pipeline.publish import RepairAction -from ayon_core.hosts.maya.api import lib -from ayon_core.hosts.maya.api.lib import reset_scene_resolution +from ayon_maya.api import lib +from ayon_maya.api.lib import reset_scene_resolution +from ayon_maya.api import plugin +from maya import cmds -class ValidateResolution(pyblish.api.InstancePlugin, +class ValidateResolution(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate the render resolution setting aligned with DB""" order = pyblish.api.ValidatorOrder families = ["renderlayer"] - hosts = ["maya"] label = "Validate Resolution" actions = [RepairAction] optional = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_resources.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_resources.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/validate_resources.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_resources.py index 725e86450d..0ec51d909c 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_resources.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_resources.py @@ -1,14 +1,14 @@ import os from collections import defaultdict -import pyblish.api from ayon_core.pipeline.publish import ( + PublishValidationError, ValidateContentsOrder, - PublishValidationError ) +from ayon_maya.api import plugin -class ValidateResources(pyblish.api.InstancePlugin): +class ValidateResources(plugin.MayaInstancePlugin): """Validates mapped resources. These are external files to the current application, for example diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_review.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_review.py similarity index 91% rename from client/ayon_core/hosts/maya/plugins/publish/validate_review.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_review.py index fcfd851368..76f61dc3e5 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_review.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_review.py @@ -1,11 +1,10 @@ -import pyblish.api - from ayon_core.pipeline.publish import ( ValidateContentsOrder, PublishValidationError ) +from ayon_maya.api import plugin -class ValidateReview(pyblish.api.InstancePlugin): +class ValidateReview(plugin.MayaInstancePlugin): """Validate review.""" order = ValidateContentsOrder diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_rig_contents.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_contents.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/publish/validate_rig_contents.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_contents.py index f05e2b7311..ada2ce045b 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_rig_contents.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_contents.py @@ -1,14 +1,14 @@ -import pyblish.api -from maya import cmds -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, PublishValidationError, ValidateContentsOrder, - OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin +from maya import cmds -class ValidateRigContents(pyblish.api.InstancePlugin, +class ValidateRigContents(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Ensure rig contains pipeline-critical content @@ -20,9 +20,8 @@ class ValidateRigContents(pyblish.api.InstancePlugin, order = ValidateContentsOrder label = "Rig Contents" - hosts = ["maya"] families = ["rig"] - action = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + action = [ayon_maya.api.action.SelectInvalidAction] optional = True accepted_output = ["mesh", "transform"] diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_rig_controllers.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_controllers.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/publish/validate_rig_controllers.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_controllers.py index 814ff50177..fed78df2da 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_rig_controllers.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_controllers.py @@ -1,18 +1,16 @@ +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + RepairAction, + ValidateContentsOrder, +) +from ayon_maya.api.lib import undo_chunk +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - RepairAction, - PublishValidationError, - OptionalPyblishPluginMixin -) -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api.lib import undo_chunk - - -class ValidateRigControllers(pyblish.api.InstancePlugin, +class ValidateRigControllers(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate rig controllers. @@ -33,11 +31,10 @@ class ValidateRigControllers(pyblish.api.InstancePlugin, """ order = ValidateContentsOrder + 0.05 label = "Rig Controllers" - hosts = ["maya"] families = ["rig"] optional = True actions = [RepairAction, - ayon_core.hosts.maya.api.action.SelectInvalidAction] + ayon_maya.api.action.SelectInvalidAction] # Default controller values CONTROLLER_DEFAULTS = { diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_rig_controllers_arnold_attributes.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_controllers_arnold_attributes.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/publish/validate_rig_controllers_arnold_attributes.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_controllers_arnold_attributes.py index ea2de81036..06691f4bd3 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_rig_controllers_arnold_attributes.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_controllers_arnold_attributes.py @@ -1,19 +1,16 @@ +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + RepairAction, + ValidateContentsOrder, +) +from ayon_maya.api import lib +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - RepairAction, - PublishValidationError, - OptionalPyblishPluginMixin -) - -from ayon_core.hosts.maya.api import lib -import ayon_core.hosts.maya.api.action - - -class ValidateRigControllersArnoldAttributes(pyblish.api.InstancePlugin, +class ValidateRigControllersArnoldAttributes(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate rig control curves have no keyable arnold attributes. @@ -35,11 +32,10 @@ class ValidateRigControllersArnoldAttributes(pyblish.api.InstancePlugin, """ order = ValidateContentsOrder + 0.05 label = "Rig Controllers (Arnold Attributes)" - hosts = ["maya"] families = ["rig"] optional = False actions = [RepairAction, - ayon_core.hosts.maya.api.action.SelectInvalidAction] + ayon_maya.api.action.SelectInvalidAction] attributes = [ "rcurve", diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_rig_joints_hidden.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_joints_hidden.py similarity index 81% rename from client/ayon_core/hosts/maya/plugins/publish/validate_rig_joints_hidden.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_joints_hidden.py index 78cc3f5938..f0593ed7bc 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_rig_joints_hidden.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_joints_hidden.py @@ -1,18 +1,16 @@ -from maya import cmds - -import pyblish.api - -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api import lib +import ayon_maya.api.action from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, RepairAction, ValidateContentsOrder, - PublishValidationError, - OptionalPyblishPluginMixin ) +from ayon_maya.api import lib +from ayon_maya.api import plugin +from maya import cmds -class ValidateRigJointsHidden(pyblish.api.InstancePlugin, +class ValidateRigJointsHidden(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate all joints are hidden visually. @@ -25,10 +23,9 @@ class ValidateRigJointsHidden(pyblish.api.InstancePlugin, """ order = ValidateContentsOrder - hosts = ['maya'] families = ['rig'] label = "Joints Hidden" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction, + actions = [ayon_maya.api.action.SelectInvalidAction, RepairAction] optional = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_rig_out_set_node_ids.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_out_set_node_ids.py similarity index 94% rename from client/ayon_core/hosts/maya/plugins/publish/validate_rig_out_set_node_ids.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_out_set_node_ids.py index d94ddc5f2a..e5f7a5b204 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_rig_out_set_node_ids.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_out_set_node_ids.py @@ -1,20 +1,18 @@ +import ayon_maya.api.action import maya.cmds as cmds - -import pyblish.api - -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api import lib from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishXmlValidationError, RepairAction, ValidateContentsOrder, - PublishXmlValidationError, - OptionalPyblishPluginMixin, + apply_plugin_settings_automatically, get_plugin_settings, - apply_plugin_settings_automatically ) +from ayon_maya.api import lib +from ayon_maya.api import plugin -class ValidateRigOutSetNodeIds(pyblish.api.InstancePlugin, +class ValidateRigOutSetNodeIds(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate if deformed shapes have related IDs to the original shapes. @@ -27,10 +25,9 @@ class ValidateRigOutSetNodeIds(pyblish.api.InstancePlugin, order = ValidateContentsOrder families = ["rig"] - hosts = ['maya'] label = 'Rig Out Set Node Ids' actions = [ - ayon_core.hosts.maya.api.action.SelectInvalidAction, + ayon_maya.api.action.SelectInvalidAction, RepairAction ] allow_history_only = False diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_rig_output_ids.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_output_ids.py similarity index 94% rename from client/ayon_core/hosts/maya/plugins/publish/validate_rig_output_ids.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_output_ids.py index d04006f013..064c83c0b9 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_rig_output_ids.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_rig_output_ids.py @@ -1,16 +1,14 @@ from collections import defaultdict -from maya import cmds - -import pyblish.api - -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api.lib import get_id, set_id +import ayon_maya.api.action from ayon_core.pipeline.publish import ( + PublishValidationError, RepairAction, ValidateContentsOrder, - PublishValidationError ) +from ayon_maya.api.lib import get_id, set_id +from ayon_maya.api import plugin +from maya import cmds def get_basename(node): @@ -18,7 +16,7 @@ def get_basename(node): return node.rsplit("|", 1)[-1].rsplit(":", 1)[-1] -class ValidateRigOutputIds(pyblish.api.InstancePlugin): +class ValidateRigOutputIds(plugin.MayaInstancePlugin): """Validate rig output ids. Ids must share the same id as similarly named nodes in the scene. This is @@ -27,10 +25,9 @@ class ValidateRigOutputIds(pyblish.api.InstancePlugin): """ order = ValidateContentsOrder + 0.05 label = "Rig Output Ids" - hosts = ["maya"] families = ["rig"] actions = [RepairAction, - ayon_core.hosts.maya.api.action.SelectInvalidAction] + ayon_maya.api.action.SelectInvalidAction] @classmethod def apply_settings(cls, project_settings): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_scene_set_workspace.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_scene_set_workspace.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/publish/validate_scene_set_workspace.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_scene_set_workspace.py index c7d5de2050..cd36f98dfb 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_scene_set_workspace.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_scene_set_workspace.py @@ -1,10 +1,11 @@ import os import maya.cmds as cmds -import pyblish.api - from ayon_core.pipeline.publish import ( - PublishValidationError, ValidatePipelineOrder) + PublishValidationError, + ValidatePipelineOrder, +) +from ayon_maya.api import plugin def is_subdir(path, root_dir): @@ -26,11 +27,10 @@ def is_subdir(path, root_dir): return True -class ValidateSceneSetWorkspace(pyblish.api.ContextPlugin): +class ValidateSceneSetWorkspace(plugin.MayaContextPlugin): """Validate the scene is inside the currently set Maya workspace""" order = ValidatePipelineOrder - hosts = ['maya'] label = 'Maya Workspace Set' def process(self, context): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_setdress_root.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_setdress_root.py similarity index 83% rename from client/ayon_core/hosts/maya/plugins/publish/validate_setdress_root.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_setdress_root.py index f88e33fdfb..26245435eb 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_setdress_root.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_setdress_root.py @@ -1,16 +1,15 @@ -import pyblish.api from ayon_core.pipeline.publish import ( + PublishValidationError, ValidateContentsOrder, - PublishValidationError ) +from ayon_maya.api import plugin -class ValidateSetdressRoot(pyblish.api.InstancePlugin): +class ValidateSetdressRoot(plugin.MayaInstancePlugin): """Validate if set dress top root node is published.""" order = ValidateContentsOrder label = "SetDress Root" - hosts = ["maya"] families = ["setdress"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_shader_name.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_shader_name.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/publish/validate_shader_name.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_shader_name.py index 09c17202c5..45d7ee1c8b 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_shader_name.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_shader_name.py @@ -1,14 +1,16 @@ import re -import pyblish.api +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidateContentsOrder, +) +from ayon_maya.api import plugin from maya import cmds -import ayon_core.hosts.maya.api.action -from ayon_core.pipeline.publish import ( - OptionalPyblishPluginMixin, PublishValidationError, ValidateContentsOrder) - -class ValidateShaderName(pyblish.api.InstancePlugin, +class ValidateShaderName(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate shader name assigned. @@ -18,9 +20,8 @@ class ValidateShaderName(pyblish.api.InstancePlugin, optional = True order = ValidateContentsOrder families = ["look"] - hosts = ['maya'] label = 'Validate Shaders Name' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] regex = r'(?P.*)_(.*)_SHD' # The default connections to check diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_shape_default_names.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_shape_default_names.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/validate_shape_default_names.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_shape_default_names.py index c4c4c909d3..4e4f98d755 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_shape_default_names.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_shape_default_names.py @@ -1,23 +1,21 @@ import re -from maya import cmds - -import pyblish.api - -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - RepairAction, OptionalPyblishPluginMixin, - PublishValidationError + PublishValidationError, + RepairAction, + ValidateContentsOrder, ) +from ayon_maya.api import plugin +from maya import cmds def short_name(node): return node.rsplit("|", 1)[-1].rsplit(":", 1)[-1] -class ValidateShapeDefaultNames(pyblish.api.InstancePlugin, +class ValidateShapeDefaultNames(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validates that Shape names are using Maya's default format. @@ -43,7 +41,7 @@ class ValidateShapeDefaultNames(pyblish.api.InstancePlugin, families = ['model'] optional = True label = "Shape Default Naming" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction, + actions = [ayon_maya.api.action.SelectInvalidAction, RepairAction] @staticmethod diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_shape_render_stats.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_shape_render_stats.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/validate_shape_render_stats.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_shape_render_stats.py index 52ce3c5436..a9c3e861f0 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_shape_render_stats.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_shape_render_stats.py @@ -1,25 +1,22 @@ -import pyblish.api - -from maya import cmds - -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, RepairAction, ValidateMeshOrder, - PublishValidationError, - OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin +from maya import cmds -class ValidateShapeRenderStats(pyblish.api.InstancePlugin, +class ValidateShapeRenderStats(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Ensure all render stats are set to the default values.""" order = ValidateMeshOrder - hosts = ['maya'] families = ['model'] label = 'Shape Default Render Stats' - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction, + actions = [ayon_maya.api.action.SelectInvalidAction, RepairAction] defaults = {'castsShadows': 1, diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_shape_zero.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_shape_zero.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/validate_shape_zero.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_shape_zero.py index 6c89258085..8c11009374 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_shape_zero.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_shape_zero.py @@ -1,18 +1,16 @@ +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + RepairAction, + ValidateContentsOrder, +) +from ayon_maya.api import lib +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -import ayon_core.hosts.maya.api.action -from ayon_core.hosts.maya.api import lib -from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - RepairAction, - PublishValidationError, - OptionalPyblishPluginMixin -) - - -class ValidateShapeZero(pyblish.api.InstancePlugin, +class ValidateShapeZero(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Shape components may not have any "tweak" values @@ -21,11 +19,10 @@ class ValidateShapeZero(pyblish.api.InstancePlugin, """ order = ValidateContentsOrder - hosts = ["maya"] families = ["model"] label = "Shape Zero (Freeze)" actions = [ - ayon_core.hosts.maya.api.action.SelectInvalidAction, + ayon_maya.api.action.SelectInvalidAction, RepairAction ] optional = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_single_assembly.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_single_assembly.py similarity index 89% rename from client/ayon_core/hosts/maya/plugins/publish/validate_single_assembly.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_single_assembly.py index f5d73553d3..0a760e2acc 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_single_assembly.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_single_assembly.py @@ -1,11 +1,11 @@ -import pyblish.api from ayon_core.pipeline.publish import ( + PublishValidationError, ValidateContentsOrder, - PublishValidationError ) +from ayon_maya.api import plugin -class ValidateSingleAssembly(pyblish.api.InstancePlugin): +class ValidateSingleAssembly(plugin.MayaInstancePlugin): """Ensure the content of the instance is grouped in a single hierarchy The instance must have a single root node containing all the content. @@ -21,7 +21,6 @@ class ValidateSingleAssembly(pyblish.api.InstancePlugin): """ order = ValidateContentsOrder - hosts = ['maya'] families = ['rig'] label = 'Single Assembly' diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_skeletalmesh_hierarchy.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_skeletalmesh_hierarchy.py similarity index 88% rename from client/ayon_core/hosts/maya/plugins/publish/validate_skeletalmesh_hierarchy.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_skeletalmesh_hierarchy.py index 172453f1ef..9904fdce22 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_skeletalmesh_hierarchy.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_skeletalmesh_hierarchy.py @@ -1,21 +1,19 @@ # -*- coding: utf-8 -*- -import pyblish.api from ayon_core.pipeline.publish import ( - ValidateContentsOrder, + OptionalPyblishPluginMixin, PublishXmlValidationError, - OptionalPyblishPluginMixin + ValidateContentsOrder, ) - +from ayon_maya.api import plugin from maya import cmds -class ValidateSkeletalMeshHierarchy(pyblish.api.InstancePlugin, +class ValidateSkeletalMeshHierarchy(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validates that nodes has common root.""" order = ValidateContentsOrder - hosts = ["maya"] families = ["skeletalMesh"] label = "Skeletal Mesh Top Node" optional = False diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_skeletalmesh_triangulated.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_skeletalmesh_triangulated.py similarity index 88% rename from client/ayon_core/hosts/maya/plugins/publish/validate_skeletalmesh_triangulated.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_skeletalmesh_triangulated.py index cc25e769e6..7b2b005e9c 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_skeletalmesh_triangulated.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_skeletalmesh_triangulated.py @@ -1,24 +1,19 @@ # -*- coding: utf-8 -*- -import pyblish.api -from ayon_core.hosts.maya.api.action import ( - SelectInvalidAction, -) from ayon_core.pipeline.publish import ( + PublishValidationError, RepairAction, ValidateContentsOrder, - PublishValidationError ) - - +from ayon_maya.api.action import SelectInvalidAction +from ayon_maya.api import plugin from maya import cmds -class ValidateSkeletalMeshTriangulated(pyblish.api.InstancePlugin): +class ValidateSkeletalMeshTriangulated(plugin.MayaInstancePlugin): """Validates that the geometry has been triangulated.""" order = ValidateContentsOrder - hosts = ["maya"] families = ["skeletalMesh"] label = "Skeletal Mesh Triangulated" optional = True diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_skeleton_top_group_hierarchy.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_skeleton_top_group_hierarchy.py similarity index 90% rename from client/ayon_core/hosts/maya/plugins/publish/validate_skeleton_top_group_hierarchy.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_skeleton_top_group_hierarchy.py index 9fbe0f440b..4e0dc38a36 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_skeleton_top_group_hierarchy.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_skeleton_top_group_hierarchy.py @@ -1,17 +1,15 @@ # -*- coding: utf-8 -*- """Plugin for validating naming conventions.""" +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidateContentsOrder, +) +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - OptionalPyblishPluginMixin, - PublishValidationError -) - - -class ValidateSkeletonTopGroupHierarchy(pyblish.api.InstancePlugin, +class ValidateSkeletonTopGroupHierarchy(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validates top group hierarchy in the SETs Make sure the object inside the SETs are always top diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_skinCluster_deformer_set.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_skinCluster_deformer_set.py similarity index 92% rename from client/ayon_core/hosts/maya/plugins/publish/validate_skinCluster_deformer_set.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_skinCluster_deformer_set.py index a548e12f33..32015a57bc 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_skinCluster_deformer_set.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_skinCluster_deformer_set.py @@ -1,16 +1,15 @@ from maya import cmds -import pyblish.api - -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( ValidateContentsOrder, OptionalPyblishPluginMixin, PublishValidationError ) +from ayon_maya.api import plugin -class ValidateSkinclusterDeformerSet(pyblish.api.InstancePlugin, +class ValidateSkinclusterDeformerSet(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate skinClusters on meshes have valid member relationships. @@ -21,10 +20,9 @@ class ValidateSkinclusterDeformerSet(pyblish.api.InstancePlugin, """ order = ValidateContentsOrder - hosts = ['maya'] families = ['fbx'] label = "Skincluster Deformer Relationships" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = False def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_step_size.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_step_size.py similarity index 86% rename from client/ayon_core/hosts/maya/plugins/publish/validate_step_size.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_step_size.py index a276a5b644..303885d907 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_step_size.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_step_size.py @@ -1,14 +1,13 @@ -import pyblish.api - -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, PublishValidationError, ValidateContentsOrder, - OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin -class ValidateStepSize(pyblish.api.InstancePlugin, +class ValidateStepSize(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validates the step size for the instance is in a valid range. @@ -21,7 +20,7 @@ class ValidateStepSize(pyblish.api.InstancePlugin, families = ['camera', 'pointcache', 'animation'] - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = False MIN = 0.01 MAX = 1.0 diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_transform_naming_suffix.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_transform_naming_suffix.py similarity index 94% rename from client/ayon_core/hosts/maya/plugins/publish/validate_transform_naming_suffix.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_transform_naming_suffix.py index e565866778..3a60bc7aef 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_transform_naming_suffix.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_transform_naming_suffix.py @@ -1,19 +1,18 @@ # -*- coding: utf-8 -*- """Plugin for validating naming conventions.""" import json + +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidateContentsOrder, +) +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -import ayon_core.hosts.maya.api.action -from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - OptionalPyblishPluginMixin, - PublishValidationError -) - - -class ValidateTransformNamingSuffix(pyblish.api.InstancePlugin, +class ValidateTransformNamingSuffix(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validates transform suffix based on the type of its children shapes. @@ -36,11 +35,10 @@ class ValidateTransformNamingSuffix(pyblish.api.InstancePlugin, """ order = ValidateContentsOrder - hosts = ["maya"] families = ["model"] optional = True label = "Suffix Naming Conventions" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] SUFFIX_NAMING_TABLE = json.dumps({ "mesh": ["_GEO", "_GES", "_GEP", "_OSD"], "nurbsCurve": ["_CRV"], diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_transform_zero.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_transform_zero.py similarity index 89% rename from client/ayon_core/hosts/maya/plugins/publish/validate_transform_zero.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_transform_zero.py index cd96ebb10d..e251572c0d 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_transform_zero.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_transform_zero.py @@ -1,17 +1,16 @@ import inspect -from maya import cmds -import pyblish.api - -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( - ValidateContentsOrder, + OptionalPyblishPluginMixin, PublishValidationError, - OptionalPyblishPluginMixin + ValidateContentsOrder, ) +from ayon_maya.api import plugin +from maya import cmds -class ValidateTransformZero(pyblish.api.InstancePlugin, +class ValidateTransformZero(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Transforms can't have any values @@ -22,10 +21,9 @@ class ValidateTransformZero(pyblish.api.InstancePlugin, """ order = ValidateContentsOrder - hosts = ["maya"] families = ["model"] label = "Transform Zero (Freeze)" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] _identity = [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, @@ -86,7 +84,7 @@ class ValidateTransformZero(pyblish.api.InstancePlugin, def get_description(): return inspect.cleandoc("""### Transform can't have any values - The model publish allows no transformations. + The model publish allows no transformations. You must **freeze transformations** to continue. diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_unique_names.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_unique_names.py similarity index 81% rename from client/ayon_core/hosts/maya/plugins/publish/validate_unique_names.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_unique_names.py index 0066d70531..cbe5d2f647 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_unique_names.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_unique_names.py @@ -1,15 +1,14 @@ +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidateContentsOrder, +) +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -import ayon_core.hosts.maya.api.action -from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - OptionalPyblishPluginMixin, - PublishValidationError -) - -class ValidateUniqueNames(pyblish.api.InstancePlugin, +class ValidateUniqueNames(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """transform names should be unique @@ -18,10 +17,9 @@ class ValidateUniqueNames(pyblish.api.InstancePlugin, """ order = ValidateContentsOrder - hosts = ["maya"] families = ["model"] label = "Unique transform name" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = True @staticmethod diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_unreal_mesh_triangulated.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_unreal_mesh_triangulated.py similarity index 80% rename from client/ayon_core/hosts/maya/plugins/publish/validate_unreal_mesh_triangulated.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_unreal_mesh_triangulated.py index 6440c00eae..f283150892 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_unreal_mesh_triangulated.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_unreal_mesh_triangulated.py @@ -1,25 +1,22 @@ # -*- coding: utf-8 -*- - -from maya import cmds -import pyblish.api - +import ayon_maya.api.action from ayon_core.pipeline.publish import ( - ValidateMeshOrder, OptionalPyblishPluginMixin, - PublishValidationError + PublishValidationError, + ValidateMeshOrder, ) -import ayon_core.hosts.maya.api.action +from ayon_maya.api import plugin +from maya import cmds -class ValidateUnrealMeshTriangulated(pyblish.api.InstancePlugin, +class ValidateUnrealMeshTriangulated(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate if mesh is made of triangles for Unreal Engine""" order = ValidateMeshOrder - hosts = ["maya"] families = ["staticMesh"] label = "Mesh is Triangulated" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] active = False @classmethod diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_unreal_staticmesh_naming.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_unreal_staticmesh_naming.py similarity index 95% rename from client/ayon_core/hosts/maya/plugins/publish/validate_unreal_staticmesh_naming.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_unreal_staticmesh_naming.py index 88b0ff0e71..dee6563989 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_unreal_staticmesh_naming.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_unreal_staticmesh_naming.py @@ -2,17 +2,16 @@ """Validator for correct naming of Static Meshes.""" import re -import pyblish.api - -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( - ValidateContentsOrder, OptionalPyblishPluginMixin, - PublishValidationError + PublishValidationError, + ValidateContentsOrder, ) +from ayon_maya.api import plugin -class ValidateUnrealStaticMeshName(pyblish.api.InstancePlugin, +class ValidateUnrealStaticMeshName(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate name of Unreal Static Mesh @@ -55,10 +54,9 @@ class ValidateUnrealStaticMeshName(pyblish.api.InstancePlugin, """ optional = True order = ValidateContentsOrder - hosts = ["maya"] families = ["staticMesh"] label = "Unreal Static Mesh Name" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] regex_mesh = r"(?P.*))" regex_collision = r"(?P.*)" diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_unreal_up_axis.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_unreal_up_axis.py similarity index 86% rename from client/ayon_core/hosts/maya/plugins/publish/validate_unreal_up_axis.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_unreal_up_axis.py index f7acd41cea..d970eb8020 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_unreal_up_axis.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_unreal_up_axis.py @@ -1,24 +1,21 @@ # -*- coding: utf-8 -*- - -from maya import cmds -import pyblish.api - from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - RepairAction, OptionalPyblishPluginMixin, - PublishValidationError + PublishValidationError, + RepairAction, + ValidateContentsOrder, ) +from ayon_maya.api import plugin +from maya import cmds -class ValidateUnrealUpAxis(pyblish.api.ContextPlugin, +class ValidateUnrealUpAxis(plugin.MayaContextPlugin, OptionalPyblishPluginMixin): """Validate if Z is set as up axis in Maya""" optional = True active = False order = ValidateContentsOrder - hosts = ["maya"] families = ["staticMesh"] label = "Unreal Up-Axis check" actions = [RepairAction] diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_visible_only.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_visible_only.py similarity index 84% rename from client/ayon_core/hosts/maya/plugins/publish/validate_visible_only.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_visible_only.py index 1fdb476dba..b694b890fc 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_visible_only.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_visible_only.py @@ -1,15 +1,14 @@ -import pyblish.api - -from ayon_core.hosts.maya.api.lib import iter_visible_nodes_in_range -import ayon_core.hosts.maya.api.action +import ayon_maya.api.action from ayon_core.pipeline.publish import ( - ValidateContentsOrder, + OptionalPyblishPluginMixin, PublishValidationError, - OptionalPyblishPluginMixin + ValidateContentsOrder, ) +from ayon_maya.api.lib import iter_visible_nodes_in_range +from ayon_maya.api import plugin -class ValidateAlembicVisibleOnly(pyblish.api.InstancePlugin, +class ValidateAlembicVisibleOnly(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validates at least a single node is visible in frame range. @@ -19,9 +18,8 @@ class ValidateAlembicVisibleOnly(pyblish.api.InstancePlugin, """ order = ValidateContentsOrder + 0.05 label = "Alembic Visible Only" - hosts = ["maya"] families = ["pointcache", "animation"] - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = False def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_vray.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_vray.py similarity index 84% rename from client/ayon_core/hosts/maya/plugins/publish/validate_vray.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_vray.py index db78212658..7cf064f993 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_vray.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_vray.py @@ -1,15 +1,14 @@ -from maya import cmds - import pyblish.api from ayon_core.pipeline.publish import PublishValidationError +from ayon_maya.api import plugin +from maya import cmds -class ValidateVray(pyblish.api.InstancePlugin): +class ValidateVray(plugin.MayaInstancePlugin): """Validate general Vray setup.""" order = pyblish.api.ValidatorOrder label = 'VRay' - hosts = ["maya"] families = ["vrayproxy"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_vray_distributed_rendering.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_vray_distributed_rendering.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/validate_vray_distributed_rendering.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_vray_distributed_rendering.py index b3978b8483..0338798e3f 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_vray_distributed_rendering.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_vray_distributed_rendering.py @@ -1,17 +1,16 @@ -import pyblish.api -from maya import cmds - -from ayon_core.hosts.maya.api import lib from ayon_core.pipeline.publish import ( KnownPublishError, + OptionalPyblishPluginMixin, PublishValidationError, RepairAction, ValidateContentsOrder, - OptionalPyblishPluginMixin ) +from ayon_maya.api import lib +from ayon_maya.api import plugin +from maya import cmds -class ValidateVRayDistributedRendering(pyblish.api.InstancePlugin, +class ValidateVRayDistributedRendering(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate V-Ray Distributed Rendering is ignored in batch mode. diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_vray_referenced_aovs.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_vray_referenced_aovs.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/publish/validate_vray_referenced_aovs.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_vray_referenced_aovs.py index 9df5fb8488..a330866e9b 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_vray_referenced_aovs.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_vray_referenced_aovs.py @@ -1,17 +1,18 @@ # -*- coding: utf-8 -*- """Validate if there are AOVs pulled from references.""" -import pyblish.api import types + +import pyblish.api +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + RepairContextAction, +) +from ayon_maya.api import plugin from maya import cmds -from ayon_core.pipeline.publish import ( - RepairContextAction, - OptionalPyblishPluginMixin, - PublishValidationError -) - -class ValidateVrayReferencedAOVs(pyblish.api.InstancePlugin, +class ValidateVrayReferencedAOVs(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate whether the V-Ray Render Elements (AOVs) include references. @@ -23,7 +24,6 @@ class ValidateVrayReferencedAOVs(pyblish.api.InstancePlugin, order = pyblish.api.ValidatorOrder label = 'VRay Referenced AOVs' - hosts = ['maya'] families = ['renderlayer'] actions = [RepairContextAction] optional = False diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_vray_translator_settings.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_vray_translator_settings.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/publish/validate_vray_translator_settings.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_vray_translator_settings.py index a3d93dd9c0..a4b34db2a1 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_vray_translator_settings.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_vray_translator_settings.py @@ -1,18 +1,17 @@ # -*- coding: utf-8 -*- """Validate VRay Translator settings.""" -import pyblish.api from ayon_core.pipeline.publish import ( - context_plugin_should_run, + OptionalPyblishPluginMixin, + PublishValidationError, RepairContextAction, ValidateContentsOrder, - PublishValidationError, - OptionalPyblishPluginMixin + context_plugin_should_run, ) - +from ayon_maya.api import plugin from maya import cmds -class ValidateVRayTranslatorEnabled(pyblish.api.ContextPlugin, +class ValidateVRayTranslatorEnabled(plugin.MayaContextPlugin, OptionalPyblishPluginMixin): """Validate VRay Translator settings for extracting vrscenes.""" diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_vrayproxy.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_vrayproxy.py similarity index 89% rename from client/ayon_core/hosts/maya/plugins/publish/validate_vrayproxy.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_vrayproxy.py index 0288d4b865..67d656b183 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_vrayproxy.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_vrayproxy.py @@ -1,17 +1,16 @@ import pyblish.api - from ayon_core.pipeline.publish import ( OptionalPyblishPluginMixin, - PublishValidationError + PublishValidationError, ) +from ayon_maya.api import plugin -class ValidateVrayProxy(pyblish.api.InstancePlugin, +class ValidateVrayProxy(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): order = pyblish.api.ValidatorOrder label = "VRay Proxy Settings" - hosts = ["maya"] families = ["vrayproxy"] optional = False diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_vrayproxy_members.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_vrayproxy_members.py similarity index 82% rename from client/ayon_core/hosts/maya/plugins/publish/validate_vrayproxy_members.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_vrayproxy_members.py index 6732d09202..cfb17cda55 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_vrayproxy_members.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_vrayproxy_members.py @@ -1,24 +1,21 @@ +import ayon_maya.api.action import pyblish.api - +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, +) +from ayon_maya.api import plugin from maya import cmds -import ayon_core.hosts.maya.api.action -from ayon_core.pipeline.publish import ( - PublishValidationError, - OptionalPyblishPluginMixin -) - - -class ValidateVrayProxyMembers(pyblish.api.InstancePlugin, +class ValidateVrayProxyMembers(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate whether the V-Ray Proxy instance has shape members""" order = pyblish.api.ValidatorOrder label = 'VRay Proxy Members' - hosts = ['maya'] families = ['vrayproxy'] - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = False def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_xgen.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_xgen.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/publish/validate_xgen.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_xgen.py index 7e0f01c482..050165db01 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_xgen.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_xgen.py @@ -1,18 +1,17 @@ import json import maya.cmds as cmds -import xgenm - import pyblish.api +import xgenm from ayon_core.pipeline.publish import PublishValidationError +from ayon_maya.api import plugin -class ValidateXgen(pyblish.api.InstancePlugin): +class ValidateXgen(plugin.MayaInstancePlugin): """Validate Xgen data.""" label = "Validate Xgen" order = pyblish.api.ValidatorOrder - host = ["maya"] families = ["xgen"] def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_yeti_renderscript_callbacks.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_yeti_renderscript_callbacks.py similarity index 96% rename from client/ayon_core/hosts/maya/plugins/publish/validate_yeti_renderscript_callbacks.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_yeti_renderscript_callbacks.py index 086cb7b1f5..ce6410deaa 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_yeti_renderscript_callbacks.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_yeti_renderscript_callbacks.py @@ -1,14 +1,13 @@ +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidateContentsOrder, +) +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - PublishValidationError, - OptionalPyblishPluginMixin -) - -class ValidateYetiRenderScriptCallbacks(pyblish.api.InstancePlugin, +class ValidateYetiRenderScriptCallbacks(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Check if the render script callbacks will be used during the rendering @@ -27,7 +26,6 @@ class ValidateYetiRenderScriptCallbacks(pyblish.api.InstancePlugin, order = ValidateContentsOrder label = "Yeti Render Script Callbacks" - hosts = ["maya"] families = ["renderlayer"] optional = False diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_yeti_rig_cache_state.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_yeti_rig_cache_state.py similarity index 89% rename from client/ayon_core/hosts/maya/plugins/publish/validate_yeti_rig_cache_state.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_yeti_rig_cache_state.py index 84614fc0be..a7f272c1ec 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_yeti_rig_cache_state.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_yeti_rig_cache_state.py @@ -1,16 +1,17 @@ import inspect -import pyblish.api +import ayon_maya.api.action import maya.cmds as cmds -import ayon_core.hosts.maya.api.action +import pyblish.api from ayon_core.pipeline.publish import ( - RepairAction, + OptionalPyblishPluginMixin, PublishValidationError, - OptionalPyblishPluginMixin + RepairAction, ) +from ayon_maya.api import plugin -class ValidateYetiRigCacheState(pyblish.api.InstancePlugin, +class ValidateYetiRigCacheState(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate the I/O attributes of the node @@ -22,10 +23,9 @@ class ValidateYetiRigCacheState(pyblish.api.InstancePlugin, order = pyblish.api.ValidatorOrder label = "Yeti Rig Cache State" - hosts = ["maya"] families = ["yetiRig"] actions = [RepairAction, - ayon_core.hosts.maya.api.action.SelectInvalidAction] + ayon_maya.api.action.SelectInvalidAction] optional = False def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_yeti_rig_input_in_instance.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_yeti_rig_input_in_instance.py similarity index 85% rename from client/ayon_core/hosts/maya/plugins/publish/validate_yeti_rig_input_in_instance.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_yeti_rig_input_in_instance.py index 77e189e37b..8c258b4455 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_yeti_rig_input_in_instance.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_yeti_rig_input_in_instance.py @@ -1,24 +1,21 @@ +import ayon_maya.api.action +from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, + PublishValidationError, + ValidateContentsOrder, +) +from ayon_maya.api import plugin from maya import cmds -import pyblish.api -import ayon_core.hosts.maya.api.action -from ayon_core.pipeline.publish import ( - ValidateContentsOrder, - PublishValidationError, - OptionalPyblishPluginMixin -) - - -class ValidateYetiRigInputShapesInInstance(pyblish.api.InstancePlugin, +class ValidateYetiRigInputShapesInInstance(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate if all input nodes are part of the instance's hierarchy""" order = ValidateContentsOrder - hosts = ["maya"] families = ["yetiRig"] label = "Yeti Rig Input Shapes In Instance" - actions = [ayon_core.hosts.maya.api.action.SelectInvalidAction] + actions = [ayon_maya.api.action.SelectInvalidAction] optional = False def process(self, instance): diff --git a/client/ayon_core/hosts/maya/plugins/publish/validate_yeti_rig_settings.py b/server_addon/maya/client/ayon_maya/plugins/publish/validate_yeti_rig_settings.py similarity index 93% rename from client/ayon_core/hosts/maya/plugins/publish/validate_yeti_rig_settings.py rename to server_addon/maya/client/ayon_maya/plugins/publish/validate_yeti_rig_settings.py index 6bd2ebb753..fa0836e0ef 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/validate_yeti_rig_settings.py +++ b/server_addon/maya/client/ayon_maya/plugins/publish/validate_yeti_rig_settings.py @@ -1,12 +1,12 @@ import pyblish.api - from ayon_core.pipeline.publish import ( + OptionalPyblishPluginMixin, PublishValidationError, - OptionalPyblishPluginMixin ) +from ayon_maya.api import plugin -class ValidateYetiRigSettings(pyblish.api.InstancePlugin, +class ValidateYetiRigSettings(plugin.MayaInstancePlugin, OptionalPyblishPluginMixin): """Validate Yeti Rig Settings have collected input connections. diff --git a/client/ayon_core/hosts/maya/plugins/workfile_build/load_placeholder.py b/server_addon/maya/client/ayon_maya/plugins/workfile_build/load_placeholder.py similarity index 97% rename from client/ayon_core/hosts/maya/plugins/workfile_build/load_placeholder.py rename to server_addon/maya/client/ayon_maya/plugins/workfile_build/load_placeholder.py index b07c7e9a70..6cf38e591a 100644 --- a/client/ayon_core/hosts/maya/plugins/workfile_build/load_placeholder.py +++ b/server_addon/maya/client/ayon_maya/plugins/workfile_build/load_placeholder.py @@ -4,12 +4,12 @@ from ayon_core.pipeline.workfile.workfile_template_builder import ( PlaceholderLoadMixin, LoadPlaceholderItem ) -from ayon_core.hosts.maya.api.lib import ( +from ayon_maya.api.lib import ( get_container_transforms, get_node_parent, get_node_index_under_parent ) -from ayon_core.hosts.maya.api.workfile_template_builder import ( +from ayon_maya.api.workfile_template_builder import ( MayaPlaceholderPlugin, ) diff --git a/client/ayon_core/hosts/maya/plugins/workfile_build/script_placeholder.py b/server_addon/maya/client/ayon_maya/plugins/workfile_build/script_placeholder.py similarity index 99% rename from client/ayon_core/hosts/maya/plugins/workfile_build/script_placeholder.py rename to server_addon/maya/client/ayon_maya/plugins/workfile_build/script_placeholder.py index 62e10ba023..ff54306220 100644 --- a/client/ayon_core/hosts/maya/plugins/workfile_build/script_placeholder.py +++ b/server_addon/maya/client/ayon_maya/plugins/workfile_build/script_placeholder.py @@ -1,6 +1,6 @@ from maya import cmds -from ayon_core.hosts.maya.api.workfile_template_builder import ( +from ayon_maya.api.workfile_template_builder import ( MayaPlaceholderPlugin ) from ayon_core.lib import NumberDef, TextDef, EnumDef diff --git a/client/ayon_core/hosts/maya/startup/userSetup.py b/server_addon/maya/client/ayon_maya/startup/userSetup.py similarity index 96% rename from client/ayon_core/hosts/maya/startup/userSetup.py rename to server_addon/maya/client/ayon_maya/startup/userSetup.py index 3112e2bf12..600864fd2b 100644 --- a/client/ayon_core/hosts/maya/startup/userSetup.py +++ b/server_addon/maya/client/ayon_maya/startup/userSetup.py @@ -2,7 +2,7 @@ import os from ayon_core.settings import get_project_settings from ayon_core.pipeline import install_host, get_current_project_name -from ayon_core.hosts.maya.api import MayaHost +from ayon_maya.api import MayaHost from maya import cmds diff --git a/client/ayon_core/hosts/maya/tools/__init__.py b/server_addon/maya/client/ayon_maya/tools/__init__.py similarity index 100% rename from client/ayon_core/hosts/maya/tools/__init__.py rename to server_addon/maya/client/ayon_maya/tools/__init__.py diff --git a/client/ayon_core/hosts/maya/tools/mayalookassigner/LICENSE b/server_addon/maya/client/ayon_maya/tools/mayalookassigner/LICENSE similarity index 100% rename from client/ayon_core/hosts/maya/tools/mayalookassigner/LICENSE rename to server_addon/maya/client/ayon_maya/tools/mayalookassigner/LICENSE diff --git a/client/ayon_core/hosts/maya/tools/mayalookassigner/__init__.py b/server_addon/maya/client/ayon_maya/tools/mayalookassigner/__init__.py similarity index 100% rename from client/ayon_core/hosts/maya/tools/mayalookassigner/__init__.py rename to server_addon/maya/client/ayon_maya/tools/mayalookassigner/__init__.py diff --git a/client/ayon_core/hosts/maya/tools/mayalookassigner/alembic.py b/server_addon/maya/client/ayon_maya/tools/mayalookassigner/alembic.py similarity index 100% rename from client/ayon_core/hosts/maya/tools/mayalookassigner/alembic.py rename to server_addon/maya/client/ayon_maya/tools/mayalookassigner/alembic.py diff --git a/client/ayon_core/hosts/maya/tools/mayalookassigner/app.py b/server_addon/maya/client/ayon_maya/tools/mayalookassigner/app.py similarity index 99% rename from client/ayon_core/hosts/maya/tools/mayalookassigner/app.py rename to server_addon/maya/client/ayon_maya/tools/mayalookassigner/app.py index 44d8dfda21..2937b72934 100644 --- a/client/ayon_core/hosts/maya/tools/mayalookassigner/app.py +++ b/server_addon/maya/client/ayon_maya/tools/mayalookassigner/app.py @@ -8,7 +8,7 @@ from qtpy import QtWidgets, QtCore from ayon_core import style from ayon_core.pipeline import get_current_project_name from ayon_core.tools.utils.lib import qt_app_context -from ayon_core.hosts.maya.api.lib import ( +from ayon_maya.api.lib import ( assign_look_by_version, get_main_window ) diff --git a/client/ayon_core/hosts/maya/tools/mayalookassigner/arnold_standin.py b/server_addon/maya/client/ayon_maya/tools/mayalookassigner/arnold_standin.py similarity index 99% rename from client/ayon_core/hosts/maya/tools/mayalookassigner/arnold_standin.py rename to server_addon/maya/client/ayon_maya/tools/mayalookassigner/arnold_standin.py index a20880dffc..c285b857c7 100644 --- a/client/ayon_core/hosts/maya/tools/mayalookassigner/arnold_standin.py +++ b/server_addon/maya/client/ayon_maya/tools/mayalookassigner/arnold_standin.py @@ -7,7 +7,7 @@ from maya import cmds import ayon_api from ayon_core.pipeline import get_current_project_name -from ayon_core.hosts.maya import api +from ayon_maya import api from . import lib from .alembic import get_alembic_ids_cache diff --git a/client/ayon_core/hosts/maya/tools/mayalookassigner/commands.py b/server_addon/maya/client/ayon_maya/tools/mayalookassigner/commands.py similarity index 99% rename from client/ayon_core/hosts/maya/tools/mayalookassigner/commands.py rename to server_addon/maya/client/ayon_maya/tools/mayalookassigner/commands.py index ad43a24385..54b1cff740 100644 --- a/client/ayon_core/hosts/maya/tools/mayalookassigner/commands.py +++ b/server_addon/maya/client/ayon_maya/tools/mayalookassigner/commands.py @@ -10,7 +10,7 @@ from ayon_core.pipeline import ( registered_host, get_current_project_name, ) -from ayon_core.hosts.maya.api import lib +from ayon_maya.api import lib from .vray_proxies import get_alembic_ids_cache from . import arnold_standin diff --git a/client/ayon_core/hosts/maya/tools/mayalookassigner/lib.py b/server_addon/maya/client/ayon_maya/tools/mayalookassigner/lib.py similarity index 98% rename from client/ayon_core/hosts/maya/tools/mayalookassigner/lib.py rename to server_addon/maya/client/ayon_maya/tools/mayalookassigner/lib.py index 78fded12a9..5417db26bc 100644 --- a/client/ayon_core/hosts/maya/tools/mayalookassigner/lib.py +++ b/server_addon/maya/client/ayon_maya/tools/mayalookassigner/lib.py @@ -11,7 +11,7 @@ from ayon_core.pipeline import ( loaders_from_representation, load_container ) -from ayon_core.hosts.maya.api import lib +from ayon_maya.api import lib log = logging.getLogger(__name__) diff --git a/client/ayon_core/hosts/maya/tools/mayalookassigner/models.py b/server_addon/maya/client/ayon_maya/tools/mayalookassigner/models.py similarity index 100% rename from client/ayon_core/hosts/maya/tools/mayalookassigner/models.py rename to server_addon/maya/client/ayon_maya/tools/mayalookassigner/models.py diff --git a/client/ayon_core/hosts/maya/tools/mayalookassigner/usd.py b/server_addon/maya/client/ayon_maya/tools/mayalookassigner/usd.py similarity index 100% rename from client/ayon_core/hosts/maya/tools/mayalookassigner/usd.py rename to server_addon/maya/client/ayon_maya/tools/mayalookassigner/usd.py diff --git a/client/ayon_core/hosts/maya/tools/mayalookassigner/views.py b/server_addon/maya/client/ayon_maya/tools/mayalookassigner/views.py similarity index 100% rename from client/ayon_core/hosts/maya/tools/mayalookassigner/views.py rename to server_addon/maya/client/ayon_maya/tools/mayalookassigner/views.py diff --git a/client/ayon_core/hosts/maya/tools/mayalookassigner/vray_proxies.py b/server_addon/maya/client/ayon_maya/tools/mayalookassigner/vray_proxies.py similarity index 98% rename from client/ayon_core/hosts/maya/tools/mayalookassigner/vray_proxies.py rename to server_addon/maya/client/ayon_maya/tools/mayalookassigner/vray_proxies.py index c1d9f019e4..6b451abb9a 100644 --- a/client/ayon_core/hosts/maya/tools/mayalookassigner/vray_proxies.py +++ b/server_addon/maya/client/ayon_maya/tools/mayalookassigner/vray_proxies.py @@ -7,7 +7,7 @@ from maya import cmds import ayon_api from ayon_core.pipeline import get_current_project_name -import ayon_core.hosts.maya.api.lib as maya_lib +import ayon_maya.api.lib as maya_lib from . import lib from .alembic import get_alembic_ids_cache diff --git a/client/ayon_core/hosts/maya/tools/mayalookassigner/widgets.py b/server_addon/maya/client/ayon_maya/tools/mayalookassigner/widgets.py similarity index 100% rename from client/ayon_core/hosts/maya/tools/mayalookassigner/widgets.py rename to server_addon/maya/client/ayon_maya/tools/mayalookassigner/widgets.py diff --git a/client/ayon_core/hosts/maya/vendor/python/capture.py b/server_addon/maya/client/ayon_maya/vendor/python/capture.py similarity index 100% rename from client/ayon_core/hosts/maya/vendor/python/capture.py rename to server_addon/maya/client/ayon_maya/vendor/python/capture.py diff --git a/server_addon/maya/package.py b/server_addon/maya/package.py index 4537c23eaa..274f74869b 100644 --- a/server_addon/maya/package.py +++ b/server_addon/maya/package.py @@ -1,3 +1,7 @@ name = "maya" title = "Maya" -version = "0.1.20" +version = "0.2.0" + +ayon_required_addons = { + "core": ">0.3.2", +}