diff --git a/client/ayon_core/addon/base.py b/client/ayon_core/addon/base.py index afe102f51a..ad02309635 100644 --- a/client/ayon_core/addon/base.py +++ b/client/ayon_core/addon/base.py @@ -55,6 +55,7 @@ MOVED_ADDON_MILESTONE_VERSIONS = { "celaction": VersionInfo(0, 2, 0), "clockify": VersionInfo(0, 2, 0), "flame": VersionInfo(0, 2, 0), + "fusion": VersionInfo(0, 2, 0), "max": VersionInfo(0, 2, 0), "photoshop": VersionInfo(0, 2, 0), "traypublisher": VersionInfo(0, 2, 0), @@ -63,6 +64,7 @@ MOVED_ADDON_MILESTONE_VERSIONS = { "nuke": VersionInfo(0, 2, 0), "resolve": VersionInfo(0, 2, 0), "substancepainter": VersionInfo(0, 2, 0), + "houdini": VersionInfo(0, 3, 0), } diff --git a/client/ayon_core/modules/deadline/plugins/publish/submit_fusion_deadline.py b/client/ayon_core/modules/deadline/plugins/publish/submit_fusion_deadline.py index 6c70119628..9eea4d6549 100644 --- a/client/ayon_core/modules/deadline/plugins/publish/submit_fusion_deadline.py +++ b/client/ayon_core/modules/deadline/plugins/publish/submit_fusion_deadline.py @@ -79,7 +79,7 @@ class FusionSubmitDeadline( else: context.data[key] = True - from ayon_core.hosts.fusion.api.lib import get_frame_path + from ayon_fusion.api.lib import get_frame_path deadline_url = instance.data["deadline"]["url"] assert deadline_url, "Requires Deadline Webservice URL" diff --git a/client/ayon_core/hosts/fusion/__init__.py b/server_addon/fusion/client/ayon_fusion/__init__.py similarity index 63% rename from client/ayon_core/hosts/fusion/__init__.py rename to server_addon/fusion/client/ayon_fusion/__init__.py index 1da11ba9d1..f2ddccdd87 100644 --- a/client/ayon_core/hosts/fusion/__init__.py +++ b/server_addon/fusion/client/ayon_fusion/__init__.py @@ -1,14 +1,17 @@ +from .version import __version__ from .addon import ( get_fusion_version, FusionAddon, - FUSION_HOST_DIR, + FUSION_ADDON_ROOT, FUSION_VERSIONS_DICT, ) __all__ = ( + "__version__", + "get_fusion_version", "FusionAddon", - "FUSION_HOST_DIR", + "FUSION_ADDON_ROOT", "FUSION_VERSIONS_DICT", ) diff --git a/client/ayon_core/hosts/fusion/addon.py b/server_addon/fusion/client/ayon_fusion/addon.py similarity index 91% rename from client/ayon_core/hosts/fusion/addon.py rename to server_addon/fusion/client/ayon_fusion/addon.py index 54e48ea7bf..ffc70b6ff4 100644 --- a/client/ayon_core/hosts/fusion/addon.py +++ b/server_addon/fusion/client/ayon_fusion/addon.py @@ -3,7 +3,9 @@ import re from ayon_core.addon import AYONAddon, IHostAddon from ayon_core.lib import Logger -FUSION_HOST_DIR = os.path.dirname(os.path.abspath(__file__)) +from .version import __version__ + +FUSION_ADDON_ROOT = os.path.dirname(os.path.abspath(__file__)) # FUSION_VERSIONS_DICT is used by the pre-launch hooks # The keys correspond to all currently supported Fusion versions @@ -50,12 +52,13 @@ def get_fusion_version(app_name): class FusionAddon(AYONAddon, IHostAddon): name = "fusion" + version = __version__ host_name = "fusion" def get_launch_hook_paths(self, app): if app.host_name != self.host_name: return [] - return [os.path.join(FUSION_HOST_DIR, "hooks")] + return [os.path.join(FUSION_ADDON_ROOT, "hooks")] def add_implementation_envs(self, env, app): # Set default values if are not already set via settings diff --git a/client/ayon_core/hosts/fusion/api/__init__.py b/server_addon/fusion/client/ayon_fusion/api/__init__.py similarity index 100% rename from client/ayon_core/hosts/fusion/api/__init__.py rename to server_addon/fusion/client/ayon_fusion/api/__init__.py diff --git a/client/ayon_core/hosts/fusion/api/action.py b/server_addon/fusion/client/ayon_fusion/api/action.py similarity index 98% rename from client/ayon_core/hosts/fusion/api/action.py rename to server_addon/fusion/client/ayon_fusion/api/action.py index a0c6aafcb5..02cd96f56c 100644 --- a/client/ayon_core/hosts/fusion/api/action.py +++ b/server_addon/fusion/client/ayon_fusion/api/action.py @@ -1,7 +1,7 @@ import pyblish.api -from ayon_core.hosts.fusion.api.lib import get_current_comp +from ayon_fusion.api.lib import get_current_comp from ayon_core.pipeline.publish import get_errored_instances_from_context diff --git a/client/ayon_core/hosts/fusion/api/lib.py b/server_addon/fusion/client/ayon_fusion/api/lib.py similarity index 100% rename from client/ayon_core/hosts/fusion/api/lib.py rename to server_addon/fusion/client/ayon_fusion/api/lib.py diff --git a/client/ayon_core/hosts/fusion/api/menu.py b/server_addon/fusion/client/ayon_fusion/api/menu.py similarity index 98% rename from client/ayon_core/hosts/fusion/api/menu.py rename to server_addon/fusion/client/ayon_fusion/api/menu.py index 6a64ad2120..38d8c36bb1 100644 --- a/client/ayon_core/hosts/fusion/api/menu.py +++ b/server_addon/fusion/client/ayon_fusion/api/menu.py @@ -6,10 +6,10 @@ from qtpy import QtWidgets, QtCore, QtGui from ayon_core.tools.utils import host_tools from ayon_core.style import load_stylesheet from ayon_core.lib import register_event_callback -from ayon_core.hosts.fusion.scripts import ( +from ayon_fusion.scripts import ( duplicate_with_inputs, ) -from ayon_core.hosts.fusion.api.lib import ( +from ayon_fusion.api.lib import ( set_current_context_framerange, set_current_context_resolution, ) diff --git a/client/ayon_core/hosts/fusion/api/pipeline.py b/server_addon/fusion/client/ayon_fusion/api/pipeline.py similarity index 98% rename from client/ayon_core/hosts/fusion/api/pipeline.py rename to server_addon/fusion/client/ayon_fusion/api/pipeline.py index 2d1073ec7d..04f0d3db9a 100644 --- a/client/ayon_core/hosts/fusion/api/pipeline.py +++ b/server_addon/fusion/client/ayon_fusion/api/pipeline.py @@ -22,9 +22,9 @@ from ayon_core.pipeline import ( AVALON_CONTAINER_ID, ) from ayon_core.pipeline.load import any_outdated_containers -from ayon_core.hosts.fusion import FUSION_HOST_DIR from ayon_core.host import HostBase, IWorkfileHost, ILoadHost, IPublishHost from ayon_core.tools.utils import host_tools +from ayon_fusion import FUSION_ADDON_ROOT from .lib import ( @@ -35,7 +35,7 @@ from .lib import ( log = Logger.get_logger(__name__) -PLUGINS_DIR = os.path.join(FUSION_HOST_DIR, "plugins") +PLUGINS_DIR = os.path.join(FUSION_ADDON_ROOT, "plugins") PUBLISH_PATH = os.path.join(PLUGINS_DIR, "publish") LOAD_PATH = os.path.join(PLUGINS_DIR, "load") @@ -80,7 +80,7 @@ class FusionHost(HostBase, IWorkfileHost, ILoadHost, IPublishHost): and loaders into fusion. It is called automatically when installing via - `ayon_core.pipeline.install_host(ayon_core.hosts.fusion.api)` + `ayon_core.pipeline.install_host(ayon_fusion.api)` See the Maya equivalent for inspiration on how to implement this. @@ -127,7 +127,7 @@ class FusionHost(HostBase, IWorkfileHost, ILoadHost, IPublishHost): def open_workfile(self, filepath): # Hack to get fusion, see - # ayon_core.hosts.fusion.api.pipeline.get_current_comp() + # ayon_fusion.api.pipeline.get_current_comp() fusion = getattr(sys.modules["__main__"], "fusion", None) return fusion.LoadComp(filepath) diff --git a/client/ayon_core/hosts/fusion/api/plugin.py b/server_addon/fusion/client/ayon_fusion/api/plugin.py similarity index 99% rename from client/ayon_core/hosts/fusion/api/plugin.py rename to server_addon/fusion/client/ayon_fusion/api/plugin.py index efe8269120..48e133cc63 100644 --- a/client/ayon_core/hosts/fusion/api/plugin.py +++ b/server_addon/fusion/client/ayon_fusion/api/plugin.py @@ -1,7 +1,7 @@ from copy import deepcopy import os -from ayon_core.hosts.fusion.api import ( +from ayon_fusion.api import ( get_current_comp, comp_lock_and_undo_chunk, ) diff --git a/client/ayon_core/hosts/fusion/api/pulse.py b/server_addon/fusion/client/ayon_fusion/api/pulse.py similarity index 100% rename from client/ayon_core/hosts/fusion/api/pulse.py rename to server_addon/fusion/client/ayon_fusion/api/pulse.py diff --git a/client/ayon_core/hosts/fusion/deploy/MenuScripts/README.md b/server_addon/fusion/client/ayon_fusion/deploy/MenuScripts/README.md similarity index 100% rename from client/ayon_core/hosts/fusion/deploy/MenuScripts/README.md rename to server_addon/fusion/client/ayon_fusion/deploy/MenuScripts/README.md diff --git a/client/ayon_core/hosts/fusion/deploy/MenuScripts/install_pyside2.py b/server_addon/fusion/client/ayon_fusion/deploy/MenuScripts/install_pyside2.py similarity index 100% rename from client/ayon_core/hosts/fusion/deploy/MenuScripts/install_pyside2.py rename to server_addon/fusion/client/ayon_fusion/deploy/MenuScripts/install_pyside2.py diff --git a/client/ayon_core/hosts/fusion/deploy/MenuScripts/launch_menu.py b/server_addon/fusion/client/ayon_fusion/deploy/MenuScripts/launch_menu.py similarity index 81% rename from client/ayon_core/hosts/fusion/deploy/MenuScripts/launch_menu.py rename to server_addon/fusion/client/ayon_fusion/deploy/MenuScripts/launch_menu.py index 640f78eeb8..0c5010f6a7 100644 --- a/client/ayon_core/hosts/fusion/deploy/MenuScripts/launch_menu.py +++ b/server_addon/fusion/client/ayon_fusion/deploy/MenuScripts/launch_menu.py @@ -5,10 +5,9 @@ if sys.version_info < (3, 7): # hack to handle discrepancy between distributed libraries and Python 3.6 # mostly because wrong version of urllib3 # TODO remove when not necessary - from ayon_core import AYON_CORE_ROOT - FUSION_HOST_DIR = os.path.join(AYON_CORE_ROOT, "hosts", "fusion") + from ayon_fusion import FUSION_ADDON_ROOT - vendor_path = os.path.join(FUSION_HOST_DIR, "vendor") + vendor_path = os.path.join(FUSION_ADDON_ROOT, "vendor") if vendor_path not in sys.path: sys.path.insert(0, vendor_path) @@ -26,8 +25,8 @@ def main(env): # However the contents of that folder can conflict with Qt library dlls # so we make sure to move out of it to avoid DLL Load Failed errors. os.chdir("..") - from ayon_core.hosts.fusion.api import FusionHost - from ayon_core.hosts.fusion.api import menu + from ayon_fusion.api import FusionHost + from ayon_fusion.api import menu # activate resolve from pype install_host(FusionHost()) diff --git a/client/ayon_core/hosts/fusion/deploy/ayon/Config/menu.fu b/server_addon/fusion/client/ayon_fusion/deploy/ayon/Config/menu.fu similarity index 100% rename from client/ayon_core/hosts/fusion/deploy/ayon/Config/menu.fu rename to server_addon/fusion/client/ayon_fusion/deploy/ayon/Config/menu.fu diff --git a/client/ayon_core/hosts/fusion/deploy/ayon/fusion_shared.prefs b/server_addon/fusion/client/ayon_fusion/deploy/ayon/fusion_shared.prefs similarity index 100% rename from client/ayon_core/hosts/fusion/deploy/ayon/fusion_shared.prefs rename to server_addon/fusion/client/ayon_fusion/deploy/ayon/fusion_shared.prefs diff --git a/client/ayon_core/hosts/fusion/hooks/pre_fusion_launch_menu_hook.py b/server_addon/fusion/client/ayon_fusion/hooks/pre_fusion_launch_menu_hook.py similarity index 93% rename from client/ayon_core/hosts/fusion/hooks/pre_fusion_launch_menu_hook.py rename to server_addon/fusion/client/ayon_fusion/hooks/pre_fusion_launch_menu_hook.py index 113a1ffe59..035cbb8d97 100644 --- a/client/ayon_core/hosts/fusion/hooks/pre_fusion_launch_menu_hook.py +++ b/server_addon/fusion/client/ayon_fusion/hooks/pre_fusion_launch_menu_hook.py @@ -1,6 +1,6 @@ import os from ayon_applications import PreLaunchHook -from ayon_core.hosts.fusion import FUSION_HOST_DIR +from ayon_fusion import FUSION_ADDON_ROOT class FusionLaunchMenuHook(PreLaunchHook): @@ -28,7 +28,7 @@ class FusionLaunchMenuHook(PreLaunchHook): "Validation for Fusion version 18+ for /execute " "prelaunch argument skipped.") - path = os.path.join(FUSION_HOST_DIR, + path = os.path.join(FUSION_ADDON_ROOT, "deploy", "MenuScripts", "launch_menu.py").replace("\\", "/") diff --git a/client/ayon_core/hosts/fusion/hooks/pre_fusion_profile_hook.py b/server_addon/fusion/client/ayon_fusion/hooks/pre_fusion_profile_hook.py similarity index 98% rename from client/ayon_core/hosts/fusion/hooks/pre_fusion_profile_hook.py rename to server_addon/fusion/client/ayon_fusion/hooks/pre_fusion_profile_hook.py index 1064d0a83a..7758798bb6 100644 --- a/client/ayon_core/hosts/fusion/hooks/pre_fusion_profile_hook.py +++ b/server_addon/fusion/client/ayon_fusion/hooks/pre_fusion_profile_hook.py @@ -2,8 +2,8 @@ import os import shutil import platform from pathlib import Path -from ayon_core.hosts.fusion import ( - FUSION_HOST_DIR, +from ayon_fusion import ( + FUSION_ADDON_ROOT, FUSION_VERSIONS_DICT, get_fusion_version, ) @@ -163,7 +163,7 @@ class FusionCopyPrefsPrelaunch(PreLaunchHook): master_prefs_variable = f"FUSION{profile_version}_MasterPrefs" master_prefs = Path( - FUSION_HOST_DIR, "deploy", "ayon", "fusion_shared.prefs") + FUSION_ADDON_ROOT, "deploy", "ayon", "fusion_shared.prefs") self.log.info(f"Setting {master_prefs_variable}: {master_prefs}") self.launch_context.env[master_prefs_variable] = str(master_prefs) diff --git a/client/ayon_core/hosts/fusion/hooks/pre_fusion_setup.py b/server_addon/fusion/client/ayon_fusion/hooks/pre_fusion_setup.py similarity index 92% rename from client/ayon_core/hosts/fusion/hooks/pre_fusion_setup.py rename to server_addon/fusion/client/ayon_fusion/hooks/pre_fusion_setup.py index ef084b0483..25cf40f18d 100644 --- a/client/ayon_core/hosts/fusion/hooks/pre_fusion_setup.py +++ b/server_addon/fusion/client/ayon_fusion/hooks/pre_fusion_setup.py @@ -4,8 +4,8 @@ from ayon_applications import ( LaunchTypes, ApplicationLaunchFailed, ) -from ayon_core.hosts.fusion import ( - FUSION_HOST_DIR, +from ayon_fusion import ( + FUSION_ADDON_ROOT, FUSION_VERSIONS_DICT, get_fusion_version, ) @@ -67,5 +67,5 @@ class FusionPrelaunch(PreLaunchHook): # for hook installing PySide2 self.data["fusion_python3_home"] = py3_dir - self.log.info(f"Setting AYON_FUSION_ROOT: {FUSION_HOST_DIR}") - self.launch_context.env["AYON_FUSION_ROOT"] = FUSION_HOST_DIR + self.log.info(f"Setting AYON_FUSION_ROOT: {FUSION_ADDON_ROOT}") + self.launch_context.env["AYON_FUSION_ROOT"] = FUSION_ADDON_ROOT diff --git a/client/ayon_core/hosts/fusion/hooks/pre_pyside_install.py b/server_addon/fusion/client/ayon_fusion/hooks/pre_pyside_install.py similarity index 100% rename from client/ayon_core/hosts/fusion/hooks/pre_pyside_install.py rename to server_addon/fusion/client/ayon_fusion/hooks/pre_pyside_install.py diff --git a/client/ayon_core/hosts/fusion/plugins/create/create_image_saver.py b/server_addon/fusion/client/ayon_fusion/plugins/create/create_image_saver.py similarity index 96% rename from client/ayon_core/hosts/fusion/plugins/create/create_image_saver.py rename to server_addon/fusion/client/ayon_fusion/plugins/create/create_image_saver.py index 729843d078..d88219b268 100644 --- a/client/ayon_core/hosts/fusion/plugins/create/create_image_saver.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/create/create_image_saver.py @@ -1,6 +1,6 @@ from ayon_core.lib import NumberDef -from ayon_core.hosts.fusion.api.plugin import GenericCreateSaver +from ayon_fusion.api.plugin import GenericCreateSaver class CreateImageSaver(GenericCreateSaver): diff --git a/client/ayon_core/hosts/fusion/plugins/create/create_saver.py b/server_addon/fusion/client/ayon_fusion/plugins/create/create_saver.py similarity index 97% rename from client/ayon_core/hosts/fusion/plugins/create/create_saver.py rename to server_addon/fusion/client/ayon_fusion/plugins/create/create_saver.py index 20c7b99851..3e7d9486ce 100644 --- a/client/ayon_core/hosts/fusion/plugins/create/create_saver.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/create/create_saver.py @@ -4,8 +4,8 @@ from ayon_core.lib import ( EnumDef ) -from ayon_core.hosts.fusion.api.plugin import GenericCreateSaver -from ayon_core.hosts.fusion.api.lib import get_current_comp +from ayon_fusion.api.plugin import GenericCreateSaver +from ayon_fusion.api.lib import get_current_comp class CreateSaver(GenericCreateSaver): diff --git a/client/ayon_core/hosts/fusion/plugins/create/create_workfile.py b/server_addon/fusion/client/ayon_fusion/plugins/create/create_workfile.py similarity index 99% rename from client/ayon_core/hosts/fusion/plugins/create/create_workfile.py rename to server_addon/fusion/client/ayon_fusion/plugins/create/create_workfile.py index a2fe027ef4..3dc14861df 100644 --- a/client/ayon_core/hosts/fusion/plugins/create/create_workfile.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/create/create_workfile.py @@ -1,6 +1,6 @@ import ayon_api -from ayon_core.hosts.fusion.api import ( +from ayon_fusion.api import ( get_current_comp ) from ayon_core.pipeline import ( diff --git a/client/ayon_core/hosts/fusion/plugins/inventory/select_containers.py b/server_addon/fusion/client/ayon_fusion/plugins/inventory/select_containers.py similarity index 92% rename from client/ayon_core/hosts/fusion/plugins/inventory/select_containers.py rename to server_addon/fusion/client/ayon_fusion/plugins/inventory/select_containers.py index 167cd3be1f..e863c58ab3 100644 --- a/client/ayon_core/hosts/fusion/plugins/inventory/select_containers.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/inventory/select_containers.py @@ -8,7 +8,7 @@ class FusionSelectContainers(InventoryAction): color = "#d8d8d8" def process(self, containers): - from ayon_core.hosts.fusion.api import ( + from ayon_fusion.api import ( get_current_comp, comp_lock_and_undo_chunk ) diff --git a/client/ayon_core/hosts/fusion/plugins/inventory/set_tool_color.py b/server_addon/fusion/client/ayon_fusion/plugins/inventory/set_tool_color.py similarity index 97% rename from client/ayon_core/hosts/fusion/plugins/inventory/set_tool_color.py rename to server_addon/fusion/client/ayon_fusion/plugins/inventory/set_tool_color.py index 7167cf0fc5..2c02afe32c 100644 --- a/client/ayon_core/hosts/fusion/plugins/inventory/set_tool_color.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/inventory/set_tool_color.py @@ -2,7 +2,7 @@ from qtpy import QtGui, QtWidgets from ayon_core.pipeline import InventoryAction from ayon_core import style -from ayon_core.hosts.fusion.api import ( +from ayon_fusion.api import ( get_current_comp, comp_lock_and_undo_chunk ) diff --git a/client/ayon_core/hosts/fusion/plugins/load/actions.py b/server_addon/fusion/client/ayon_fusion/plugins/load/actions.py similarity index 95% rename from client/ayon_core/hosts/fusion/plugins/load/actions.py rename to server_addon/fusion/client/ayon_fusion/plugins/load/actions.py index 95400ea41c..dfa73e0b7a 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/actions.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/load/actions.py @@ -27,7 +27,7 @@ class FusionSetFrameRangeLoader(load.LoaderPlugin): def load(self, context, name, namespace, data): - from ayon_core.hosts.fusion.api import lib + from ayon_fusion.api import lib version_attributes = context["version"]["attrib"] @@ -63,7 +63,7 @@ class FusionSetFrameRangeWithHandlesLoader(load.LoaderPlugin): def load(self, context, name, namespace, data): - from ayon_core.hosts.fusion.api import lib + from ayon_fusion.api import lib version_attributes = context["version"]["attrib"] start = version_attributes.get("frameStart", None) diff --git a/client/ayon_core/hosts/fusion/plugins/load/load_alembic.py b/server_addon/fusion/client/ayon_fusion/plugins/load/load_alembic.py similarity index 98% rename from client/ayon_core/hosts/fusion/plugins/load/load_alembic.py rename to server_addon/fusion/client/ayon_fusion/plugins/load/load_alembic.py index 312362caca..2e763b5330 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/load_alembic.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/load/load_alembic.py @@ -2,7 +2,7 @@ from ayon_core.pipeline import ( load, get_representation_path, ) -from ayon_core.hosts.fusion.api import ( +from ayon_fusion.api import ( imprint_container, get_current_comp, comp_lock_and_undo_chunk diff --git a/client/ayon_core/hosts/fusion/plugins/load/load_fbx.py b/server_addon/fusion/client/ayon_fusion/plugins/load/load_fbx.py similarity index 98% rename from client/ayon_core/hosts/fusion/plugins/load/load_fbx.py rename to server_addon/fusion/client/ayon_fusion/plugins/load/load_fbx.py index a84e7e0914..a080fa3983 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/load_fbx.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/load/load_fbx.py @@ -2,7 +2,7 @@ from ayon_core.pipeline import ( load, get_representation_path, ) -from ayon_core.hosts.fusion.api import ( +from ayon_fusion.api import ( imprint_container, get_current_comp, comp_lock_and_undo_chunk, diff --git a/client/ayon_core/hosts/fusion/plugins/load/load_sequence.py b/server_addon/fusion/client/ayon_fusion/plugins/load/load_sequence.py similarity index 99% rename from client/ayon_core/hosts/fusion/plugins/load/load_sequence.py rename to server_addon/fusion/client/ayon_fusion/plugins/load/load_sequence.py index 7c70b54e48..233f1d7021 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/load_sequence.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/load/load_sequence.py @@ -1,7 +1,7 @@ import contextlib import ayon_core.pipeline.load as load -from ayon_core.hosts.fusion.api import ( +from ayon_fusion.api import ( imprint_container, get_current_comp, comp_lock_and_undo_chunk, diff --git a/client/ayon_core/hosts/fusion/plugins/load/load_usd.py b/server_addon/fusion/client/ayon_fusion/plugins/load/load_usd.py similarity index 96% rename from client/ayon_core/hosts/fusion/plugins/load/load_usd.py rename to server_addon/fusion/client/ayon_fusion/plugins/load/load_usd.py index 309b0c094c..42ce339faf 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/load_usd.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/load/load_usd.py @@ -2,12 +2,12 @@ from ayon_core.pipeline import ( load, get_representation_path, ) -from ayon_core.hosts.fusion.api import ( +from ayon_fusion.api import ( imprint_container, get_current_comp, comp_lock_and_undo_chunk ) -from ayon_core.hosts.fusion.api.lib import get_fusion_module +from ayon_fusion.api.lib import get_fusion_module class FusionLoadUSD(load.LoaderPlugin): diff --git a/client/ayon_core/hosts/fusion/plugins/load/load_workfile.py b/server_addon/fusion/client/ayon_fusion/plugins/load/load_workfile.py similarity index 95% rename from client/ayon_core/hosts/fusion/plugins/load/load_workfile.py rename to server_addon/fusion/client/ayon_fusion/plugins/load/load_workfile.py index 818fbcb187..c728f6b4aa 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/load_workfile.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/load/load_workfile.py @@ -5,7 +5,7 @@ is no update or reload function added for this plugin from ayon_core.pipeline import load -from ayon_core.hosts.fusion.api import ( +from ayon_fusion.api import ( get_current_comp, get_bmd_library, ) diff --git a/client/ayon_core/hosts/fusion/plugins/publish/collect_comp.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/collect_comp.py similarity index 91% rename from client/ayon_core/hosts/fusion/plugins/publish/collect_comp.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/collect_comp.py index 591c460d5a..2e5bcd63db 100644 --- a/client/ayon_core/hosts/fusion/plugins/publish/collect_comp.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/publish/collect_comp.py @@ -1,6 +1,6 @@ import pyblish.api -from ayon_core.hosts.fusion.api import get_current_comp +from ayon_fusion.api import get_current_comp class CollectCurrentCompFusion(pyblish.api.ContextPlugin): diff --git a/client/ayon_core/hosts/fusion/plugins/publish/collect_comp_frame_range.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/collect_comp_frame_range.py similarity index 100% rename from client/ayon_core/hosts/fusion/plugins/publish/collect_comp_frame_range.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/collect_comp_frame_range.py diff --git a/client/ayon_core/hosts/fusion/plugins/publish/collect_inputs.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/collect_inputs.py similarity index 100% rename from client/ayon_core/hosts/fusion/plugins/publish/collect_inputs.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/collect_inputs.py diff --git a/client/ayon_core/hosts/fusion/plugins/publish/collect_instances.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/collect_instances.py similarity index 100% rename from client/ayon_core/hosts/fusion/plugins/publish/collect_instances.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/collect_instances.py diff --git a/client/ayon_core/hosts/fusion/plugins/publish/collect_render.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/collect_render.py similarity index 99% rename from client/ayon_core/hosts/fusion/plugins/publish/collect_render.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/collect_render.py index 9c04e59717..af52aee861 100644 --- a/client/ayon_core/hosts/fusion/plugins/publish/collect_render.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/publish/collect_render.py @@ -4,7 +4,7 @@ import pyblish.api from ayon_core.pipeline import publish from ayon_core.pipeline.publish import RenderInstance -from ayon_core.hosts.fusion.api.lib import get_frame_path +from ayon_fusion.api.lib import get_frame_path @attr.s diff --git a/client/ayon_core/hosts/fusion/plugins/publish/collect_workfile.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/collect_workfile.py similarity index 100% rename from client/ayon_core/hosts/fusion/plugins/publish/collect_workfile.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/collect_workfile.py diff --git a/client/ayon_core/hosts/fusion/plugins/publish/extract_render_local.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/extract_render_local.py similarity index 97% rename from client/ayon_core/hosts/fusion/plugins/publish/extract_render_local.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/extract_render_local.py index 39fa20cfc0..bbcba5366d 100644 --- a/client/ayon_core/hosts/fusion/plugins/publish/extract_render_local.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/publish/extract_render_local.py @@ -5,8 +5,8 @@ import collections import pyblish.api from ayon_core.pipeline import publish -from ayon_core.hosts.fusion.api import comp_lock_and_undo_chunk -from ayon_core.hosts.fusion.api.lib import get_frame_path, maintained_comp_range +from ayon_fusion.api import comp_lock_and_undo_chunk +from ayon_fusion.api.lib import get_frame_path, maintained_comp_range log = logging.getLogger(__name__) diff --git a/client/ayon_core/hosts/fusion/plugins/publish/increment_current_file.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/increment_current_file.py similarity index 100% rename from client/ayon_core/hosts/fusion/plugins/publish/increment_current_file.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/increment_current_file.py diff --git a/client/ayon_core/hosts/fusion/plugins/publish/save_scene.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/save_scene.py similarity index 100% rename from client/ayon_core/hosts/fusion/plugins/publish/save_scene.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/save_scene.py diff --git a/client/ayon_core/hosts/fusion/plugins/publish/validate_background_depth.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_background_depth.py similarity index 95% rename from client/ayon_core/hosts/fusion/plugins/publish/validate_background_depth.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/validate_background_depth.py index d588748cfa..90b6b110a4 100644 --- a/client/ayon_core/hosts/fusion/plugins/publish/validate_background_depth.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_background_depth.py @@ -6,7 +6,7 @@ from ayon_core.pipeline import ( PublishValidationError, ) -from ayon_core.hosts.fusion.api.action import SelectInvalidAction +from ayon_fusion.api.action import SelectInvalidAction class ValidateBackgroundDepth( diff --git a/client/ayon_core/hosts/fusion/plugins/publish/validate_comp_saved.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_comp_saved.py similarity index 100% rename from client/ayon_core/hosts/fusion/plugins/publish/validate_comp_saved.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/validate_comp_saved.py diff --git a/client/ayon_core/hosts/fusion/plugins/publish/validate_create_folder_checked.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_create_folder_checked.py similarity index 95% rename from client/ayon_core/hosts/fusion/plugins/publish/validate_create_folder_checked.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/validate_create_folder_checked.py index 13ea85b48c..1b910123f0 100644 --- a/client/ayon_core/hosts/fusion/plugins/publish/validate_create_folder_checked.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_create_folder_checked.py @@ -3,7 +3,7 @@ import pyblish.api from ayon_core.pipeline.publish import RepairAction from ayon_core.pipeline import PublishValidationError -from ayon_core.hosts.fusion.api.action import SelectInvalidAction +from ayon_fusion.api.action import SelectInvalidAction class ValidateCreateFolderChecked(pyblish.api.InstancePlugin): diff --git a/client/ayon_core/hosts/fusion/plugins/publish/validate_expected_frames_existence.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_expected_frames_existence.py similarity index 96% rename from client/ayon_core/hosts/fusion/plugins/publish/validate_expected_frames_existence.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/validate_expected_frames_existence.py index 83d1feaefd..6dc9642581 100644 --- a/client/ayon_core/hosts/fusion/plugins/publish/validate_expected_frames_existence.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_expected_frames_existence.py @@ -4,7 +4,7 @@ import pyblish.api from ayon_core.pipeline.publish import RepairAction from ayon_core.pipeline import PublishValidationError -from ayon_core.hosts.fusion.api.action import SelectInvalidAction +from ayon_fusion.api.action import SelectInvalidAction class ValidateLocalFramesExistence(pyblish.api.InstancePlugin): diff --git a/client/ayon_core/hosts/fusion/plugins/publish/validate_filename_has_extension.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_filename_has_extension.py similarity index 94% rename from client/ayon_core/hosts/fusion/plugins/publish/validate_filename_has_extension.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/validate_filename_has_extension.py index 17b1aa47c8..471c0ca31a 100644 --- a/client/ayon_core/hosts/fusion/plugins/publish/validate_filename_has_extension.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_filename_has_extension.py @@ -3,7 +3,7 @@ import os import pyblish.api from ayon_core.pipeline import PublishValidationError -from ayon_core.hosts.fusion.api.action import SelectInvalidAction +from ayon_fusion.api.action import SelectInvalidAction class ValidateFilenameHasExtension(pyblish.api.InstancePlugin): diff --git a/client/ayon_core/hosts/fusion/plugins/publish/validate_image_frame.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_image_frame.py similarity index 100% rename from client/ayon_core/hosts/fusion/plugins/publish/validate_image_frame.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/validate_image_frame.py diff --git a/client/ayon_core/hosts/fusion/plugins/publish/validate_instance_frame_range.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_instance_frame_range.py similarity index 100% rename from client/ayon_core/hosts/fusion/plugins/publish/validate_instance_frame_range.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/validate_instance_frame_range.py diff --git a/client/ayon_core/hosts/fusion/plugins/publish/validate_instance_in_context.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_instance_in_context.py similarity index 97% rename from client/ayon_core/hosts/fusion/plugins/publish/validate_instance_in_context.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/validate_instance_in_context.py index 3aa6fb452f..7b8b70b2fb 100644 --- a/client/ayon_core/hosts/fusion/plugins/publish/validate_instance_in_context.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_instance_in_context.py @@ -2,7 +2,7 @@ """Validate if instance context is the same as publish context.""" import pyblish.api -from ayon_core.hosts.fusion.api.action import SelectToolAction +from ayon_fusion.api.action import SelectToolAction from ayon_core.pipeline.publish import ( RepairAction, ValidateContentsOrder, diff --git a/client/ayon_core/hosts/fusion/plugins/publish/validate_saver_has_input.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_saver_has_input.py similarity index 93% rename from client/ayon_core/hosts/fusion/plugins/publish/validate_saver_has_input.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/validate_saver_has_input.py index a8977e4747..de2cd1d862 100644 --- a/client/ayon_core/hosts/fusion/plugins/publish/validate_saver_has_input.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_saver_has_input.py @@ -1,7 +1,7 @@ import pyblish.api from ayon_core.pipeline import PublishValidationError -from ayon_core.hosts.fusion.api.action import SelectInvalidAction +from ayon_fusion.api.action import SelectInvalidAction class ValidateSaverHasInput(pyblish.api.InstancePlugin): diff --git a/client/ayon_core/hosts/fusion/plugins/publish/validate_saver_passthrough.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_saver_passthrough.py similarity index 96% rename from client/ayon_core/hosts/fusion/plugins/publish/validate_saver_passthrough.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/validate_saver_passthrough.py index acafe3308f..caa17168bc 100644 --- a/client/ayon_core/hosts/fusion/plugins/publish/validate_saver_passthrough.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_saver_passthrough.py @@ -1,7 +1,7 @@ import pyblish.api from ayon_core.pipeline import PublishValidationError -from ayon_core.hosts.fusion.api.action import SelectInvalidAction +from ayon_fusion.api.action import SelectInvalidAction class ValidateSaverPassthrough(pyblish.api.ContextPlugin): diff --git a/client/ayon_core/hosts/fusion/plugins/publish/validate_saver_resolution.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_saver_resolution.py similarity index 96% rename from client/ayon_core/hosts/fusion/plugins/publish/validate_saver_resolution.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/validate_saver_resolution.py index 17992b123c..15d96a9afc 100644 --- a/client/ayon_core/hosts/fusion/plugins/publish/validate_saver_resolution.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_saver_resolution.py @@ -4,8 +4,8 @@ from ayon_core.pipeline import ( OptionalPyblishPluginMixin, ) -from ayon_core.hosts.fusion.api.action import SelectInvalidAction -from ayon_core.hosts.fusion.api import comp_lock_and_undo_chunk +from ayon_fusion.api.action import SelectInvalidAction +from ayon_fusion.api import comp_lock_and_undo_chunk class ValidateSaverResolution( diff --git a/client/ayon_core/hosts/fusion/plugins/publish/validate_unique_subsets.py b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_unique_subsets.py similarity index 97% rename from client/ayon_core/hosts/fusion/plugins/publish/validate_unique_subsets.py rename to server_addon/fusion/client/ayon_fusion/plugins/publish/validate_unique_subsets.py index bcd9abd8b0..dd7df54da5 100644 --- a/client/ayon_core/hosts/fusion/plugins/publish/validate_unique_subsets.py +++ b/server_addon/fusion/client/ayon_fusion/plugins/publish/validate_unique_subsets.py @@ -3,7 +3,7 @@ from collections import defaultdict import pyblish.api from ayon_core.pipeline import PublishValidationError -from ayon_core.hosts.fusion.api.action import SelectInvalidAction +from ayon_fusion.api.action import SelectInvalidAction class ValidateUniqueSubsets(pyblish.api.ContextPlugin): diff --git a/client/ayon_core/hosts/fusion/scripts/__init__.py b/server_addon/fusion/client/ayon_fusion/scripts/__init__.py similarity index 100% rename from client/ayon_core/hosts/fusion/scripts/__init__.py rename to server_addon/fusion/client/ayon_fusion/scripts/__init__.py diff --git a/client/ayon_core/hosts/fusion/scripts/duplicate_with_inputs.py b/server_addon/fusion/client/ayon_fusion/scripts/duplicate_with_inputs.py similarity index 97% rename from client/ayon_core/hosts/fusion/scripts/duplicate_with_inputs.py rename to server_addon/fusion/client/ayon_fusion/scripts/duplicate_with_inputs.py index 727fd335ea..78edb1b3ba 100644 --- a/client/ayon_core/hosts/fusion/scripts/duplicate_with_inputs.py +++ b/server_addon/fusion/client/ayon_fusion/scripts/duplicate_with_inputs.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.fusion.api import ( +from ayon_fusion.api import ( comp_lock_and_undo_chunk, get_current_comp ) diff --git a/client/ayon_core/hosts/fusion/vendor/attr/__init__.py b/server_addon/fusion/client/ayon_fusion/vendor/attr/__init__.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/__init__.py rename to server_addon/fusion/client/ayon_fusion/vendor/attr/__init__.py diff --git a/client/ayon_core/hosts/fusion/vendor/attr/__init__.pyi b/server_addon/fusion/client/ayon_fusion/vendor/attr/__init__.pyi similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/__init__.pyi rename to server_addon/fusion/client/ayon_fusion/vendor/attr/__init__.pyi diff --git a/client/ayon_core/hosts/fusion/vendor/attr/_cmp.py b/server_addon/fusion/client/ayon_fusion/vendor/attr/_cmp.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/_cmp.py rename to server_addon/fusion/client/ayon_fusion/vendor/attr/_cmp.py diff --git a/client/ayon_core/hosts/fusion/vendor/attr/_cmp.pyi b/server_addon/fusion/client/ayon_fusion/vendor/attr/_cmp.pyi similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/_cmp.pyi rename to server_addon/fusion/client/ayon_fusion/vendor/attr/_cmp.pyi diff --git a/client/ayon_core/hosts/fusion/vendor/attr/_compat.py b/server_addon/fusion/client/ayon_fusion/vendor/attr/_compat.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/_compat.py rename to server_addon/fusion/client/ayon_fusion/vendor/attr/_compat.py diff --git a/client/ayon_core/hosts/fusion/vendor/attr/_config.py b/server_addon/fusion/client/ayon_fusion/vendor/attr/_config.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/_config.py rename to server_addon/fusion/client/ayon_fusion/vendor/attr/_config.py diff --git a/client/ayon_core/hosts/fusion/vendor/attr/_funcs.py b/server_addon/fusion/client/ayon_fusion/vendor/attr/_funcs.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/_funcs.py rename to server_addon/fusion/client/ayon_fusion/vendor/attr/_funcs.py diff --git a/client/ayon_core/hosts/fusion/vendor/attr/_make.py b/server_addon/fusion/client/ayon_fusion/vendor/attr/_make.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/_make.py rename to server_addon/fusion/client/ayon_fusion/vendor/attr/_make.py diff --git a/client/ayon_core/hosts/fusion/vendor/attr/_next_gen.py b/server_addon/fusion/client/ayon_fusion/vendor/attr/_next_gen.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/_next_gen.py rename to server_addon/fusion/client/ayon_fusion/vendor/attr/_next_gen.py diff --git a/client/ayon_core/hosts/fusion/vendor/attr/_version_info.py b/server_addon/fusion/client/ayon_fusion/vendor/attr/_version_info.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/_version_info.py rename to server_addon/fusion/client/ayon_fusion/vendor/attr/_version_info.py diff --git a/client/ayon_core/hosts/fusion/vendor/attr/_version_info.pyi b/server_addon/fusion/client/ayon_fusion/vendor/attr/_version_info.pyi similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/_version_info.pyi rename to server_addon/fusion/client/ayon_fusion/vendor/attr/_version_info.pyi diff --git a/client/ayon_core/hosts/fusion/vendor/attr/converters.py b/server_addon/fusion/client/ayon_fusion/vendor/attr/converters.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/converters.py rename to server_addon/fusion/client/ayon_fusion/vendor/attr/converters.py diff --git a/client/ayon_core/hosts/fusion/vendor/attr/converters.pyi b/server_addon/fusion/client/ayon_fusion/vendor/attr/converters.pyi similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/converters.pyi rename to server_addon/fusion/client/ayon_fusion/vendor/attr/converters.pyi diff --git a/client/ayon_core/hosts/fusion/vendor/attr/exceptions.py b/server_addon/fusion/client/ayon_fusion/vendor/attr/exceptions.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/exceptions.py rename to server_addon/fusion/client/ayon_fusion/vendor/attr/exceptions.py diff --git a/client/ayon_core/hosts/fusion/vendor/attr/exceptions.pyi b/server_addon/fusion/client/ayon_fusion/vendor/attr/exceptions.pyi similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/exceptions.pyi rename to server_addon/fusion/client/ayon_fusion/vendor/attr/exceptions.pyi diff --git a/client/ayon_core/hosts/fusion/vendor/attr/filters.py b/server_addon/fusion/client/ayon_fusion/vendor/attr/filters.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/filters.py rename to server_addon/fusion/client/ayon_fusion/vendor/attr/filters.py diff --git a/client/ayon_core/hosts/fusion/vendor/attr/filters.pyi b/server_addon/fusion/client/ayon_fusion/vendor/attr/filters.pyi similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/filters.pyi rename to server_addon/fusion/client/ayon_fusion/vendor/attr/filters.pyi diff --git a/client/ayon_core/hosts/fusion/vendor/attr/py.typed b/server_addon/fusion/client/ayon_fusion/vendor/attr/py.typed similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/py.typed rename to server_addon/fusion/client/ayon_fusion/vendor/attr/py.typed diff --git a/client/ayon_core/hosts/fusion/vendor/attr/setters.py b/server_addon/fusion/client/ayon_fusion/vendor/attr/setters.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/setters.py rename to server_addon/fusion/client/ayon_fusion/vendor/attr/setters.py diff --git a/client/ayon_core/hosts/fusion/vendor/attr/setters.pyi b/server_addon/fusion/client/ayon_fusion/vendor/attr/setters.pyi similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/setters.pyi rename to server_addon/fusion/client/ayon_fusion/vendor/attr/setters.pyi diff --git a/client/ayon_core/hosts/fusion/vendor/attr/validators.py b/server_addon/fusion/client/ayon_fusion/vendor/attr/validators.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/validators.py rename to server_addon/fusion/client/ayon_fusion/vendor/attr/validators.py diff --git a/client/ayon_core/hosts/fusion/vendor/attr/validators.pyi b/server_addon/fusion/client/ayon_fusion/vendor/attr/validators.pyi similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/attr/validators.pyi rename to server_addon/fusion/client/ayon_fusion/vendor/attr/validators.pyi diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/__init__.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/__init__.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/__init__.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/__init__.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/_collections.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/_collections.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/_collections.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/_collections.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/_version.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/_version.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/_version.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/_version.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/connection.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/connection.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/connection.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/connection.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/connectionpool.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/connectionpool.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/connectionpool.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/connectionpool.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/contrib/__init__.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/__init__.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/contrib/__init__.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/__init__.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/contrib/_appengine_environ.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/_appengine_environ.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/contrib/_appengine_environ.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/_appengine_environ.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/contrib/_securetransport/__init__.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/_securetransport/__init__.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/contrib/_securetransport/__init__.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/_securetransport/__init__.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/contrib/_securetransport/bindings.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/_securetransport/bindings.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/contrib/_securetransport/bindings.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/_securetransport/bindings.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/contrib/_securetransport/low_level.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/_securetransport/low_level.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/contrib/_securetransport/low_level.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/_securetransport/low_level.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/contrib/appengine.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/appengine.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/contrib/appengine.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/appengine.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/contrib/ntlmpool.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/ntlmpool.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/contrib/ntlmpool.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/ntlmpool.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/contrib/pyopenssl.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/pyopenssl.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/contrib/pyopenssl.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/pyopenssl.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/contrib/securetransport.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/securetransport.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/contrib/securetransport.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/securetransport.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/contrib/socks.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/socks.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/contrib/socks.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/contrib/socks.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/exceptions.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/exceptions.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/exceptions.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/exceptions.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/fields.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/fields.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/fields.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/fields.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/filepost.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/filepost.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/filepost.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/filepost.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/packages/__init__.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/packages/__init__.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/packages/__init__.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/packages/__init__.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/packages/backports/__init__.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/packages/backports/__init__.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/packages/backports/__init__.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/packages/backports/__init__.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/packages/backports/makefile.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/packages/backports/makefile.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/packages/backports/makefile.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/packages/backports/makefile.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/packages/six.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/packages/six.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/packages/six.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/packages/six.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/packages/ssl_match_hostname/__init__.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/packages/ssl_match_hostname/__init__.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/packages/ssl_match_hostname/__init__.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/packages/ssl_match_hostname/__init__.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/packages/ssl_match_hostname/_implementation.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/packages/ssl_match_hostname/_implementation.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/packages/ssl_match_hostname/_implementation.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/packages/ssl_match_hostname/_implementation.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/poolmanager.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/poolmanager.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/poolmanager.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/poolmanager.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/request.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/request.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/request.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/request.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/response.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/response.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/response.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/response.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/util/__init__.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/__init__.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/util/__init__.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/__init__.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/util/connection.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/connection.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/util/connection.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/connection.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/util/proxy.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/proxy.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/util/proxy.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/proxy.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/util/queue.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/queue.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/util/queue.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/queue.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/util/request.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/request.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/util/request.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/request.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/util/response.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/response.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/util/response.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/response.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/util/retry.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/retry.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/util/retry.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/retry.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/util/ssl_.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/ssl_.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/util/ssl_.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/ssl_.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/util/ssltransport.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/ssltransport.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/util/ssltransport.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/ssltransport.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/util/timeout.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/timeout.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/util/timeout.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/timeout.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/util/url.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/url.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/util/url.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/url.py diff --git a/client/ayon_core/hosts/fusion/vendor/urllib3/util/wait.py b/server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/wait.py similarity index 100% rename from client/ayon_core/hosts/fusion/vendor/urllib3/util/wait.py rename to server_addon/fusion/client/ayon_fusion/vendor/urllib3/util/wait.py diff --git a/server_addon/fusion/client/ayon_fusion/version.py b/server_addon/fusion/client/ayon_fusion/version.py new file mode 100644 index 0000000000..209eddcdb6 --- /dev/null +++ b/server_addon/fusion/client/ayon_fusion/version.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +"""Package declaring AYON addon 'fusion' version.""" +__version__ = "0.2.0" diff --git a/server_addon/fusion/package.py b/server_addon/fusion/package.py index 9e7a46df2c..e82e9bf0f6 100644 --- a/server_addon/fusion/package.py +++ b/server_addon/fusion/package.py @@ -1,3 +1,10 @@ name = "fusion" title = "Fusion" -version = "0.1.5" +version = "0.2.0" + +client_dir = "ayon_fusion" + +ayon_required_addons = { + "core": ">0.3.2", +} +ayon_compatible_addons = {} diff --git a/client/ayon_core/hosts/houdini/__init__.py b/server_addon/houdini/client/ayon_houdini/__init__.py similarity index 100% rename from client/ayon_core/hosts/houdini/__init__.py rename to server_addon/houdini/client/ayon_houdini/__init__.py diff --git a/client/ayon_core/hosts/houdini/addon.py b/server_addon/houdini/client/ayon_houdini/addon.py similarity index 100% rename from client/ayon_core/hosts/houdini/addon.py rename to server_addon/houdini/client/ayon_houdini/addon.py diff --git a/client/ayon_core/hosts/houdini/api/__init__.py b/server_addon/houdini/client/ayon_houdini/api/__init__.py similarity index 100% rename from client/ayon_core/hosts/houdini/api/__init__.py rename to server_addon/houdini/client/ayon_houdini/api/__init__.py diff --git a/client/ayon_core/hosts/houdini/api/action.py b/server_addon/houdini/client/ayon_houdini/api/action.py similarity index 100% rename from client/ayon_core/hosts/houdini/api/action.py rename to server_addon/houdini/client/ayon_houdini/api/action.py diff --git a/client/ayon_core/hosts/houdini/api/colorspace.py b/server_addon/houdini/client/ayon_houdini/api/colorspace.py similarity index 95% rename from client/ayon_core/hosts/houdini/api/colorspace.py rename to server_addon/houdini/client/ayon_houdini/api/colorspace.py index 66581d6f20..ec6e4c2091 100644 --- a/client/ayon_core/hosts/houdini/api/colorspace.py +++ b/server_addon/houdini/client/ayon_houdini/api/colorspace.py @@ -1,6 +1,6 @@ import attr import hou -from ayon_core.hosts.houdini.api.lib import get_color_management_preferences +from ayon_houdini.api.lib import get_color_management_preferences from ayon_core.pipeline.colorspace import get_display_view_colorspace_name @attr.s diff --git a/client/ayon_core/hosts/houdini/api/creator_node_shelves.py b/server_addon/houdini/client/ayon_houdini/api/creator_node_shelves.py similarity index 98% rename from client/ayon_core/hosts/houdini/api/creator_node_shelves.py rename to server_addon/houdini/client/ayon_houdini/api/creator_node_shelves.py index 72c157f187..4d5a706749 100644 --- a/client/ayon_core/hosts/houdini/api/creator_node_shelves.py +++ b/server_addon/houdini/client/ayon_houdini/api/creator_node_shelves.py @@ -35,7 +35,7 @@ CATEGORY_GENERIC_TOOL = { CREATE_SCRIPT = """ -from ayon_core.hosts.houdini.api.creator_node_shelves import create_interactive +from ayon_houdini.api.creator_node_shelves import create_interactive create_interactive("{identifier}", **kwargs) """ @@ -153,7 +153,7 @@ def install(): This function is re-entrant and can be called again to reinstall and update the node definitions. For example during development it can be useful to call it manually: - >>> from ayon_core.hosts.houdini.api.creator_node_shelves import install + >>> from ayon_houdini.api.creator_node_shelves import install >>> install() Returns: diff --git a/client/ayon_core/hosts/houdini/api/lib.py b/server_addon/houdini/client/ayon_houdini/api/lib.py similarity index 99% rename from client/ayon_core/hosts/houdini/api/lib.py rename to server_addon/houdini/client/ayon_houdini/api/lib.py index 7ca8f7f8f0..671265fae9 100644 --- a/client/ayon_core/hosts/houdini/api/lib.py +++ b/server_addon/houdini/client/ayon_houdini/api/lib.py @@ -1027,7 +1027,7 @@ def add_self_publish_button(node): button_parm = hou.ButtonParmTemplate( "ayon_self_publish", "{} Publish".format(label), - script_callback="from ayon_core.hosts.houdini.api.lib import " + script_callback="from ayon_houdini.api.lib import " "self_publish; self_publish()", script_callback_language=hou.scriptLanguage.Python, join_with_next=True @@ -1070,7 +1070,7 @@ def sceneview_snapshot( Example: This is how the function can be used:: - from ayon_core.hosts.houdini.api import lib + from ayon_houdini.api import lib sceneview = hou.ui.paneTabOfType(hou.paneTabType.SceneViewer) lib.sceneview_snapshot(sceneview) diff --git a/client/ayon_core/hosts/houdini/api/pipeline.py b/server_addon/houdini/client/ayon_houdini/api/pipeline.py similarity index 98% rename from client/ayon_core/hosts/houdini/api/pipeline.py rename to server_addon/houdini/client/ayon_houdini/api/pipeline.py index 4797cf36a0..6af4993d25 100644 --- a/client/ayon_core/hosts/houdini/api/pipeline.py +++ b/server_addon/houdini/client/ayon_houdini/api/pipeline.py @@ -17,8 +17,8 @@ from ayon_core.pipeline import ( AYON_CONTAINER_ID, ) from ayon_core.pipeline.load import any_outdated_containers -from ayon_core.hosts.houdini import HOUDINI_HOST_DIR -from ayon_core.hosts.houdini.api import lib, shelves, creator_node_shelves +from ayon_houdini import HOUDINI_HOST_DIR +from ayon_houdini.api import lib, shelves, creator_node_shelves from ayon_core.lib import ( register_event_callback, @@ -26,7 +26,7 @@ from ayon_core.lib import ( ) -log = logging.getLogger("ayon_core.hosts.houdini") +log = logging.getLogger("ayon_houdini") AVALON_CONTAINERS = "/obj/AVALON_CONTAINERS" CONTEXT_CONTAINER = "/obj/OpenPypeContext" diff --git a/client/ayon_core/hosts/houdini/api/plugin.py b/server_addon/houdini/client/ayon_houdini/api/plugin.py similarity index 90% rename from client/ayon_core/hosts/houdini/api/plugin.py rename to server_addon/houdini/client/ayon_houdini/api/plugin.py index a9c8c313b9..9c6bba925a 100644 --- a/client/ayon_core/hosts/houdini/api/plugin.py +++ b/server_addon/houdini/client/ayon_houdini/api/plugin.py @@ -7,6 +7,7 @@ from abc import ( import six import hou +import pyblish.api from ayon_core.pipeline import ( CreatorError, LegacyCreator, @@ -14,11 +15,17 @@ from ayon_core.pipeline import ( CreatedInstance, AYON_INSTANCE_ID, AVALON_INSTANCE_ID, + load, + publish ) from ayon_core.lib import BoolDef + from .lib import imprint, read, lsattr, add_self_publish_button +SETTINGS_CATEGORY = "houdini" + + class Creator(LegacyCreator): """Creator plugin to create instances in Houdini @@ -169,6 +176,8 @@ class HoudiniCreator(NewCreator, HoudiniCreatorBase): settings_name = None add_publish_button = False + settings_category = SETTINGS_CATEGORY + def create(self, product_name, instance_data, pre_create_data): try: self.selected_nodes = [] @@ -347,3 +356,39 @@ class HoudiniCreator(NewCreator, HoudiniCreatorBase): for key, value in settings.items(): setattr(self, key, value) + + +class HoudiniLoader(load.LoaderPlugin): + """Base class for Houdini load plugins.""" + + hosts = ["houdini"] + settings_category = SETTINGS_CATEGORY + + +class HoudiniInstancePlugin(pyblish.api.InstancePlugin): + """Base class for Houdini instance publish plugins.""" + + hosts = ["houdini"] + settings_category = SETTINGS_CATEGORY + + +class HoudiniContextPlugin(pyblish.api.ContextPlugin): + """Base class for Houdini context publish plugins.""" + + hosts = ["houdini"] + settings_category = SETTINGS_CATEGORY + + +class HoudiniExtractorPlugin(publish.Extractor): + """Base class for Houdini extract plugins. + + Note: + The `HoudiniExtractorPlugin` is a subclass of `publish.Extractor`, + which in turn is a subclass of `pyblish.api.InstancePlugin`. + Should there be a requirement to create an extractor that operates + as a context plugin, it would be beneficial to incorporate + the functionalities present in `publish.Extractor`. + """ + + hosts = ["houdini"] + settings_category = SETTINGS_CATEGORY diff --git a/client/ayon_core/hosts/houdini/api/shelves.py b/server_addon/houdini/client/ayon_houdini/api/shelves.py similarity index 99% rename from client/ayon_core/hosts/houdini/api/shelves.py rename to server_addon/houdini/client/ayon_houdini/api/shelves.py index b178139020..2987568af1 100644 --- a/client/ayon_core/hosts/houdini/api/shelves.py +++ b/server_addon/houdini/client/ayon_houdini/api/shelves.py @@ -12,7 +12,7 @@ import hou from .lib import get_current_context_template_data_with_folder_attrs -log = logging.getLogger("ayon_core.hosts.houdini.shelves") +log = logging.getLogger("ayon_houdini.shelves") def generate_shelves(): diff --git a/client/ayon_core/hosts/houdini/api/usd.py b/server_addon/houdini/client/ayon_houdini/api/usd.py similarity index 100% rename from client/ayon_core/hosts/houdini/api/usd.py rename to server_addon/houdini/client/ayon_houdini/api/usd.py diff --git a/client/ayon_core/hosts/houdini/hooks/set_default_display_and_view.py b/server_addon/houdini/client/ayon_houdini/hooks/set_default_display_and_view.py similarity index 100% rename from client/ayon_core/hosts/houdini/hooks/set_default_display_and_view.py rename to server_addon/houdini/client/ayon_houdini/hooks/set_default_display_and_view.py diff --git a/client/ayon_core/hosts/houdini/hooks/set_paths.py b/server_addon/houdini/client/ayon_houdini/hooks/set_paths.py similarity index 100% rename from client/ayon_core/hosts/houdini/hooks/set_paths.py rename to server_addon/houdini/client/ayon_houdini/hooks/set_paths.py diff --git a/client/ayon_core/hosts/houdini/plugins/create/convert_legacy.py b/server_addon/houdini/client/ayon_houdini/plugins/create/convert_legacy.py similarity index 98% rename from client/ayon_core/hosts/houdini/plugins/create/convert_legacy.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/convert_legacy.py index 1a4761172a..4c8c8062ce 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/convert_legacy.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/convert_legacy.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- """Converter for legacy Houdini products.""" from ayon_core.pipeline.create.creator_plugins import ProductConvertorPlugin -from ayon_core.hosts.houdini.api.lib import imprint +from ayon_houdini.api.lib import imprint class HoudiniLegacyConvertor(ProductConvertorPlugin): diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_alembic_camera.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_alembic_camera.py similarity index 97% rename from client/ayon_core/hosts/houdini/plugins/create/create_alembic_camera.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_alembic_camera.py index 0ab5e2794e..4a92e24671 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_alembic_camera.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_alembic_camera.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """Creator plugin for creating alembic camera products.""" -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin from ayon_core.pipeline import CreatorError import hou diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_arnold_ass.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_arnold_ass.py similarity index 97% rename from client/ayon_core/hosts/houdini/plugins/create/create_arnold_ass.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_arnold_ass.py index be5604c01c..4f5fb5833e 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_arnold_ass.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_arnold_ass.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """Creator plugin for creating Arnold ASS files.""" -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin from ayon_core.lib import BoolDef diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_arnold_rop.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_arnold_rop.py similarity index 98% rename from client/ayon_core/hosts/houdini/plugins/create/create_arnold_rop.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_arnold_rop.py index 1208cfc1ea..43875ccbd6 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_arnold_rop.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_arnold_rop.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin from ayon_core.lib import EnumDef, BoolDef diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_bgeo.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_bgeo.py similarity index 98% rename from client/ayon_core/hosts/houdini/plugins/create/create_bgeo.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_bgeo.py index 3749598b1d..93cf0e0998 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_bgeo.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_bgeo.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """Creator plugin for creating pointcache bgeo files.""" -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin from ayon_core.pipeline import CreatorError import hou from ayon_core.lib import EnumDef, BoolDef diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_composite.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_composite.py similarity index 97% rename from client/ayon_core/hosts/houdini/plugins/create/create_composite.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_composite.py index a25faf0e8e..8c0ee8a099 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_composite.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_composite.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """Creator plugin for creating composite sequences.""" -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin from ayon_core.pipeline import CreatorError import hou diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_hda.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_hda.py similarity index 98% rename from client/ayon_core/hosts/houdini/plugins/create/create_hda.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_hda.py index d399aa5e15..6a1adce8cc 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_hda.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_hda.py @@ -3,7 +3,7 @@ import ayon_api from ayon_core.pipeline import CreatorError -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin import hou diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_karma_rop.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_karma_rop.py similarity index 99% rename from client/ayon_core/hosts/houdini/plugins/create/create_karma_rop.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_karma_rop.py index 48cf5057ab..693e6295e2 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_karma_rop.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_karma_rop.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """Creator plugin to create Karma ROP.""" -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin from ayon_core.lib import BoolDef, EnumDef, NumberDef diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_mantra_ifd.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_mantra_ifd.py similarity index 97% rename from client/ayon_core/hosts/houdini/plugins/create/create_mantra_ifd.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_mantra_ifd.py index e0cf035c35..fc5c4819d0 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_mantra_ifd.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_mantra_ifd.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """Creator plugin for creating pointcache alembics.""" -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin from ayon_core.lib import BoolDef diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_mantra_rop.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_mantra_rop.py similarity index 98% rename from client/ayon_core/hosts/houdini/plugins/create/create_mantra_rop.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_mantra_rop.py index 05b4431aba..ce1c96f8b2 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_mantra_rop.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_mantra_rop.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """Creator plugin to create Mantra ROP.""" -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin from ayon_core.lib import EnumDef, BoolDef diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_model.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_model.py similarity index 99% rename from client/ayon_core/hosts/houdini/plugins/create/create_model.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_model.py index 74d067b133..ed6b2096c5 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_model.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_model.py @@ -11,7 +11,7 @@ Note: It's considered to support multiple representations in the future. """ -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin from ayon_core.lib import BoolDef import hou diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_pointcache.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_pointcache.py similarity index 97% rename from client/ayon_core/hosts/houdini/plugins/create/create_pointcache.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_pointcache.py index 9e0a335c3a..6a63659053 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_pointcache.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_pointcache.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """Creator plugin for creating pointcache alembics.""" -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin from ayon_core.lib import BoolDef import hou @@ -105,7 +105,7 @@ class CreatePointCache(plugin.HoudiniCreator): elif len(outputs) == 1: return outputs[0] - # if there are more than one, then it have multiple ouput nodes + # if there are more than one, then it have multiple output nodes # return the one with the minimum 'outputidx' else: return min(outputs, diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_redshift_proxy.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_redshift_proxy.py similarity index 98% rename from client/ayon_core/hosts/houdini/plugins/create/create_redshift_proxy.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_redshift_proxy.py index 6a9321b95a..0e3eb03ddd 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_redshift_proxy.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_redshift_proxy.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """Creator plugin for creating Redshift proxies.""" -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin import hou from ayon_core.lib import BoolDef diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_redshift_rop.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_redshift_rop.py similarity index 99% rename from client/ayon_core/hosts/houdini/plugins/create/create_redshift_rop.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_redshift_rop.py index 3ecb09ee9b..d63e584692 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_redshift_rop.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_redshift_rop.py @@ -3,7 +3,7 @@ import hou # noqa from ayon_core.pipeline import CreatorError -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin from ayon_core.lib import EnumDef, BoolDef diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_review.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_review.py similarity index 97% rename from client/ayon_core/hosts/houdini/plugins/create/create_review.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_review.py index f5e4d4ce64..b27264f400 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_review.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_review.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """Creator plugin for creating openGL reviews.""" -from ayon_core.hosts.houdini.api import lib, plugin +from ayon_houdini.api import lib, plugin from ayon_core.lib import EnumDef, BoolDef, NumberDef import os @@ -103,7 +103,7 @@ class CreateReview(plugin.HoudiniCreator): # cls.review_color_space is an empty string # when the imageio/workfile setting is disabled or # when the Review colorspace setting is empty. - from ayon_core.hosts.houdini.api.colorspace import get_default_display_view_colorspace # noqa + from ayon_houdini.api.colorspace import get_default_display_view_colorspace # noqa self.review_color_space = get_default_display_view_colorspace() lib.set_review_color_space(instance_node, diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_staticmesh.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_staticmesh.py similarity index 99% rename from client/ayon_core/hosts/houdini/plugins/create/create_staticmesh.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_staticmesh.py index 3271107c6e..17b646040c 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_staticmesh.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_staticmesh.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """Creator for Unreal Static Meshes.""" -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin from ayon_core.lib import BoolDef, EnumDef import hou diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_usd.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_usd.py similarity index 96% rename from client/ayon_core/hosts/houdini/plugins/create/create_usd.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_usd.py index 700f7eefd6..b8aede677b 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_usd.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_usd.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """Creator plugin for creating USDs.""" -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin import hou diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_usdrender.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_usdrender.py similarity index 96% rename from client/ayon_core/hosts/houdini/plugins/create/create_usdrender.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_usdrender.py index 36197e349e..a34de1fec4 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_usdrender.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_usdrender.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """Creator plugin for creating USD renders.""" -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin class CreateUSDRender(plugin.HoudiniCreator): diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_vbd_cache.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_vbd_cache.py similarity index 98% rename from client/ayon_core/hosts/houdini/plugins/create/create_vbd_cache.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_vbd_cache.py index c34cd2b4b5..e8c0920ec8 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_vbd_cache.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_vbd_cache.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- """Creator plugin for creating VDB Caches.""" -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin from ayon_core.lib import BoolDef import hou diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_vray_rop.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_vray_rop.py similarity index 99% rename from client/ayon_core/hosts/houdini/plugins/create/create_vray_rop.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_vray_rop.py index 9e4633e745..d15ee23825 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_vray_rop.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_vray_rop.py @@ -2,7 +2,7 @@ """Creator plugin to create VRay ROP.""" import hou -from ayon_core.hosts.houdini.api import plugin +from ayon_houdini.api import plugin from ayon_core.pipeline import CreatorError from ayon_core.lib import EnumDef, BoolDef diff --git a/client/ayon_core/hosts/houdini/plugins/create/create_workfile.py b/server_addon/houdini/client/ayon_houdini/plugins/create/create_workfile.py similarity index 95% rename from client/ayon_core/hosts/houdini/plugins/create/create_workfile.py rename to server_addon/houdini/client/ayon_houdini/plugins/create/create_workfile.py index 40a607e81a..babf602855 100644 --- a/client/ayon_core/hosts/houdini/plugins/create/create_workfile.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/create/create_workfile.py @@ -2,9 +2,9 @@ """Creator plugin for creating workfiles.""" import ayon_api -from ayon_core.hosts.houdini.api import plugin -from ayon_core.hosts.houdini.api.lib import read, imprint -from ayon_core.hosts.houdini.api.pipeline import CONTEXT_CONTAINER +from ayon_houdini.api import plugin +from ayon_houdini.api.lib import read, imprint +from ayon_houdini.api.pipeline import CONTEXT_CONTAINER from ayon_core.pipeline import CreatedInstance, AutoCreator import hou diff --git a/client/ayon_core/hosts/houdini/plugins/inventory/set_camera_resolution.py b/server_addon/houdini/client/ayon_houdini/plugins/inventory/set_camera_resolution.py similarity index 93% rename from client/ayon_core/hosts/houdini/plugins/inventory/set_camera_resolution.py rename to server_addon/houdini/client/ayon_houdini/plugins/inventory/set_camera_resolution.py index 4cebd537bb..e2f8fcfa9b 100644 --- a/client/ayon_core/hosts/houdini/plugins/inventory/set_camera_resolution.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/inventory/set_camera_resolution.py @@ -1,5 +1,5 @@ from ayon_core.pipeline import InventoryAction -from ayon_core.hosts.houdini.api.lib import ( +from ayon_houdini.api.lib import ( get_camera_from_container, set_camera_resolution ) diff --git a/client/ayon_core/hosts/houdini/plugins/load/actions.py b/server_addon/houdini/client/ayon_houdini/plugins/load/actions.py similarity index 93% rename from client/ayon_core/hosts/houdini/plugins/load/actions.py rename to server_addon/houdini/client/ayon_houdini/plugins/load/actions.py index 3e9cc35504..5fe545ced9 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/actions.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/actions.py @@ -2,10 +2,10 @@ """ -from ayon_core.pipeline import load +from ayon_houdini.api import plugin -class SetFrameRangeLoader(load.LoaderPlugin): +class SetFrameRangeLoader(plugin.HoudiniLoader): """Set frame range excluding pre- and post-handles""" product_types = { @@ -42,7 +42,7 @@ class SetFrameRangeLoader(load.LoaderPlugin): hou.playbar.setPlaybackRange(start, end) -class SetFrameRangeWithHandlesLoader(load.LoaderPlugin): +class SetFrameRangeWithHandlesLoader(plugin.HoudiniLoader): """Set frame range including pre- and post-handles""" product_types = { diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_alembic.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_alembic.py similarity index 94% rename from client/ayon_core/hosts/houdini/plugins/load/load_alembic.py rename to server_addon/houdini/client/ayon_houdini/plugins/load/load_alembic.py index 5f04781501..7db2fe93ed 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_alembic.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_alembic.py @@ -1,12 +1,12 @@ import os -from ayon_core.pipeline import ( - load, - get_representation_path, +from ayon_core.pipeline import get_representation_path +from ayon_houdini.api import ( + pipeline, + plugin ) -from ayon_core.hosts.houdini.api import pipeline -class AbcLoader(load.LoaderPlugin): +class AbcLoader(plugin.HoudiniLoader): """Load Alembic""" product_types = {"model", "animation", "pointcache", "gpuCache"} diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_alembic_archive.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_alembic_archive.py similarity index 93% rename from client/ayon_core/hosts/houdini/plugins/load/load_alembic_archive.py rename to server_addon/houdini/client/ayon_houdini/plugins/load/load_alembic_archive.py index a231bd9993..a34a43e48a 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_alembic_archive.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_alembic_archive.py @@ -1,12 +1,13 @@ + import os -from ayon_core.pipeline import ( - load, - get_representation_path, +from ayon_core.pipeline import get_representation_path +from ayon_houdini.api import ( + pipeline, + plugin ) -from ayon_core.hosts.houdini.api import pipeline -class AbcArchiveLoader(load.LoaderPlugin): +class AbcArchiveLoader(plugin.HoudiniLoader): """Load Alembic as full geometry network hierarchy """ product_types = {"model", "animation", "pointcache", "gpuCache"} diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_ass.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_ass.py similarity index 93% rename from client/ayon_core/hosts/houdini/plugins/load/load_ass.py rename to server_addon/houdini/client/ayon_houdini/plugins/load/load_ass.py index 6e0922e305..5fd97bc2a6 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_ass.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_ass.py @@ -1,14 +1,14 @@ import os import re -from ayon_core.pipeline import ( - load, - get_representation_path, +from ayon_core.pipeline import get_representation_path +from ayon_houdini.api import ( + pipeline, + plugin ) -from ayon_core.hosts.houdini.api import pipeline -class AssLoader(load.LoaderPlugin): +class AssLoader(plugin.HoudiniLoader): """Load .ass with Arnold Procedural""" product_types = {"ass"} diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_bgeo.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_bgeo.py similarity index 95% rename from client/ayon_core/hosts/houdini/plugins/load/load_bgeo.py rename to server_addon/houdini/client/ayon_houdini/plugins/load/load_bgeo.py index a318b71963..7119612cda 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_bgeo.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_bgeo.py @@ -2,14 +2,14 @@ import os import re -from ayon_core.pipeline import ( - load, - get_representation_path, +from ayon_core.pipeline import get_representation_path +from ayon_houdini.api import ( + pipeline, + plugin ) -from ayon_core.hosts.houdini.api import pipeline -class BgeoLoader(load.LoaderPlugin): +class BgeoLoader(plugin.HoudiniLoader): """Load bgeo files to Houdini.""" label = "Load bgeo" diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_camera.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_camera.py similarity index 96% rename from client/ayon_core/hosts/houdini/plugins/load/load_camera.py rename to server_addon/houdini/client/ayon_houdini/plugins/load/load_camera.py index b7912f88f1..b597519813 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_camera.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_camera.py @@ -1,16 +1,15 @@ -from ayon_core.pipeline import ( - load, - get_representation_path, -) -from ayon_core.hosts.houdini.api import pipeline +import hou +from ayon_core.pipeline import get_representation_path -from ayon_core.hosts.houdini.api.lib import ( +from ayon_houdini.api import ( + pipeline, + plugin +) +from ayon_houdini.api.lib import ( set_camera_resolution, get_camera_from_container ) -import hou - ARCHIVE_EXPRESSION = ('__import__("_alembic_hom_extensions")' '.alembicGetCameraDict') @@ -84,7 +83,7 @@ def transfer_non_default_values(src, dest, ignore=None): dest_parm.setFromParm(parm) -class CameraLoader(load.LoaderPlugin): +class CameraLoader(plugin.HoudiniLoader): """Load camera from an Alembic file""" product_types = {"camera"} diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_fbx.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_fbx.py similarity index 96% rename from client/ayon_core/hosts/houdini/plugins/load/load_fbx.py rename to server_addon/houdini/client/ayon_houdini/plugins/load/load_fbx.py index 398019a3bd..273ca43bc4 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_fbx.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_fbx.py @@ -1,13 +1,13 @@ # -*- coding: utf-8 -*- """Fbx Loader for houdini. """ -from ayon_core.pipeline import ( - load, - get_representation_path, +from ayon_core.pipeline import get_representation_path +from ayon_houdini.api import ( + pipeline, + plugin ) -from ayon_core.hosts.houdini.api import pipeline -class FbxLoader(load.LoaderPlugin): +class FbxLoader(plugin.HoudiniLoader): """Load fbx files. """ label = "Load FBX" diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_filepath.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_filepath.py similarity index 97% rename from client/ayon_core/hosts/houdini/plugins/load/load_filepath.py rename to server_addon/houdini/client/ayon_houdini/plugins/load/load_filepath.py index d189a027fd..2ce9bd7ffb 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_filepath.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_filepath.py @@ -1,13 +1,14 @@ import os import re - -from ayon_core.pipeline import load -from ayon_core.hosts.houdini.api import pipeline - import hou +from ayon_houdini.api import ( + pipeline, + plugin +) -class FilePathLoader(load.LoaderPlugin): + +class FilePathLoader(plugin.HoudiniLoader): """Load a managed filepath to a null node. This is useful if for a particular workflow there is no existing loader diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_hda.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_hda.py similarity index 92% rename from client/ayon_core/hosts/houdini/plugins/load/load_hda.py rename to server_addon/houdini/client/ayon_houdini/plugins/load/load_hda.py index 10fc03be03..b04e211aa4 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_hda.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_hda.py @@ -1,13 +1,13 @@ # -*- coding: utf-8 -*- import os -from ayon_core.pipeline import ( - load, - get_representation_path, +from ayon_core.pipeline import get_representation_path +from ayon_houdini.api import ( + pipeline, + plugin ) -from ayon_core.hosts.houdini.api import pipeline -class HdaLoader(load.LoaderPlugin): +class HdaLoader(plugin.HoudiniLoader): """Load Houdini Digital Asset file.""" product_types = {"hda"} diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_image.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_image.py similarity index 97% rename from client/ayon_core/hosts/houdini/plugins/load/load_image.py rename to server_addon/houdini/client/ayon_houdini/plugins/load/load_image.py index dfbd3c11eb..9d4cd2fb18 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_image.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_image.py @@ -1,14 +1,16 @@ import os import re +import hou from ayon_core.pipeline import ( - load, get_representation_path, AVALON_CONTAINER_ID, ) -from ayon_core.hosts.houdini.api import lib, pipeline - -import hou +from ayon_houdini.api import ( + pipeline, + plugin, + lib +) def get_image_avalon_container(): @@ -42,7 +44,7 @@ def get_image_avalon_container(): return image_container -class ImageLoader(load.LoaderPlugin): +class ImageLoader(plugin.HoudiniLoader): """Load images into COP2""" product_types = { diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_redshift_proxy.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_redshift_proxy.py similarity index 95% rename from client/ayon_core/hosts/houdini/plugins/load/load_redshift_proxy.py rename to server_addon/houdini/client/ayon_houdini/plugins/load/load_redshift_proxy.py index f09856a970..514dbe109f 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_redshift_proxy.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_redshift_proxy.py @@ -1,16 +1,17 @@ import os import re -from ayon_core.pipeline import ( - load, - get_representation_path, -) -from ayon_core.hosts.houdini.api import pipeline -from ayon_core.pipeline.load import LoadError - import hou +from ayon_core.pipeline import get_representation_path +from ayon_core.pipeline.load import LoadError -class RedshiftProxyLoader(load.LoaderPlugin): +from ayon_houdini.api import ( + pipeline, + plugin +) + + +class RedshiftProxyLoader(plugin.HoudiniLoader): """Load Redshift Proxy""" product_types = {"redshiftproxy"} diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_usd_layer.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_usd_layer.py similarity index 95% rename from client/ayon_core/hosts/houdini/plugins/load/load_usd_layer.py rename to server_addon/houdini/client/ayon_houdini/plugins/load/load_usd_layer.py index 4e6954c531..fb302fd943 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_usd_layer.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_usd_layer.py @@ -1,12 +1,14 @@ from ayon_core.pipeline import ( - load, get_representation_path, AVALON_CONTAINER_ID, ) -from ayon_core.hosts.houdini.api import lib +from ayon_houdini.api import ( + plugin, + lib +) -class USDSublayerLoader(load.LoaderPlugin): +class USDSublayerLoader(plugin.HoudiniLoader): """Sublayer USD file in Solaris""" product_types = { diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_usd_reference.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_usd_reference.py similarity index 95% rename from client/ayon_core/hosts/houdini/plugins/load/load_usd_reference.py rename to server_addon/houdini/client/ayon_houdini/plugins/load/load_usd_reference.py index 7e82a6abd0..690f6ce187 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_usd_reference.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_usd_reference.py @@ -1,12 +1,14 @@ from ayon_core.pipeline import ( - load, get_representation_path, AVALON_CONTAINER_ID, ) -from ayon_core.hosts.houdini.api import lib +from ayon_houdini.api import ( + plugin, + lib +) -class USDReferenceLoader(load.LoaderPlugin): +class USDReferenceLoader(plugin.HoudiniLoader): """Reference USD file in Solaris""" product_types = { diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_usd_sop.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_usd_sop.py similarity index 94% rename from client/ayon_core/hosts/houdini/plugins/load/load_usd_sop.py rename to server_addon/houdini/client/ayon_houdini/plugins/load/load_usd_sop.py index 506f6140bf..347e3283de 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_usd_sop.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_usd_sop.py @@ -1,10 +1,12 @@ import os -from ayon_core.pipeline import load -from ayon_core.hosts.houdini.api import pipeline +from ayon_houdini.api import ( + pipeline, + plugin +) -class SopUsdImportLoader(load.LoaderPlugin): +class SopUsdImportLoader(plugin.HoudiniLoader): """Load USD to SOPs via `usdimport`""" label = "Load USD to SOPs" diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_vdb.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_vdb.py similarity index 94% rename from client/ayon_core/hosts/houdini/plugins/load/load_vdb.py rename to server_addon/houdini/client/ayon_houdini/plugins/load/load_vdb.py index 0008f0d5f8..9014f4c5e2 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_vdb.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_vdb.py @@ -1,14 +1,14 @@ import os import re -from ayon_core.pipeline import ( - load, - get_representation_path, +from ayon_core.pipeline import get_representation_path +from ayon_houdini.api import ( + pipeline, + plugin ) -from ayon_core.hosts.houdini.api import pipeline -class VdbLoader(load.LoaderPlugin): +class VdbLoader(plugin.HoudiniLoader): """Load VDB""" product_types = {"vdbcache"} diff --git a/client/ayon_core/hosts/houdini/plugins/load/show_usdview.py b/server_addon/houdini/client/ayon_houdini/plugins/load/show_usdview.py similarity index 94% rename from client/ayon_core/hosts/houdini/plugins/load/show_usdview.py rename to server_addon/houdini/client/ayon_houdini/plugins/load/show_usdview.py index 0158a6b963..4e18bc038a 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/show_usdview.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/show_usdview.py @@ -3,10 +3,10 @@ import platform import subprocess from ayon_core.lib.vendor_bin_utils import find_executable -from ayon_core.pipeline import load +from ayon_houdini.api import plugin -class ShowInUsdview(load.LoaderPlugin): +class ShowInUsdview(plugin.HoudiniLoader): """Open USD file in usdview""" label = "Show in usdview" diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_active_state.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_active_state.py similarity index 92% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_active_state.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_active_state.py index 7fda94b288..e09a347e9f 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_active_state.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_active_state.py @@ -1,8 +1,10 @@ -import pyblish.api import hou +import pyblish.api +from ayon_houdini.api import plugin -class CollectInstanceActiveState(pyblish.api.InstancePlugin): + +class CollectInstanceActiveState(plugin.HoudiniInstancePlugin): """Collect default active state for instance from its node bypass state. This is done at the very end of the CollectorOrder so that any required @@ -14,7 +16,6 @@ class CollectInstanceActiveState(pyblish.api.InstancePlugin): order = pyblish.api.CollectorOrder + 0.299 families = ["*"] - hosts = ["houdini"] label = "Instance Active State" def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_arnold_rop.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_arnold_rop.py similarity index 96% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_arnold_rop.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_arnold_rop.py index 53a3e52717..10c6d91d26 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_arnold_rop.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_arnold_rop.py @@ -4,12 +4,14 @@ import re import hou import pyblish.api -from ayon_core.hosts.houdini.api import colorspace -from ayon_core.hosts.houdini.api.lib import ( - evalParmNoFrame, get_color_management_preferences) +from ayon_houdini.api import colorspace, plugin +from ayon_houdini.api.lib import ( + get_color_management_preferences, + evalParmNoFrame +) -class CollectArnoldROPRenderProducts(pyblish.api.InstancePlugin): +class CollectArnoldROPRenderProducts(plugin.HoudiniInstancePlugin): """Collect Arnold ROP Render Products Collects the instance.data["files"] for the render products. @@ -23,7 +25,6 @@ class CollectArnoldROPRenderProducts(pyblish.api.InstancePlugin): # This specific order value is used so that # this plugin runs after CollectFrames order = pyblish.api.CollectorOrder + 0.11 - hosts = ["houdini"] families = ["arnold_rop"] def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_asset_handles.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_asset_handles.py similarity index 97% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_asset_handles.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_asset_handles.py index 943a29952e..db9bde8595 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_asset_handles.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_asset_handles.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- """Collector plugin for frames data on ROP instances.""" -import hou # noqa import pyblish.api from ayon_core.lib import BoolDef from ayon_core.pipeline import AYONPyblishPluginMixin +from ayon_houdini.api import plugin -class CollectAssetHandles(pyblish.api.InstancePlugin, +class CollectAssetHandles(plugin.HoudiniInstancePlugin, AYONPyblishPluginMixin): """Apply folder handles. @@ -23,8 +23,6 @@ class CollectAssetHandles(pyblish.api.InstancePlugin, the exclusive frame range and actual handle ranges. """ - hosts = ["houdini"] - # This specific order value is used so that # this plugin runs after CollectAnatomyInstanceData order = pyblish.api.CollectorOrder + 0.499 diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_cache_farm.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_cache_farm.py similarity index 95% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_cache_farm.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_cache_farm.py index e1782b2bb3..ecfebccfef 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_cache_farm.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_cache_farm.py @@ -1,10 +1,13 @@ import os -import pyblish.api import hou -from ayon_core.hosts.houdini.api import lib +import pyblish.api +from ayon_houdini.api import ( + lib, + plugin +) -class CollectDataforCache(pyblish.api.InstancePlugin): +class CollectDataforCache(plugin.HoudiniInstancePlugin): """Collect data for caching to Deadline.""" # Run after Collect Frames @@ -12,7 +15,6 @@ class CollectDataforCache(pyblish.api.InstancePlugin): families = ["ass", "pointcache", "mantraifd", "redshiftproxy", "vdbcache", "model"] - hosts = ["houdini"] targets = ["local", "remote"] label = "Collect Data for Cache" diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_chunk_size.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_chunk_size.py similarity index 91% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_chunk_size.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_chunk_size.py index f0913f2f0a..6ff53b7695 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_chunk_size.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_chunk_size.py @@ -1,9 +1,10 @@ import pyblish.api from ayon_core.lib import NumberDef from ayon_core.pipeline import AYONPyblishPluginMixin +from ayon_houdini.api import plugin -class CollectChunkSize(pyblish.api.InstancePlugin, +class CollectChunkSize(plugin.HoudiniInstancePlugin, AYONPyblishPluginMixin): """Collect chunk size for cache submission to Deadline.""" @@ -11,7 +12,6 @@ class CollectChunkSize(pyblish.api.InstancePlugin, families = ["ass", "pointcache", "vdbcache", "mantraifd", "redshiftproxy", "model"] - hosts = ["houdini"] targets = ["local", "remote"] label = "Collect Chunk Size" chunk_size = 999999 diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_current_file.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_current_file.py similarity index 93% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_current_file.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_current_file.py index 7b55778803..8e339e0e04 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_current_file.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_current_file.py @@ -2,14 +2,14 @@ import os import hou import pyblish.api +from ayon_houdini.api import plugin -class CollectHoudiniCurrentFile(pyblish.api.ContextPlugin): +class CollectHoudiniCurrentFile(plugin.HoudiniContextPlugin): """Inject the current working file into context""" order = pyblish.api.CollectorOrder - 0.1 label = "Houdini Current File" - hosts = ["houdini"] def process(self, context): """Inject the current working file""" diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_farm_instances.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_farm_instances.py similarity index 90% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_farm_instances.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_farm_instances.py index 586aa2da57..8fdae06f90 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_farm_instances.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_farm_instances.py @@ -1,7 +1,8 @@ import pyblish.api +from ayon_houdini.api import plugin -class CollectFarmInstances(pyblish.api.InstancePlugin): +class CollectFarmInstances(plugin.HoudiniInstancePlugin): """Collect instances for farm render.""" order = pyblish.api.CollectorOrder @@ -11,7 +12,6 @@ class CollectFarmInstances(pyblish.api.InstancePlugin): "arnold_rop", "vray_rop"] - hosts = ["houdini"] targets = ["local", "remote"] label = "Collect farm instances" diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_frames.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_frames.py similarity index 97% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_frames.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_frames.py index b38ebc6e2f..3378657bfd 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_frames.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_frames.py @@ -5,10 +5,10 @@ import re import hou # noqa import pyblish.api -from ayon_core.hosts.houdini.api import lib +from ayon_houdini.api import lib, plugin -class CollectFrames(pyblish.api.InstancePlugin): +class CollectFrames(plugin.HoudiniInstancePlugin): """Collect all frames which would be saved from the ROP nodes""" # This specific order value is used so that diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_inputs.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_inputs.py similarity index 98% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_inputs.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_inputs.py index 6cf6bbf430..f2904a68f6 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_inputs.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_inputs.py @@ -1,8 +1,8 @@ from collections import deque import pyblish.api - from ayon_core.pipeline import registered_host +from ayon_houdini.api import plugin def get_container_members(container): @@ -80,7 +80,7 @@ def iter_upstream(node): collected.update(ancestors) -class CollectUpstreamInputs(pyblish.api.InstancePlugin): +class CollectUpstreamInputs(plugin.HoudiniInstancePlugin): """Collect source input containers used for this publish. This will include `inputs` data of which loaded publishes were used in the @@ -91,7 +91,6 @@ class CollectUpstreamInputs(pyblish.api.InstancePlugin): label = "Collect Inputs" order = pyblish.api.CollectorOrder + 0.4 - hosts = ["houdini"] def process(self, instance): # We can't get the "inputAncestors" directly from the ROP diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_instances_type.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_instances_type.py similarity index 97% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_instances_type.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_instances_type.py index 07851387fe..542abf8139 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_instances_type.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_instances_type.py @@ -10,7 +10,6 @@ class CollectPointcacheType(pyblish.api.InstancePlugin): """Collect data type for different instances.""" order = pyblish.api.CollectorOrder - hosts = ["houdini"] families = ["pointcache", "model"] label = "Collect instances types" diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_instances_usd_layered.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_instances_usd_layered.py similarity index 96% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_instances_usd_layered.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_instances_usd_layered.py index 9377a9fcd0..4f85a629fb 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_instances_usd_layered.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_instances_usd_layered.py @@ -1,11 +1,11 @@ import hou import pyblish.api -from ayon_core.hosts.houdini.api import lib -import ayon_core.hosts.houdini.api.usd as hou_usdlib from ayon_core.pipeline import usdlib +from ayon_houdini.api import lib, plugin +import ayon_houdini.api.usd as hou_usdlib -class CollectInstancesUsdLayered(pyblish.api.ContextPlugin): +class CollectInstancesUsdLayered(plugin.HoudiniContextPlugin): """Collect Instances from a ROP Network and its configured layer paths. The output nodes of the ROP node will only be published when *any* of the @@ -32,7 +32,6 @@ class CollectInstancesUsdLayered(pyblish.api.ContextPlugin): order = pyblish.api.CollectorOrder - 0.01 label = "Collect Instances (USD Configured Layers)" - hosts = ["houdini"] def process(self, context): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_karma_rop.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_karma_rop.py similarity index 94% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_karma_rop.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_karma_rop.py index 662ed7ae30..60fec9d2e0 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_karma_rop.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_karma_rop.py @@ -4,16 +4,17 @@ import os import hou import pyblish.api -from ayon_core.hosts.houdini.api.lib import ( +from ayon_houdini.api.lib import ( evalParmNoFrame, get_color_management_preferences ) -from ayon_core.hosts.houdini.api import ( - colorspace +from ayon_houdini.api import ( + colorspace, + plugin ) -class CollectKarmaROPRenderProducts(pyblish.api.InstancePlugin): +class CollectKarmaROPRenderProducts(plugin.HoudiniInstancePlugin): """Collect Karma Render Products Collects the instance.data["files"] for the multipart render product. @@ -27,7 +28,6 @@ class CollectKarmaROPRenderProducts(pyblish.api.InstancePlugin): # This specific order value is used so that # this plugin runs after CollectFrames order = pyblish.api.CollectorOrder + 0.11 - hosts = ["houdini"] families = ["karma_rop"] def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_local_render_instances.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_local_render_instances.py similarity index 98% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_local_render_instances.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_local_render_instances.py index 474002e1ee..259b2378bb 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_local_render_instances.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_local_render_instances.py @@ -6,9 +6,10 @@ from ayon_core.pipeline.publish import ( get_plugin_settings, apply_plugin_settings_automatically ) +from ayon_houdini.api import plugin -class CollectLocalRenderInstances(pyblish.api.InstancePlugin): +class CollectLocalRenderInstances(plugin.HoudiniInstancePlugin): """Collect instances for local render. Agnostic Local Render Collector. @@ -22,7 +23,6 @@ class CollectLocalRenderInstances(pyblish.api.InstancePlugin): "arnold_rop", "vray_rop"] - hosts = ["houdini"] label = "Collect local render instances" use_deadline_aov_filter = False diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_mantra_rop.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_mantra_rop.py similarity index 96% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_mantra_rop.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_mantra_rop.py index 7b247768fc..f7feeee63b 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_mantra_rop.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_mantra_rop.py @@ -4,16 +4,17 @@ import os import hou import pyblish.api -from ayon_core.hosts.houdini.api.lib import ( +from ayon_houdini.api.lib import ( evalParmNoFrame, get_color_management_preferences ) -from ayon_core.hosts.houdini.api import ( - colorspace +from ayon_houdini.api import ( + colorspace, + plugin ) -class CollectMantraROPRenderProducts(pyblish.api.InstancePlugin): +class CollectMantraROPRenderProducts(plugin.HoudiniInstancePlugin): """Collect Mantra Render Products Collects the instance.data["files"] for the render products. @@ -27,7 +28,6 @@ class CollectMantraROPRenderProducts(pyblish.api.InstancePlugin): # This specific order value is used so that # this plugin runs after CollectFrames order = pyblish.api.CollectorOrder + 0.11 - hosts = ["houdini"] families = ["mantra_rop"] def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_output_node.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_output_node.py similarity index 96% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_output_node.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_output_node.py index 289222f32b..ff51669376 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_output_node.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_output_node.py @@ -1,9 +1,9 @@ import pyblish.api - from ayon_core.pipeline.publish import KnownPublishError +from ayon_houdini.api import plugin -class CollectOutputSOPPath(pyblish.api.InstancePlugin): +class CollectOutputSOPPath(plugin.HoudiniInstancePlugin): """Collect the out node's SOP/COP Path value.""" order = pyblish.api.CollectorOrder @@ -19,7 +19,6 @@ class CollectOutputSOPPath(pyblish.api.InstancePlugin): "model" ] - hosts = ["houdini"] label = "Collect Output Node Path" def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_redshift_rop.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_redshift_rop.py similarity index 97% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_redshift_rop.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_redshift_rop.py index ce90ae2413..96cb6ebeaf 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_redshift_rop.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_redshift_rop.py @@ -4,16 +4,17 @@ import os import hou import pyblish.api -from ayon_core.hosts.houdini.api.lib import ( +from ayon_houdini.api.lib import ( evalParmNoFrame, get_color_management_preferences ) -from ayon_core.hosts.houdini.api import ( - colorspace +from ayon_houdini.api import ( + colorspace, + plugin ) -class CollectRedshiftROPRenderProducts(pyblish.api.InstancePlugin): +class CollectRedshiftROPRenderProducts(plugin.HoudiniInstancePlugin): """Collect USD Render Products Collects the instance.data["files"] for the render products. @@ -27,7 +28,6 @@ class CollectRedshiftROPRenderProducts(pyblish.api.InstancePlugin): # This specific order value is used so that # this plugin runs after CollectFrames order = pyblish.api.CollectorOrder + 0.11 - hosts = ["houdini"] families = ["redshift_rop"] def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_remote_publish.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_remote_publish.py similarity index 83% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_remote_publish.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_remote_publish.py index 5d459f525e..e695b57518 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_remote_publish.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_remote_publish.py @@ -1,16 +1,15 @@ +import hou import pyblish.api -import hou from ayon_core.pipeline.publish import RepairAction -from ayon_core.hosts.houdini.api import lib +from ayon_houdini.api import lib, plugin -class CollectRemotePublishSettings(pyblish.api.ContextPlugin): +class CollectRemotePublishSettings(plugin.HoudiniContextPlugin): """Collect custom settings of the Remote Publish node.""" order = pyblish.api.CollectorOrder families = ["*"] - hosts = ["houdini"] targets = ["deadline"] label = "Remote Publish Submission Settings" actions = [RepairAction] diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_render_products.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_render_products.py similarity index 97% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_render_products.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_render_products.py index fcd80e0082..e84f6c6f84 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_render_products.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_render_products.py @@ -5,6 +5,7 @@ import hou import pxr.UsdRender import pyblish.api +from ayon_houdini.api import plugin def get_var_changed(variable=None): @@ -41,12 +42,11 @@ def get_var_changed(variable=None): return changed -class CollectRenderProducts(pyblish.api.InstancePlugin): +class CollectRenderProducts(plugin.HoudiniInstancePlugin): """Collect USD Render Products.""" label = "Collect Render Products" order = pyblish.api.CollectorOrder + 0.4 - hosts = ["houdini"] families = ["usdrender"] def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_review_data.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_review_data.py similarity index 96% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_review_data.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_review_data.py index ed2de785a2..cca55463e6 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_review_data.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_review_data.py @@ -1,8 +1,9 @@ import hou import pyblish.api +from ayon_houdini.api import plugin -class CollectHoudiniReviewData(pyblish.api.InstancePlugin): +class CollectHoudiniReviewData(plugin.HoudiniInstancePlugin): """Collect Review Data.""" label = "Collect Review Data" @@ -10,7 +11,6 @@ class CollectHoudiniReviewData(pyblish.api.InstancePlugin): # this plugin runs after CollectRopFrameRange # Also after CollectLocalRenderInstances order = pyblish.api.CollectorOrder + 0.13 - hosts = ["houdini"] families = ["review"] def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_reviewable_instances.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_reviewable_instances.py similarity index 84% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_reviewable_instances.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_reviewable_instances.py index 78dc5fe11a..84cd8377a8 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_reviewable_instances.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_reviewable_instances.py @@ -1,7 +1,8 @@ import pyblish.api +from ayon_houdini.api import plugin -class CollectReviewableInstances(pyblish.api.InstancePlugin): +class CollectReviewableInstances(plugin.HoudiniInstancePlugin): """Collect Reviewable Instances. Basically, all instances of the specified families diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_rop_frame_range.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_rop_frame_range.py similarity index 88% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_rop_frame_range.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_rop_frame_range.py index 44afaf2466..c0f8d7aef9 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_rop_frame_range.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_rop_frame_range.py @@ -2,13 +2,12 @@ """Collector plugin for frames data on ROP instances.""" import hou # noqa import pyblish.api -from ayon_core.hosts.houdini.api import lib +from ayon_houdini.api import lib, plugin -class CollectRopFrameRange(pyblish.api.InstancePlugin): +class CollectRopFrameRange(plugin.HoudiniInstancePlugin): """Collect all frames which would be saved from the ROP nodes""" - hosts = ["houdini"] order = pyblish.api.CollectorOrder label = "Collect RopNode Frame Range" diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_staticmesh_type.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_staticmesh_type.py similarity index 84% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_staticmesh_type.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_staticmesh_type.py index db9efec7a1..1aab655532 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_staticmesh_type.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_staticmesh_type.py @@ -2,12 +2,12 @@ """Collector for staticMesh types. """ import pyblish.api +from ayon_houdini.api import plugin -class CollectStaticMeshType(pyblish.api.InstancePlugin): +class CollectStaticMeshType(plugin.HoudiniInstancePlugin): """Collect data type for fbx instance.""" - hosts = ["houdini"] families = ["staticMesh"] label = "Collect type of staticMesh" diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_usd_bootstrap.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_usd_bootstrap.py similarity index 98% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_usd_bootstrap.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_usd_bootstrap.py index cd82f1679a..5067b9aab2 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_usd_bootstrap.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_usd_bootstrap.py @@ -1,10 +1,10 @@ import pyblish.api import ayon_api - from ayon_core.pipeline import usdlib, KnownPublishError +from ayon_houdini.api import plugin -class CollectUsdBootstrap(pyblish.api.InstancePlugin): +class CollectUsdBootstrap(plugin.HoudiniInstancePlugin): """Collect special Asset/Shot bootstrap instances if those are needed. Some specific products are intended to be part of the default structure @@ -21,7 +21,6 @@ class CollectUsdBootstrap(pyblish.api.InstancePlugin): order = pyblish.api.CollectorOrder + 0.35 label = "Collect USD Bootstrap" - hosts = ["houdini"] families = ["usd", "usd.layered"] def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_usd_layers.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_usd_layers.py similarity index 94% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_usd_layers.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_usd_layers.py index 93add6806e..7ecf5fbb02 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_usd_layers.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_usd_layers.py @@ -1,17 +1,15 @@ import os - -import pyblish.api -import ayon_core.hosts.houdini.api.usd as usdlib - import hou +import pyblish.api +from ayon_houdini.api import plugin +import ayon_houdini.api.usd as usdlib -class CollectUsdLayers(pyblish.api.InstancePlugin): +class CollectUsdLayers(plugin.HoudiniInstancePlugin): """Collect the USD Layers that have configured save paths.""" order = pyblish.api.CollectorOrder + 0.35 label = "Collect USD Layers" - hosts = ["houdini"] families = ["usd"] def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_vray_rop.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_vray_rop.py similarity index 96% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_vray_rop.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_vray_rop.py index c39b1db103..2f9c2bb18e 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_vray_rop.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_vray_rop.py @@ -4,16 +4,17 @@ import os import hou import pyblish.api -from ayon_core.hosts.houdini.api.lib import ( +from ayon_houdini.api.lib import ( evalParmNoFrame, get_color_management_preferences ) -from ayon_core.hosts.houdini.api import ( - colorspace +from ayon_houdini.api import ( + colorspace, + plugin ) -class CollectVrayROPRenderProducts(pyblish.api.InstancePlugin): +class CollectVrayROPRenderProducts(plugin.HoudiniInstancePlugin): """Collect Vray Render Products Collects the instance.data["files"] for the render products. @@ -27,7 +28,6 @@ class CollectVrayROPRenderProducts(pyblish.api.InstancePlugin): # This specific order value is used so that # this plugin runs after CollectFrames order = pyblish.api.CollectorOrder + 0.11 - hosts = ["houdini"] families = ["vray_rop"] def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_workfile.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_workfile.py similarity index 91% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_workfile.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_workfile.py index aa533bcf1b..8d0939a803 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_workfile.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_workfile.py @@ -1,14 +1,13 @@ import os import pyblish.api +from ayon_houdini.api import plugin - -class CollectWorkfile(pyblish.api.InstancePlugin): +class CollectWorkfile(plugin.HoudiniInstancePlugin): """Inject workfile representation into instance""" order = pyblish.api.CollectorOrder - 0.01 label = "Houdini Workfile Data" - hosts = ["houdini"] families = ["workfile"] def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/collect_workscene_fps.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_workscene_fps.py similarity index 75% rename from client/ayon_core/hosts/houdini/plugins/publish/collect_workscene_fps.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/collect_workscene_fps.py index 6f6cc978cd..0091eb0abb 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/collect_workscene_fps.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_workscene_fps.py @@ -1,13 +1,13 @@ -import pyblish.api import hou +import pyblish.api +from ayon_houdini.api import plugin -class CollectWorksceneFPS(pyblish.api.ContextPlugin): +class CollectWorksceneFPS(plugin.HoudiniContextPlugin): """Get the FPS of the work scene.""" label = "Workscene FPS" order = pyblish.api.CollectorOrder - hosts = ["houdini"] def process(self, context): fps = hou.fps() diff --git a/client/ayon_core/hosts/houdini/plugins/publish/extract_active_view_thumbnail.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_active_view_thumbnail.py similarity index 88% rename from client/ayon_core/hosts/houdini/plugins/publish/extract_active_view_thumbnail.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/extract_active_view_thumbnail.py index aedcb1da02..c4d51c0808 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/extract_active_view_thumbnail.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_active_view_thumbnail.py @@ -1,11 +1,10 @@ -import pyblish.api import tempfile -from ayon_core.pipeline import publish -from ayon_core.hosts.houdini.api import lib -from ayon_core.hosts.houdini.api.pipeline import IS_HEADLESS +import pyblish.api +from ayon_houdini.api import lib, plugin +from ayon_houdini.api.pipeline import IS_HEADLESS -class ExtractActiveViewThumbnail(publish.Extractor): +class ExtractActiveViewThumbnail(plugin.HoudiniExtractorPlugin): """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 @@ -16,7 +15,6 @@ class ExtractActiveViewThumbnail(publish.Extractor): order = pyblish.api.ExtractorOrder + 0.49 label = "Extract Active View Thumbnail" families = ["workfile"] - hosts = ["houdini"] def process(self, instance): if IS_HEADLESS: diff --git a/client/ayon_core/hosts/houdini/plugins/publish/extract_alembic.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_alembic.py similarity index 89% rename from client/ayon_core/hosts/houdini/plugins/publish/extract_alembic.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/extract_alembic.py index 7ae476d2b4..e82f07284a 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/extract_alembic.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_alembic.py @@ -1,18 +1,16 @@ import os +import hou import pyblish.api -from ayon_core.pipeline import publish -from ayon_core.hosts.houdini.api.lib import render_rop - -import hou +from ayon_houdini.api import plugin +from ayon_houdini.api.lib import render_rop -class ExtractAlembic(publish.Extractor): +class ExtractAlembic(plugin.HoudiniExtractorPlugin): order = pyblish.api.ExtractorOrder label = "Extract Alembic" - hosts = ["houdini"] families = ["abc", "camera"] targets = ["local", "remote"] diff --git a/client/ayon_core/hosts/houdini/plugins/publish/extract_ass.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_ass.py similarity index 92% rename from client/ayon_core/hosts/houdini/plugins/publish/extract_ass.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/extract_ass.py index 24b956ad81..a796bbf4b3 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/extract_ass.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_ass.py @@ -1,19 +1,17 @@ import os +import hou import pyblish.api -from ayon_core.pipeline import publish -from ayon_core.hosts.houdini.api.lib import render_rop - -import hou +from ayon_houdini.api import plugin +from ayon_houdini.api.lib import render_rop -class ExtractAss(publish.Extractor): +class ExtractAss(plugin.HoudiniExtractorPlugin): order = pyblish.api.ExtractorOrder + 0.1 label = "Extract Ass" families = ["ass"] - hosts = ["houdini"] targets = ["local", "remote"] def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/extract_bgeo.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_bgeo.py similarity index 85% rename from client/ayon_core/hosts/houdini/plugins/publish/extract_bgeo.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/extract_bgeo.py index 448cf97848..ab8837065d 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/extract_bgeo.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_bgeo.py @@ -1,19 +1,15 @@ import os +import hou import pyblish.api -from ayon_core.pipeline import publish -from ayon_core.hosts.houdini.api.lib import render_rop -from ayon_core.hosts.houdini.api import lib - -import hou +from ayon_houdini.api import lib, plugin -class ExtractBGEO(publish.Extractor): +class ExtractBGEO(plugin.HoudiniExtractorPlugin): order = pyblish.api.ExtractorOrder label = "Extract BGEO" - hosts = ["houdini"] families = ["bgeo"] def process(self, instance): @@ -32,7 +28,7 @@ class ExtractBGEO(publish.Extractor): file_name, staging_dir)) # write files - render_rop(ropnode) + lib.render_rop(ropnode) output = instance.data["frames"] diff --git a/client/ayon_core/hosts/houdini/plugins/publish/extract_composite.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_composite.py similarity index 92% rename from client/ayon_core/hosts/houdini/plugins/publish/extract_composite.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/extract_composite.py index 0fab69ef4a..cab462aef6 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/extract_composite.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_composite.py @@ -1,18 +1,17 @@ import os +import hou import pyblish.api from ayon_core.pipeline import publish -from ayon_core.hosts.houdini.api.lib import render_rop, splitext - -import hou +from ayon_houdini.api import plugin +from ayon_houdini.api.lib import render_rop, splitext -class ExtractComposite(publish.Extractor, +class ExtractComposite(plugin.HoudiniExtractorPlugin, publish.ColormanagedPyblishPluginMixin): order = pyblish.api.ExtractorOrder label = "Extract Composite (Image Sequence)" - hosts = ["houdini"] families = ["imagesequence"] def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/extract_fbx.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_fbx.py similarity index 90% rename from client/ayon_core/hosts/houdini/plugins/publish/extract_fbx.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/extract_fbx.py index 7ef004d7cb..49b3fa07ca 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/extract_fbx.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_fbx.py @@ -2,18 +2,16 @@ """Fbx Extractor for houdini. """ import os -import pyblish.api -from ayon_core.pipeline import publish -from ayon_core.hosts.houdini.api.lib import render_rop - import hou +import pyblish.api +from ayon_houdini.api import plugin +from ayon_houdini.api.lib import render_rop -class ExtractFBX(publish.Extractor): +class ExtractFBX(plugin.HoudiniExtractorPlugin): label = "Extract FBX" families = ["fbx"] - hosts = ["houdini"] order = pyblish.api.ExtractorOrder + 0.1 diff --git a/client/ayon_core/hosts/houdini/plugins/publish/extract_hda.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_hda.py similarity index 92% rename from client/ayon_core/hosts/houdini/plugins/publish/extract_hda.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/extract_hda.py index 5fe83e0dcf..e4449d11f8 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/extract_hda.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_hda.py @@ -1,16 +1,15 @@ # -*- coding: utf-8 -*- import os from pprint import pformat -import pyblish.api -from ayon_core.pipeline import publish import hou +import pyblish.api +from ayon_houdini.api import plugin -class ExtractHDA(publish.Extractor): +class ExtractHDA(plugin.HoudiniExtractorPlugin): order = pyblish.api.ExtractorOrder label = "Extract HDA" - hosts = ["houdini"] families = ["hda"] def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/extract_mantra_ifd.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_mantra_ifd.py similarity index 93% rename from client/ayon_core/hosts/houdini/plugins/publish/extract_mantra_ifd.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/extract_mantra_ifd.py index f0bcf4b371..b424f2e452 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/extract_mantra_ifd.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_mantra_ifd.py @@ -1,17 +1,15 @@ import os +import hou import pyblish.api -from ayon_core.pipeline import publish - -import hou +from ayon_houdini.api import plugin -class ExtractMantraIFD(publish.Extractor): +class ExtractMantraIFD(plugin.HoudiniExtractorPlugin): order = pyblish.api.ExtractorOrder label = "Extract Mantra ifd" - hosts = ["houdini"] families = ["mantraifd"] targets = ["local", "remote"] diff --git a/client/ayon_core/hosts/houdini/plugins/publish/extract_opengl.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_opengl.py similarity index 94% rename from client/ayon_core/hosts/houdini/plugins/publish/extract_opengl.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/extract_opengl.py index 26a216e335..bee1bf871f 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/extract_opengl.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_opengl.py @@ -1,20 +1,19 @@ import os +import hou import pyblish.api from ayon_core.pipeline import publish -from ayon_core.hosts.houdini.api.lib import render_rop - -import hou +from ayon_houdini.api import plugin +from ayon_houdini.api.lib import render_rop -class ExtractOpenGL(publish.Extractor, +class ExtractOpenGL(plugin.HoudiniExtractorPlugin, publish.ColormanagedPyblishPluginMixin): order = pyblish.api.ExtractorOrder - 0.01 label = "Extract OpenGL" families = ["review"] - hosts = ["houdini"] def process(self, instance): ropnode = hou.node(instance.data.get("instance_node")) diff --git a/client/ayon_core/hosts/houdini/plugins/publish/extract_redshift_proxy.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_redshift_proxy.py similarity index 90% rename from client/ayon_core/hosts/houdini/plugins/publish/extract_redshift_proxy.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/extract_redshift_proxy.py index e08a73ae8e..3e8a79df00 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/extract_redshift_proxy.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_redshift_proxy.py @@ -1,19 +1,17 @@ import os +import hou import pyblish.api -from ayon_core.pipeline import publish -from ayon_core.hosts.houdini.api.lib import render_rop - -import hou +from ayon_houdini.api import plugin +from ayon_houdini.api.lib import render_rop -class ExtractRedshiftProxy(publish.Extractor): +class ExtractRedshiftProxy(plugin.HoudiniExtractorPlugin): order = pyblish.api.ExtractorOrder + 0.1 label = "Extract Redshift Proxy" families = ["redshiftproxy"] - hosts = ["houdini"] targets = ["local", "remote"] def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/extract_render.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_render.py similarity index 94% rename from client/ayon_core/hosts/houdini/plugins/publish/extract_render.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/extract_render.py index 7b4762a25f..8ff8590650 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/extract_render.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_render.py @@ -1,16 +1,16 @@ +import os +import hou + import pyblish.api -from ayon_core.pipeline import publish -from ayon_core.hosts.houdini.api.lib import render_rop -import hou -import os +from ayon_houdini.api import plugin +from ayon_houdini.api.lib import render_rop -class ExtractRender(publish.Extractor): +class ExtractRender(plugin.HoudiniExtractorPlugin): order = pyblish.api.ExtractorOrder label = "Extract Render" - hosts = ["houdini"] families = ["mantra_rop", "karma_rop", "redshift_rop", diff --git a/client/ayon_core/hosts/houdini/plugins/publish/extract_usd.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_usd.py similarity index 87% rename from client/ayon_core/hosts/houdini/plugins/publish/extract_usd.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/extract_usd.py index 0aeed06643..40e6211e63 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/extract_usd.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_usd.py @@ -1,17 +1,16 @@ import os +import hou import pyblish.api -from ayon_core.pipeline import publish -from ayon_core.hosts.houdini.api.lib import render_rop +from ayon_houdini.api import plugin +from ayon_houdini.api.lib import render_rop -import hou -class ExtractUSD(publish.Extractor): +class ExtractUSD(plugin.HoudiniExtractorPlugin): order = pyblish.api.ExtractorOrder label = "Extract USD" - hosts = ["houdini"] families = ["usd", "usdModel", "usdSetDress"] diff --git a/client/ayon_core/hosts/houdini/plugins/publish/extract_usd_layered.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_usd_layered.py similarity index 94% rename from client/ayon_core/hosts/houdini/plugins/publish/extract_usd_layered.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/extract_usd_layered.py index 2e5c9a892c..6a377c57cf 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/extract_usd_layered.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_usd_layered.py @@ -7,12 +7,10 @@ import hou import ayon_api import pyblish.api -from ayon_core.pipeline import ( - get_representation_path, - publish, -) -import ayon_core.hosts.houdini.api.usd as hou_usdlib -from ayon_core.hosts.houdini.api.lib import render_rop +from ayon_core.pipeline import get_representation_path +from ayon_houdini.api import plugin +import ayon_houdini.api.usd as hou_usdlib +from ayon_houdini.api.lib import render_rop class ExitStack(object): @@ -154,11 +152,10 @@ def parm_values(overrides): parm.set(value) -class ExtractUSDLayered(publish.Extractor): +class ExtractUSDLayered(plugin.HoudiniExtractorPlugin): order = pyblish.api.ExtractorOrder label = "Extract Layered USD" - hosts = ["houdini"] families = ["usdLayered", "usdShade"] # Force Output Processors so it will always save any file @@ -312,3 +309,14 @@ class ExtractUSDLayered(publish.Extractor): return False return filecmp.cmp(old_file, new_file) + + def staging_dir(self, instance): + """Provide a temporary directory in which to store extracted files + + Upon calling this method the staging directory is stored inside + the instance.data['stagingDir'] + """ + + from ayon_core.pipeline.publish import get_instance_staging_dir + + return get_instance_staging_dir(instance) diff --git a/client/ayon_core/hosts/houdini/plugins/publish/extract_vdb_cache.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_vdb_cache.py similarity index 89% rename from client/ayon_core/hosts/houdini/plugins/publish/extract_vdb_cache.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/extract_vdb_cache.py index 4544d33e57..a944d81e9b 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/extract_vdb_cache.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/extract_vdb_cache.py @@ -1,19 +1,17 @@ import os +import hou import pyblish.api -from ayon_core.pipeline import publish -from ayon_core.hosts.houdini.api.lib import render_rop - -import hou +from ayon_houdini.api import plugin +from ayon_houdini.api.lib import render_rop -class ExtractVDBCache(publish.Extractor): +class ExtractVDBCache(plugin.HoudiniExtractorPlugin): order = pyblish.api.ExtractorOrder + 0.1 label = "Extract VDB Cache" families = ["vdbcache"] - hosts = ["houdini"] def process(self, instance): if instance.data.get("farm"): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/help/validate_vdb_output_node.xml b/server_addon/houdini/client/ayon_houdini/plugins/publish/help/validate_vdb_output_node.xml similarity index 98% rename from client/ayon_core/hosts/houdini/plugins/publish/help/validate_vdb_output_node.xml rename to server_addon/houdini/client/ayon_houdini/plugins/publish/help/validate_vdb_output_node.xml index eb83bfffe3..8aac9a6a07 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/help/validate_vdb_output_node.xml +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/help/validate_vdb_output_node.xml @@ -25,4 +25,4 @@ ROP node `{rop_path}` is set to export SOP path `{sop_path}`. - \ No newline at end of file + diff --git a/client/ayon_core/hosts/houdini/plugins/publish/increment_current_file.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/increment_current_file.py similarity index 86% rename from client/ayon_core/hosts/houdini/plugins/publish/increment_current_file.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/increment_current_file.py index 3e9291d5c2..878500f605 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/increment_current_file.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/increment_current_file.py @@ -2,11 +2,15 @@ import pyblish.api from ayon_core.lib import version_up from ayon_core.pipeline import registered_host -from ayon_core.pipeline.publish import get_errored_plugins_from_context -from ayon_core.pipeline.publish import KnownPublishError +from ayon_core.pipeline.publish import ( + get_errored_plugins_from_context, + KnownPublishError +) + +from ayon_houdini.api import plugin -class IncrementCurrentFile(pyblish.api.ContextPlugin): +class IncrementCurrentFile(plugin.HoudiniContextPlugin): """Increment the current file. Saves the current scene with an increased version number. @@ -15,7 +19,6 @@ class IncrementCurrentFile(pyblish.api.ContextPlugin): label = "Increment current file" order = pyblish.api.IntegratorOrder + 9.0 - hosts = ["houdini"] families = ["workfile", "usdrender", "mantra_rop", diff --git a/client/ayon_core/hosts/houdini/plugins/publish/save_scene.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/save_scene.py similarity index 89% rename from client/ayon_core/hosts/houdini/plugins/publish/save_scene.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/save_scene.py index 7c453038ea..e0734da5d1 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/save_scene.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/save_scene.py @@ -2,13 +2,14 @@ import pyblish.api from ayon_core.pipeline import registered_host +from ayon_houdini.api import plugin -class SaveCurrentScene(pyblish.api.ContextPlugin): + +class SaveCurrentScene(plugin.HoudiniContextPlugin): """Save current scene""" label = "Save current file" order = pyblish.api.ExtractorOrder - 0.49 - hosts = ["houdini"] def process(self, context): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_abc_primitive_to_detail.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_abc_primitive_to_detail.py similarity index 98% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_abc_primitive_to_detail.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_abc_primitive_to_detail.py index 18a459bf7b..51885a963e 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_abc_primitive_to_detail.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_abc_primitive_to_detail.py @@ -1,11 +1,13 @@ # -*- coding: utf-8 -*- -import pyblish.api - from collections import defaultdict + +import pyblish.api from ayon_core.pipeline import PublishValidationError +from ayon_houdini.api import plugin -class ValidateAbcPrimitiveToDetail(pyblish.api.InstancePlugin): + +class ValidateAbcPrimitiveToDetail(plugin.HoudiniInstancePlugin): """Validate Alembic ROP Primitive to Detail attribute is consistent. The Alembic ROP crashes Houdini whenever an attribute in the "Primitive to @@ -18,7 +20,6 @@ class ValidateAbcPrimitiveToDetail(pyblish.api.InstancePlugin): order = pyblish.api.ValidatorOrder + 0.1 families = ["abc"] - hosts = ["houdini"] label = "Validate Primitive to Detail (Abc)" def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_alembic_face_sets.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_alembic_face_sets.py similarity index 92% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_alembic_face_sets.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_alembic_face_sets.py index 40114bc40e..00ce554ff1 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_alembic_face_sets.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_alembic_face_sets.py @@ -1,8 +1,10 @@ # -*- coding: utf-8 -*- -import pyblish.api import hou +import pyblish.api +from ayon_houdini.api import plugin -class ValidateAlembicROPFaceSets(pyblish.api.InstancePlugin): + +class ValidateAlembicROPFaceSets(plugin.HoudiniInstancePlugin): """Validate Face Sets are disabled for extraction to pointcache. When groups are saved as Face Sets with the Alembic these show up @@ -19,7 +21,6 @@ class ValidateAlembicROPFaceSets(pyblish.api.InstancePlugin): order = pyblish.api.ValidatorOrder + 0.1 families = ["abc"] - hosts = ["houdini"] label = "Validate Alembic ROP Face Sets" def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_alembic_input_node.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_alembic_input_node.py similarity index 95% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_alembic_input_node.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_alembic_input_node.py index dbc38058e6..aab3068171 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_alembic_input_node.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_alembic_input_node.py @@ -1,10 +1,12 @@ # -*- coding: utf-8 -*- +import hou import pyblish.api from ayon_core.pipeline import PublishValidationError -import hou + +from ayon_houdini.api import plugin -class ValidateAlembicInputNode(pyblish.api.InstancePlugin): +class ValidateAlembicInputNode(plugin.HoudiniInstancePlugin): """Validate that the node connected to the output is correct. The connected node cannot be of the following types for Alembic: @@ -15,7 +17,6 @@ class ValidateAlembicInputNode(pyblish.api.InstancePlugin): order = pyblish.api.ValidatorOrder + 0.1 families = ["abc"] - hosts = ["houdini"] label = "Validate Input Node (Abc)" def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_animation_settings.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_animation_settings.py similarity index 93% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_animation_settings.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_animation_settings.py index e28c38ece0..1cc9e24dc9 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_animation_settings.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_animation_settings.py @@ -1,11 +1,12 @@ -import pyblish.api - -from ayon_core.pipeline.publish import PublishValidationError -from ayon_core.hosts.houdini.api import lib import hou +import pyblish.api +from ayon_core.pipeline.publish import PublishValidationError -class ValidateAnimationSettings(pyblish.api.InstancePlugin): +from ayon_houdini.api import lib, plugin + + +class ValidateAnimationSettings(plugin.HoudiniInstancePlugin): """Validate if the unexpanded string contains the frame ('$F') token This validator will only check the output parameter of the node if diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_bypass.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_bypass.py similarity index 92% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_bypass.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_bypass.py index 8a83ff42fb..f3856b4147 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_bypass.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_bypass.py @@ -1,10 +1,13 @@ # -*- coding: utf-8 -*- +import hou + import pyblish.api from ayon_core.pipeline import PublishValidationError -import hou +from ayon_houdini.api import plugin -class ValidateBypassed(pyblish.api.InstancePlugin): + +class ValidateBypassed(plugin.HoudiniInstancePlugin): """Validate all primitives build hierarchy from attribute when enabled. The name of the attribute must exist on the prims and have the same name @@ -15,7 +18,6 @@ class ValidateBypassed(pyblish.api.InstancePlugin): order = pyblish.api.ValidatorOrder - 0.1 families = ["*"] - hosts = ["houdini"] label = "Validate ROP Bypass" def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_camera_rop.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_camera_rop.py similarity index 95% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_camera_rop.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_camera_rop.py index ad4ace988a..f21addb11d 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_camera_rop.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_camera_rop.py @@ -3,13 +3,14 @@ import pyblish.api from ayon_core.pipeline import PublishValidationError +from ayon_houdini.api import plugin -class ValidateCameraROP(pyblish.api.InstancePlugin): + +class ValidateCameraROP(plugin.HoudiniInstancePlugin): """Validate Camera ROP settings.""" order = pyblish.api.ValidatorOrder families = ["camera"] - hosts = ["houdini"] label = "Camera ROP" def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_cop_output_node.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_cop_output_node.py similarity index 95% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_cop_output_node.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_cop_output_node.py index 91bd36018a..1d63e15d90 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_cop_output_node.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_cop_output_node.py @@ -1,11 +1,13 @@ # -*- coding: utf-8 -*- import hou -import pyblish.api +import pyblish.api from ayon_core.pipeline import PublishValidationError +from ayon_houdini.api import plugin -class ValidateCopOutputNode(pyblish.api.InstancePlugin): + +class ValidateCopOutputNode(plugin.HoudiniInstancePlugin): """Validate the instance COP Output Node. This will ensure: @@ -17,7 +19,6 @@ class ValidateCopOutputNode(pyblish.api.InstancePlugin): order = pyblish.api.ValidatorOrder families = ["imagesequence"] - hosts = ["houdini"] label = "Validate COP Output Node" def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_export_is_a_single_frame.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_export_is_a_single_frame.py similarity index 95% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_export_is_a_single_frame.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_export_is_a_single_frame.py index b188055bc7..b26c60320b 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_export_is_a_single_frame.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_export_is_a_single_frame.py @@ -6,7 +6,7 @@ from ayon_core.pipeline import ( OptionalPyblishPluginMixin ) from ayon_core.pipeline.publish import ValidateContentsOrder -from ayon_core.hosts.houdini.api.action import SelectInvalidAction +from ayon_houdini.api.action import SelectInvalidAction class ValidateSingleFrame(pyblish.api.InstancePlugin, @@ -18,7 +18,6 @@ class ValidateSingleFrame(pyblish.api.InstancePlugin, """ families = ["model"] - hosts = ["houdini"] label = "Validate Single Frame" order = ValidateContentsOrder + 0.1 actions = [SelectInvalidAction] diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_fbx_output_node.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_fbx_output_node.py similarity index 96% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_fbx_output_node.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_fbx_output_node.py index 08eaa182c0..1c236bb8f7 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_fbx_output_node.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_fbx_output_node.py @@ -1,15 +1,16 @@ # -*- coding: utf-8 -*- import pyblish.api from ayon_core.pipeline import PublishValidationError -from ayon_core.hosts.houdini.api.action import ( +from ayon_houdini.api.action import ( SelectInvalidAction, SelectROPAction, ) -from ayon_core.hosts.houdini.api.lib import get_obj_node_output +from ayon_houdini.api import plugin +from ayon_houdini.api.lib import get_obj_node_output import hou -class ValidateFBXOutputNode(pyblish.api.InstancePlugin): +class ValidateFBXOutputNode(plugin.HoudiniInstancePlugin): """Validate the instance Output Node. This will ensure: @@ -22,7 +23,6 @@ class ValidateFBXOutputNode(pyblish.api.InstancePlugin): order = pyblish.api.ValidatorOrder families = ["fbx"] - hosts = ["houdini"] label = "Validate FBX Output Node" actions = [SelectROPAction, SelectInvalidAction] diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_file_extension.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_file_extension.py similarity index 93% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_file_extension.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_file_extension.py index e9a0397a58..1b3a58f4b3 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_file_extension.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_file_extension.py @@ -1,14 +1,14 @@ # -*- coding: utf-8 -*- import os -import pyblish.api - -from ayon_core.hosts.houdini.api import lib -from ayon_core.pipeline import PublishValidationError - import hou +import pyblish.api +from ayon_core.pipeline import PublishValidationError -class ValidateFileExtension(pyblish.api.InstancePlugin): +from ayon_houdini.api import lib, plugin + + +class ValidateFileExtension(plugin.HoudiniInstancePlugin): """Validate the output file extension fits the output family. File extensions: @@ -20,7 +20,6 @@ class ValidateFileExtension(pyblish.api.InstancePlugin): order = pyblish.api.ValidatorOrder families = ["camera", "vdbcache"] - hosts = ["houdini"] label = "Output File Extension" family_extensions = { diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_frame_range.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_frame_range.py similarity index 96% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_frame_range.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_frame_range.py index 2a3418ee7e..9435fa033a 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_frame_range.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_frame_range.py @@ -1,10 +1,13 @@ # -*- coding: utf-8 -*- +import hou + import pyblish.api from ayon_core.pipeline import PublishValidationError from ayon_core.pipeline.publish import RepairAction -from ayon_core.hosts.houdini.api.action import SelectInvalidAction -import hou +from ayon_houdini.api.action import SelectInvalidAction +from ayon_houdini.api import plugin + class DisableUseFolderHandlesAction(RepairAction): @@ -12,7 +15,7 @@ class DisableUseFolderHandlesAction(RepairAction): icon = "mdi.toggle-switch-off" -class ValidateFrameRange(pyblish.api.InstancePlugin): +class ValidateFrameRange(plugin.HoudiniInstancePlugin): """Validate Frame Range. Due to the usage of start and end handles, @@ -21,7 +24,6 @@ class ValidateFrameRange(pyblish.api.InstancePlugin): """ order = pyblish.api.ValidatorOrder - 0.1 - hosts = ["houdini"] label = "Validate Frame Range" actions = [DisableUseFolderHandlesAction, SelectInvalidAction] diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_frame_token.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_frame_token.py similarity index 93% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_frame_token.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_frame_token.py index 20fb859146..46c02ba6f2 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_frame_token.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_frame_token.py @@ -1,10 +1,11 @@ -import pyblish.api - -from ayon_core.hosts.houdini.api import lib import hou +import pyblish.api -class ValidateFrameToken(pyblish.api.InstancePlugin): +from ayon_houdini.api import lib, plugin + + +class ValidateFrameToken(plugin.HoudiniInstancePlugin): """Validate if the unexpanded string contains the frame ('$F') token. This validator will *only* check the output parameter of the node if diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_houdini_license_category.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_houdini_license_category.py similarity index 91% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_houdini_license_category.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_houdini_license_category.py index 9a68c34405..d76f8a0072 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_houdini_license_category.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_houdini_license_category.py @@ -1,10 +1,13 @@ # -*- coding: utf-8 -*- -import pyblish.api -from ayon_core.pipeline import PublishValidationError import hou +import pyblish.api +from ayon_core.pipeline import PublishValidationError -class ValidateHoudiniNotApprenticeLicense(pyblish.api.InstancePlugin): +from ayon_houdini.api import plugin + + +class ValidateHoudiniNotApprenticeLicense(plugin.HoudiniInstancePlugin): """Validate the Houdini instance runs a non Apprentice license. USD ROPs: @@ -21,7 +24,6 @@ class ValidateHoudiniNotApprenticeLicense(pyblish.api.InstancePlugin): order = pyblish.api.ValidatorOrder families = ["usd", "abc", "fbx", "camera"] - hosts = ["houdini"] label = "Houdini Apprentice License" def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_instance_in_context.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_instance_in_context.py similarity index 94% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_instance_in_context.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_instance_in_context.py index 26708e306b..7566dff240 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_instance_in_context.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_instance_in_context.py @@ -1,8 +1,5 @@ # -*- coding: utf-8 -*- """Validate if instance asset is the same as context asset.""" - -import pyblish.api -from ayon_core.hosts.houdini.api.action import SelectROPAction from ayon_core.pipeline.publish import ( RepairAction, ValidateContentsOrder, @@ -10,8 +7,11 @@ from ayon_core.pipeline.publish import ( OptionalPyblishPluginMixin ) +from ayon_houdini.api import plugin +from ayon_houdini.api.action import SelectROPAction -class ValidateInstanceInContextHoudini(pyblish.api.InstancePlugin, + +class ValidateInstanceInContextHoudini(plugin.HoudiniInstancePlugin, OptionalPyblishPluginMixin): """Validator to check if instance asset match context asset. @@ -24,7 +24,6 @@ class ValidateInstanceInContextHoudini(pyblish.api.InstancePlugin, order = ValidateContentsOrder label = "Instance in same Context" optional = True - hosts = ["houdini"] actions = [SelectROPAction, RepairAction] def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_mesh_is_static.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_mesh_is_static.py similarity index 87% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_mesh_is_static.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_mesh_is_static.py index 9652367bfe..b6725bc36c 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_mesh_is_static.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_mesh_is_static.py @@ -1,17 +1,17 @@ # -*- coding: utf-8 -*- """Validator for correct naming of Static Meshes.""" -import pyblish.api from ayon_core.pipeline import ( PublishValidationError, OptionalPyblishPluginMixin ) from ayon_core.pipeline.publish import ValidateContentsOrder -from ayon_core.hosts.houdini.api.action import SelectInvalidAction -from ayon_core.hosts.houdini.api.lib import get_output_children +from ayon_houdini.api import plugin +from ayon_houdini.api.action import SelectInvalidAction +from ayon_houdini.api.lib import get_output_children -class ValidateMeshIsStatic(pyblish.api.InstancePlugin, +class ValidateMeshIsStatic(plugin.HoudiniInstancePlugin, OptionalPyblishPluginMixin): """Validate mesh is static. @@ -23,7 +23,6 @@ class ValidateMeshIsStatic(pyblish.api.InstancePlugin, families = ["staticMesh", "model"] - hosts = ["houdini"] label = "Validate Mesh is Static" order = ValidateContentsOrder + 0.1 actions = [SelectInvalidAction] diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_mkpaths_toggled.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_mkpaths_toggled.py similarity index 89% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_mkpaths_toggled.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_mkpaths_toggled.py index 5e59eb505f..4573d4ba0b 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_mkpaths_toggled.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_mkpaths_toggled.py @@ -1,14 +1,16 @@ # -*- coding: utf-8 -*- import pyblish.api + from ayon_core.pipeline import PublishValidationError +from ayon_houdini.api import plugin -class ValidateIntermediateDirectoriesChecked(pyblish.api.InstancePlugin): + +class ValidateIntermediateDirectoriesChecked(plugin.HoudiniInstancePlugin): """Validate Create Intermediate Directories is enabled on ROP node.""" order = pyblish.api.ValidatorOrder families = ["pointcache", "camera", "vdbcache", "model"] - hosts = ["houdini"] label = "Create Intermediate Directories Checked" def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_no_errors.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_no_errors.py similarity index 95% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_no_errors.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_no_errors.py index ae1e5cad27..ef66665d7b 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_no_errors.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_no_errors.py @@ -1,8 +1,11 @@ # -*- coding: utf-8 -*- -import pyblish.api import hou + +import pyblish.api from ayon_core.pipeline import PublishValidationError +from ayon_houdini.api import plugin + def cook_in_range(node, start, end): current = hou.intFrame() @@ -26,11 +29,10 @@ def get_errors(node): return node.errors() -class ValidateNoErrors(pyblish.api.InstancePlugin): +class ValidateNoErrors(plugin.HoudiniInstancePlugin): """Validate the Instance has no current cooking errors.""" order = pyblish.api.ValidatorOrder - hosts = ["houdini"] label = "Validate no errors" def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_primitive_hierarchy_paths.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_primitive_hierarchy_paths.py similarity index 98% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_primitive_hierarchy_paths.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_primitive_hierarchy_paths.py index f63cb23138..9daab2a1a3 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_primitive_hierarchy_paths.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_primitive_hierarchy_paths.py @@ -1,20 +1,20 @@ # -*- coding: utf-8 -*- -import pyblish.api +import hou + +from ayon_houdini.api import plugin from ayon_core.pipeline import PublishValidationError from ayon_core.pipeline.publish import ( ValidateContentsOrder, RepairAction, ) -import hou - class AddDefaultPathAction(RepairAction): label = "Add a default path attribute" icon = "mdi.pencil-plus-outline" -class ValidatePrimitiveHierarchyPaths(pyblish.api.InstancePlugin): +class ValidatePrimitiveHierarchyPaths(plugin.HoudiniInstancePlugin): """Validate all primitives build hierarchy from attribute when enabled. The name of the attribute must exist on the prims and have the same name @@ -25,7 +25,6 @@ class ValidatePrimitiveHierarchyPaths(pyblish.api.InstancePlugin): order = ValidateContentsOrder + 0.1 families = ["abc"] - hosts = ["houdini"] label = "Validate Prims Hierarchy Path" actions = [AddDefaultPathAction] diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_remote_publish.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_remote_publish.py similarity index 93% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_remote_publish.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_remote_publish.py index 133b45e8c3..08597c0a6f 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_remote_publish.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_remote_publish.py @@ -1,19 +1,18 @@ # -*-coding: utf-8 -*- -import pyblish.api +import hou -from ayon_core.hosts.houdini.api import lib +import pyblish.api from ayon_core.pipeline.publish import RepairContextAction from ayon_core.pipeline import PublishValidationError -import hou +from ayon_houdini.api import lib, plugin -class ValidateRemotePublishOutNode(pyblish.api.ContextPlugin): +class ValidateRemotePublishOutNode(plugin.HoudiniContextPlugin): """Validate the remote publish out node exists for Deadline to trigger.""" order = pyblish.api.ValidatorOrder - 0.4 families = ["*"] - hosts = ["houdini"] targets = ["deadline"] label = "Remote Publish ROP node" actions = [RepairContextAction] diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_remote_publish_enabled.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_remote_publish_enabled.py similarity index 91% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_remote_publish_enabled.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_remote_publish_enabled.py index d4c6e7a45e..dc5666609f 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_remote_publish_enabled.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_remote_publish_enabled.py @@ -1,17 +1,18 @@ # -*- coding: utf-8 -*- -import pyblish.api - import hou + +import pyblish.api from ayon_core.pipeline.publish import RepairContextAction from ayon_core.pipeline import PublishValidationError +from ayon_houdini.api import plugin -class ValidateRemotePublishEnabled(pyblish.api.ContextPlugin): + +class ValidateRemotePublishEnabled(plugin.HoudiniContextPlugin): """Validate the remote publish node is *not* bypassed.""" order = pyblish.api.ValidatorOrder - 0.39 families = ["*"] - hosts = ["houdini"] targets = ["deadline"] label = "Remote Publish ROP enabled" actions = [RepairContextAction] diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_review_colorspace.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_review_colorspace.py similarity index 93% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_review_colorspace.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_review_colorspace.py index fa532c5437..e96b222446 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_review_colorspace.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_review_colorspace.py @@ -1,4 +1,7 @@ # -*- coding: utf-8 -*- +import os +import hou + import pyblish.api from ayon_core.pipeline import ( PublishValidationError, @@ -9,10 +12,9 @@ from ayon_core.pipeline.publish import ( get_plugin_settings, apply_plugin_settings_automatically ) -from ayon_core.hosts.houdini.api.action import SelectROPAction -import os -import hou +from ayon_houdini.api import plugin +from ayon_houdini.api.action import SelectROPAction class ResetViewSpaceAction(RepairAction): @@ -20,7 +22,7 @@ class ResetViewSpaceAction(RepairAction): icon = "mdi.monitor" -class ValidateReviewColorspace(pyblish.api.InstancePlugin, +class ValidateReviewColorspace(plugin.HoudiniInstancePlugin, OptionalPyblishPluginMixin): """Validate Review Colorspace parameters. @@ -29,7 +31,6 @@ class ValidateReviewColorspace(pyblish.api.InstancePlugin, order = pyblish.api.ValidatorOrder + 0.1 families = ["review"] - hosts = ["houdini"] label = "Validate Review Colorspace" actions = [ResetViewSpaceAction, SelectROPAction] @@ -123,14 +124,14 @@ class ValidateReviewColorspace(pyblish.api.InstancePlugin, As if OCIO is disabled the whole validation is skipped and this repair action won't show up. """ - from ayon_core.hosts.houdini.api.lib import set_review_color_space + from ayon_houdini.api.lib import set_review_color_space # Fall to the default value if cls.review_color_space is empty. if not cls.review_color_space: # cls.review_color_space is an empty string # when the imageio/workfile setting is disabled or # when the Review colorspace setting is empty. - from ayon_core.hosts.houdini.api.colorspace import get_default_display_view_colorspace # noqa + from ayon_houdini.api.colorspace import get_default_display_view_colorspace # noqa cls.review_color_space = get_default_display_view_colorspace() rop_node = hou.node(instance.data["instance_node"]) diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_scene_review.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_scene_review.py similarity index 96% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_scene_review.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_scene_review.py index 0b09306b0d..f45cd1c97d 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_scene_review.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_scene_review.py @@ -1,10 +1,13 @@ # -*- coding: utf-8 -*- -import pyblish.api -from ayon_core.pipeline import PublishValidationError import hou +import pyblish.api +from ayon_core.pipeline import PublishValidationError -class ValidateSceneReview(pyblish.api.InstancePlugin): +from ayon_houdini.api import plugin + + +class ValidateSceneReview(plugin.HoudiniInstancePlugin): """Validator Some Scene Settings before publishing the review 1. Scene Path 2. Resolution @@ -12,7 +15,6 @@ class ValidateSceneReview(pyblish.api.InstancePlugin): order = pyblish.api.ValidatorOrder families = ["review"] - hosts = ["houdini"] label = "Scene Setting for review" def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_sop_output_node.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_sop_output_node.py similarity index 95% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_sop_output_node.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_sop_output_node.py index d67192d28e..7d37927058 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_sop_output_node.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_sop_output_node.py @@ -1,15 +1,17 @@ # -*- coding: utf-8 -*- +import hou + import pyblish.api from ayon_core.pipeline import PublishValidationError -from ayon_core.hosts.houdini.api.action import ( + +from ayon_houdini.api import plugin +from ayon_houdini.api.action import ( SelectInvalidAction, SelectROPAction, ) -import hou - -class ValidateSopOutputNode(pyblish.api.InstancePlugin): +class ValidateSopOutputNode(plugin.HoudiniInstancePlugin): """Validate the instance SOP Output Node. This will ensure: @@ -23,7 +25,6 @@ class ValidateSopOutputNode(pyblish.api.InstancePlugin): order = pyblish.api.ValidatorOrder families = ["pointcache", "vdbcache", "model"] - hosts = ["houdini"] label = "Validate Output Node (SOP)" actions = [SelectROPAction, SelectInvalidAction] diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_subset_name.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_subset_name.py similarity index 94% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_subset_name.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_subset_name.py index 0481929824..dfd353bddf 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_subset_name.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_subset_name.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- """Validator for correct naming of Static Meshes.""" -import pyblish.api +import hou + from ayon_core.pipeline import ( PublishValidationError, OptionalPyblishPluginMixin @@ -9,24 +10,23 @@ from ayon_core.pipeline.publish import ( ValidateContentsOrder, RepairAction, ) -from ayon_core.hosts.houdini.api.action import SelectInvalidAction -from ayon_core.pipeline.create import get_product_name -import hou +from ayon_houdini.api import plugin +from ayon_houdini.api.action import SelectInvalidAction +from ayon_core.pipeline.create import get_product_name class FixProductNameAction(RepairAction): label = "Fix Product Name" -class ValidateSubsetName(pyblish.api.InstancePlugin, +class ValidateSubsetName(plugin.HoudiniInstancePlugin, OptionalPyblishPluginMixin): """Validate Product name. """ families = ["staticMesh"] - hosts = ["houdini"] label = "Validate Product Name" order = ValidateContentsOrder + 0.1 actions = [FixProductNameAction, SelectInvalidAction] diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_unreal_staticmesh_naming.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_unreal_staticmesh_naming.py similarity index 91% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_unreal_staticmesh_naming.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_unreal_staticmesh_naming.py index ae00bc9db4..a3d971695d 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_unreal_staticmesh_naming.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_unreal_staticmesh_naming.py @@ -1,19 +1,19 @@ # -*- coding: utf-8 -*- """Validator for correct naming of Static Meshes.""" -import pyblish.api +import hou + from ayon_core.pipeline import ( PublishValidationError, OptionalPyblishPluginMixin ) from ayon_core.pipeline.publish import ValidateContentsOrder -from ayon_core.hosts.houdini.api.action import SelectInvalidAction -from ayon_core.hosts.houdini.api.lib import get_output_children - -import hou +from ayon_houdini.api import plugin +from ayon_houdini.api.action import SelectInvalidAction +from ayon_houdini.api.lib import get_output_children -class ValidateUnrealStaticMeshName(pyblish.api.InstancePlugin, +class ValidateUnrealStaticMeshName(plugin.HoudiniInstancePlugin, OptionalPyblishPluginMixin): """Validate name of Unreal Static Mesh. @@ -29,7 +29,6 @@ class ValidateUnrealStaticMeshName(pyblish.api.InstancePlugin, """ families = ["staticMesh"] - hosts = ["houdini"] label = "Unreal Static Mesh Name (FBX)" order = ValidateContentsOrder + 0.1 actions = [SelectInvalidAction] diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_usd_layer_path_backslashes.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_layer_path_backslashes.py similarity index 91% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_usd_layer_path_backslashes.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_layer_path_backslashes.py index 2b727670ad..4da67ff199 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_usd_layer_path_backslashes.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_layer_path_backslashes.py @@ -1,13 +1,14 @@ # -*- coding: utf-8 -*- -import pyblish.api - -import ayon_core.hosts.houdini.api.usd as hou_usdlib -from ayon_core.pipeline import PublishValidationError - import hou +import pyblish.api +from ayon_core.pipeline import PublishValidationError -class ValidateUSDLayerPathBackslashes(pyblish.api.InstancePlugin): +from ayon_houdini.api import plugin +import ayon_houdini.api.usd as hou_usdlib + + +class ValidateUSDLayerPathBackslashes(plugin.HoudiniInstancePlugin): """Validate USD loaded paths have no backslashes. This is a crucial validation for HUSK USD rendering as Houdini's @@ -22,7 +23,6 @@ class ValidateUSDLayerPathBackslashes(pyblish.api.InstancePlugin): order = pyblish.api.ValidatorOrder families = ["usdSetDress", "usdShade", "usd", "usdrender"] - hosts = ["houdini"] label = "USD Layer path backslashes" optional = True diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_usd_model_and_shade.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_model_and_shade.py similarity index 93% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_usd_model_and_shade.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_model_and_shade.py index dc1a19cae0..935bd39e23 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_usd_model_and_shade.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_model_and_shade.py @@ -1,12 +1,12 @@ # -*- coding: utf-8 -*- -import pyblish.api - -import ayon_core.hosts.houdini.api.usd as hou_usdlib -from ayon_core.pipeline import PublishValidationError - +import hou from pxr import UsdShade, UsdRender, UsdLux -import hou +import pyblish.api +from ayon_core.pipeline import PublishValidationError + +from ayon_houdini.api import plugin +import ayon_houdini.api.usd as hou_usdlib def fullname(o): @@ -17,7 +17,7 @@ def fullname(o): return module + "." + o.__name__ -class ValidateUsdModel(pyblish.api.InstancePlugin): +class ValidateUsdModel(plugin.HoudiniInstancePlugin): """Validate USD Model. Disallow Shaders, Render settings, products and vars and Lux lights. @@ -26,7 +26,6 @@ class ValidateUsdModel(pyblish.api.InstancePlugin): order = pyblish.api.ValidatorOrder families = ["usdModel"] - hosts = ["houdini"] label = "Validate USD Model" optional = True diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_usd_output_node.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_output_node.py similarity index 94% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_usd_output_node.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_output_node.py index 968d64e8fc..88d549d46c 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_usd_output_node.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_output_node.py @@ -1,9 +1,12 @@ # -*- coding: utf-8 -*- import pyblish.api + from ayon_core.pipeline import PublishValidationError +from ayon_houdini.api import plugin -class ValidateUSDOutputNode(pyblish.api.InstancePlugin): + +class ValidateUSDOutputNode(plugin.HoudiniInstancePlugin): """Validate the instance USD LOPs Output Node. This will ensure: @@ -15,7 +18,6 @@ class ValidateUSDOutputNode(pyblish.api.InstancePlugin): order = pyblish.api.ValidatorOrder families = ["usd"] - hosts = ["houdini"] label = "Validate Output Node (USD)" def process(self, instance): diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_usd_render_product_names.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_render_product_names.py similarity index 89% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_usd_render_product_names.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_render_product_names.py index 4825b7cc71..eb46b266e2 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_usd_render_product_names.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_render_product_names.py @@ -1,16 +1,17 @@ # -*- coding: utf-8 -*- import os -import pyblish.api +import pyblish.api from ayon_core.pipeline import PublishValidationError +from ayon_houdini.api import plugin -class ValidateUSDRenderProductNames(pyblish.api.InstancePlugin): + +class ValidateUSDRenderProductNames(plugin.HoudiniInstancePlugin): """Validate USD Render Product names are correctly set absolute paths.""" order = pyblish.api.ValidatorOrder families = ["usdrender"] - hosts = ["houdini"] label = "Validate USD Render Product Names" optional = True diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_usd_setdress.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_setdress.py similarity index 92% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_usd_setdress.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_setdress.py index 40b67e896a..3e91f0418f 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_usd_setdress.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_setdress.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- import pyblish.api - -import ayon_core.hosts.houdini.api.usd as hou_usdlib from ayon_core.pipeline import PublishValidationError +from ayon_houdini.api import plugin +import ayon_houdini.api.usd as hou_usdlib -class ValidateUsdSetDress(pyblish.api.InstancePlugin): + +class ValidateUsdSetDress(plugin.HoudiniInstancePlugin): """Validate USD Set Dress. Must only have references or payloads. May not generate new mesh or @@ -15,14 +16,13 @@ class ValidateUsdSetDress(pyblish.api.InstancePlugin): order = pyblish.api.ValidatorOrder families = ["usdSetDress"] - hosts = ["houdini"] label = "Validate USD Set Dress" optional = True def process(self, instance): - from pxr import UsdGeom import hou + from pxr import UsdGeom rop = hou.node(instance.data.get("instance_node")) lop_path = hou_usdlib.get_usd_rop_loppath(rop) diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_usd_shade_model_exists.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_shade_model_exists.py similarity index 92% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_usd_shade_model_exists.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_shade_model_exists.py index 048d675c00..8a93d3b4a1 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_usd_shade_model_exists.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_shade_model_exists.py @@ -2,20 +2,19 @@ import re import ayon_api -import pyblish.api - from ayon_core.pipeline.publish import ( ValidateContentsOrder, KnownPublishError, PublishValidationError, ) +from ayon_houdini.api import plugin -class ValidateUSDShadeModelExists(pyblish.api.InstancePlugin): + +class ValidateUSDShadeModelExists(plugin.HoudiniInstancePlugin): """Validate the Instance has no current cooking errors.""" order = ValidateContentsOrder - hosts = ["houdini"] families = ["usdShade"] label = "USD Shade model exists" diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_usd_shade_workspace.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_shade_workspace.py similarity index 95% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_usd_shade_workspace.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_shade_workspace.py index 2ea4b5d816..8972941253 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_usd_shade_workspace.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_usd_shade_workspace.py @@ -1,11 +1,13 @@ # -*- coding: utf-8 -*- +import hou + import pyblish.api from ayon_core.pipeline import PublishValidationError -import hou +from ayon_houdini.api import plugin -class ValidateUsdShadeWorkspace(pyblish.api.InstancePlugin): +class ValidateUsdShadeWorkspace(plugin.HoudiniInstancePlugin): """Validate USD Shading Workspace is correct version. There have been some issues with outdated/erroneous Shading Workspaces @@ -14,7 +16,6 @@ class ValidateUsdShadeWorkspace(pyblish.api.InstancePlugin): """ order = pyblish.api.ValidatorOrder - hosts = ["houdini"] families = ["usdShade"] label = "USD Shade Workspace" diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_vdb_output_node.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_vdb_output_node.py similarity index 97% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_vdb_output_node.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_vdb_output_node.py index 319a9a4b50..c4ed9d2fb8 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_vdb_output_node.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_vdb_output_node.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- import contextlib - -import pyblish.api import hou +import pyblish.api from ayon_core.pipeline import PublishXmlValidationError -from ayon_core.hosts.houdini.api.action import SelectInvalidAction + +from ayon_houdini.api import plugin +from ayon_houdini.api.action import SelectInvalidAction def group_consecutive_numbers(nums): @@ -60,7 +61,7 @@ def get_geometry_at_frame(sop_node, frame, force=True): return sop_node.geometryAtFrame(frame) -class ValidateVDBOutputNode(pyblish.api.InstancePlugin): +class ValidateVDBOutputNode(plugin.HoudiniInstancePlugin): """Validate that the node connected to the output node is of type VDB. All primitives of the output geometry must be VDBs, no other primitive @@ -81,7 +82,6 @@ class ValidateVDBOutputNode(pyblish.api.InstancePlugin): order = pyblish.api.ValidatorOrder + 0.1 families = ["vdbcache"] - hosts = ["houdini"] label = "Validate Output Node (VDB)" actions = [SelectInvalidAction] diff --git a/client/ayon_core/hosts/houdini/plugins/publish/validate_workfile_paths.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_workfile_paths.py similarity index 96% rename from client/ayon_core/hosts/houdini/plugins/publish/validate_workfile_paths.py rename to server_addon/houdini/client/ayon_houdini/plugins/publish/validate_workfile_paths.py index 7984b7615c..e1cd0c6caa 100644 --- a/client/ayon_core/hosts/houdini/plugins/publish/validate_workfile_paths.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/validate_workfile_paths.py @@ -1,20 +1,22 @@ # -*- coding: utf-8 -*- -import pyblish.api import hou + +import pyblish.api from ayon_core.pipeline import ( PublishValidationError, OptionalPyblishPluginMixin ) from ayon_core.pipeline.publish import RepairAction +from ayon_houdini.api import plugin + class ValidateWorkfilePaths( - pyblish.api.InstancePlugin, OptionalPyblishPluginMixin): + plugin.HoudiniInstancePlugin, OptionalPyblishPluginMixin): """Validate workfile paths so they are absolute.""" order = pyblish.api.ValidatorOrder families = ["workfile"] - hosts = ["houdini"] label = "Validate Workfile Paths" actions = [RepairAction] optional = True diff --git a/client/ayon_core/hosts/houdini/startup/MainMenuCommon.xml b/server_addon/houdini/client/ayon_houdini/startup/MainMenuCommon.xml similarity index 94% rename from client/ayon_core/hosts/houdini/startup/MainMenuCommon.xml rename to server_addon/houdini/client/ayon_houdini/startup/MainMenuCommon.xml index b6e78cbdc8..5b383f0085 100644 --- a/client/ayon_core/hosts/houdini/startup/MainMenuCommon.xml +++ b/server_addon/houdini/client/ayon_houdini/startup/MainMenuCommon.xml @@ -81,16 +81,16 @@ host_tools.show_workfiles(parent) diff --git a/client/ayon_core/hosts/houdini/startup/OPmenu.xml b/server_addon/houdini/client/ayon_houdini/startup/OPmenu.xml similarity index 91% rename from client/ayon_core/hosts/houdini/startup/OPmenu.xml rename to server_addon/houdini/client/ayon_houdini/startup/OPmenu.xml index 0a7b265fa1..5637d2cf6a 100644 --- a/client/ayon_core/hosts/houdini/startup/OPmenu.xml +++ b/server_addon/houdini/client/ayon_houdini/startup/OPmenu.xml @@ -15,7 +15,7 @@ 0.3.2", +} +ayon_compatible_addons = {} diff --git a/server_addon/houdini/server/settings/publish.py b/server_addon/houdini/server/settings/publish.py index 4a0c022f23..336de8e046 100644 --- a/server_addon/houdini/server/settings/publish.py +++ b/server_addon/houdini/server/settings/publish.py @@ -79,7 +79,8 @@ class PublishPluginsModel(BaseSettingsModel): ) ValidateInstanceInContextHoudini: BasicValidateModel = SettingsField( default_factory=BasicValidateModel, - title="Validate Instance is in same Context.") + title="Validate Instance is in same Context.", + section="Validators") ValidateMeshIsStatic: BasicValidateModel = SettingsField( default_factory=BasicValidateModel, title="Validate Mesh is Static.")