From f8b476ce7537c1f98152197fa3cc5dbb483e1d40 Mon Sep 17 00:00:00 2001 From: MustafaJafar Date: Tue, 21 May 2024 19:23:53 +0300 Subject: [PATCH] add base class for Houdini loader plugins --- .../houdini/client/ayon_houdini/api/plugin.py | 6 ++++++ .../client/ayon_houdini/plugins/load/actions.py | 6 +++--- .../client/ayon_houdini/plugins/load/load_alembic.py | 10 +++++----- .../ayon_houdini/plugins/load/load_alembic_archive.py | 10 +++++----- .../client/ayon_houdini/plugins/load/load_ass.py | 10 +++++----- .../client/ayon_houdini/plugins/load/load_bgeo.py | 10 +++++----- .../client/ayon_houdini/plugins/load/load_camera.py | 11 +++++------ .../client/ayon_houdini/plugins/load/load_fbx.py | 10 +++++----- .../client/ayon_houdini/plugins/load/load_filepath.py | 9 +++++---- .../client/ayon_houdini/plugins/load/load_hda.py | 10 +++++----- .../client/ayon_houdini/plugins/load/load_image.py | 9 ++++++--- .../ayon_houdini/plugins/load/load_redshift_proxy.py | 10 +++++----- .../ayon_houdini/plugins/load/load_usd_layer.py | 8 +++++--- .../ayon_houdini/plugins/load/load_usd_reference.py | 8 +++++--- .../client/ayon_houdini/plugins/load/load_usd_sop.py | 8 +++++--- .../client/ayon_houdini/plugins/load/load_vdb.py | 10 +++++----- .../client/ayon_houdini/plugins/load/show_usdview.py | 4 ++-- 17 files changed, 82 insertions(+), 67 deletions(-) diff --git a/server_addon/houdini/client/ayon_houdini/api/plugin.py b/server_addon/houdini/client/ayon_houdini/api/plugin.py index bb29c534f3..3c3ca0a81e 100644 --- a/server_addon/houdini/client/ayon_houdini/api/plugin.py +++ b/server_addon/houdini/client/ayon_houdini/api/plugin.py @@ -14,6 +14,7 @@ from ayon_core.pipeline import ( CreatedInstance, AYON_INSTANCE_ID, AVALON_INSTANCE_ID, + load, ) from ayon_core.lib import BoolDef from .lib import imprint, read, lsattr, add_self_publish_button @@ -349,3 +350,8 @@ class HoudiniCreator(NewCreator, HoudiniCreatorBase): for key, value in settings.items(): setattr(self, key, value) + +class HoudiniLoader(load.LoaderPlugin): + """Base class for most of the Houdini load plugins.""" + + settings_category = "houdini" diff --git a/server_addon/houdini/client/ayon_houdini/plugins/load/actions.py b/server_addon/houdini/client/ayon_houdini/plugins/load/actions.py index 3e9cc35504..5fe545ced9 100644 --- a/server_addon/houdini/client/ayon_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/server_addon/houdini/client/ayon_houdini/plugins/load/load_alembic.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_alembic.py index 7a610ce8b3..7db2fe93ed 100644 --- a/server_addon/houdini/client/ayon_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_houdini.api import pipeline -class AbcLoader(load.LoaderPlugin): +class AbcLoader(plugin.HoudiniLoader): """Load Alembic""" product_types = {"model", "animation", "pointcache", "gpuCache"} diff --git a/server_addon/houdini/client/ayon_houdini/plugins/load/load_alembic_archive.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_alembic_archive.py index 672734879d..a34a43e48a 100644 --- a/server_addon/houdini/client/ayon_houdini/plugins/load/load_alembic_archive.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_alembic_archive.py @@ -1,13 +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_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/server_addon/houdini/client/ayon_houdini/plugins/load/load_ass.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_ass.py index a7e558feb4..5fd97bc2a6 100644 --- a/server_addon/houdini/client/ayon_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_houdini.api import pipeline -class AssLoader(load.LoaderPlugin): +class AssLoader(plugin.HoudiniLoader): """Load .ass with Arnold Procedural""" product_types = {"ass"} diff --git a/server_addon/houdini/client/ayon_houdini/plugins/load/load_bgeo.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_bgeo.py index b9f3b2b085..7119612cda 100644 --- a/server_addon/houdini/client/ayon_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_houdini.api import pipeline -class BgeoLoader(load.LoaderPlugin): +class BgeoLoader(plugin.HoudiniLoader): """Load bgeo files to Houdini.""" label = "Load bgeo" diff --git a/server_addon/houdini/client/ayon_houdini/plugins/load/load_camera.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_camera.py index 0f8c4936a3..a9e50fe0a4 100644 --- a/server_addon/houdini/client/ayon_houdini/plugins/load/load_camera.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_camera.py @@ -1,9 +1,8 @@ -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_houdini.api import pipeline - from ayon_houdini.api.lib import ( set_camera_resolution, get_camera_from_container @@ -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/server_addon/houdini/client/ayon_houdini/plugins/load/load_fbx.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_fbx.py index 33b0688435..273ca43bc4 100644 --- a/server_addon/houdini/client/ayon_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_houdini.api import pipeline -class FbxLoader(load.LoaderPlugin): +class FbxLoader(plugin.HoudiniLoader): """Load fbx files. """ label = "Load FBX" diff --git a/server_addon/houdini/client/ayon_houdini/plugins/load/load_filepath.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_filepath.py index 5c99f8bdb1..a5d2f661bf 100644 --- a/server_addon/houdini/client/ayon_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_houdini.api import pipeline - +from ayon_houdini.api import ( + pipeline, + plugin +) import hou -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/server_addon/houdini/client/ayon_houdini/plugins/load/load_hda.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_hda.py index c0255614a5..b04e211aa4 100644 --- a/server_addon/houdini/client/ayon_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_houdini.api import pipeline -class HdaLoader(load.LoaderPlugin): +class HdaLoader(plugin.HoudiniLoader): """Load Houdini Digital Asset file.""" product_types = {"hda"} diff --git a/server_addon/houdini/client/ayon_houdini/plugins/load/load_image.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_image.py index 6163e6d77a..8fc1dc4b98 100644 --- a/server_addon/houdini/client/ayon_houdini/plugins/load/load_image.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_image.py @@ -2,11 +2,14 @@ import os import re from ayon_core.pipeline import ( - load, get_representation_path, AVALON_CONTAINER_ID, ) -from ayon_houdini.api import lib, pipeline +from ayon_houdini.api import ( + pipeline, + plugin, + lib +) import hou @@ -42,7 +45,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/server_addon/houdini/client/ayon_houdini/plugins/load/load_redshift_proxy.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_redshift_proxy.py index f11ac065a1..583af6151d 100644 --- a/server_addon/houdini/client/ayon_houdini/plugins/load/load_redshift_proxy.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/load/load_redshift_proxy.py @@ -1,16 +1,16 @@ 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_houdini.api import pipeline from ayon_core.pipeline.load import LoadError import hou -class RedshiftProxyLoader(load.LoaderPlugin): +class RedshiftProxyLoader(plugin.HoudiniLoader): """Load Redshift Proxy""" product_types = {"redshiftproxy"} diff --git a/server_addon/houdini/client/ayon_houdini/plugins/load/load_usd_layer.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_usd_layer.py index af6f470674..fb302fd943 100644 --- a/server_addon/houdini/client/ayon_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_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/server_addon/houdini/client/ayon_houdini/plugins/load/load_usd_reference.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_usd_reference.py index 41d84922f7..690f6ce187 100644 --- a/server_addon/houdini/client/ayon_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_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/server_addon/houdini/client/ayon_houdini/plugins/load/load_usd_sop.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_usd_sop.py index 99e2c4375f..347e3283de 100644 --- a/server_addon/houdini/client/ayon_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_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/server_addon/houdini/client/ayon_houdini/plugins/load/load_vdb.py b/server_addon/houdini/client/ayon_houdini/plugins/load/load_vdb.py index 13fab288fa..9014f4c5e2 100644 --- a/server_addon/houdini/client/ayon_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_houdini.api import pipeline -class VdbLoader(load.LoaderPlugin): +class VdbLoader(plugin.HoudiniLoader): """Load VDB""" product_types = {"vdbcache"} diff --git a/server_addon/houdini/client/ayon_houdini/plugins/load/show_usdview.py b/server_addon/houdini/client/ayon_houdini/plugins/load/show_usdview.py index 0158a6b963..4e18bc038a 100644 --- a/server_addon/houdini/client/ayon_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"