From e498b0aafe7ed27aca104fff520acab01ba7a880 Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Mon, 18 Mar 2024 13:57:39 +0100 Subject: [PATCH 1/4] use 'product_types' instead of 'families' in loader plugins --- client/ayon_core/pipeline/load/plugins.py | 6 +++--- client/ayon_core/pipeline/load/utils.py | 2 +- client/ayon_core/pipeline/workfile/build_workfile.py | 9 +++++---- .../pipeline/workfile/workfile_template_builder.py | 12 ++++++------ 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/client/ayon_core/pipeline/load/plugins.py b/client/ayon_core/pipeline/load/plugins.py index b5d228380a..8c015f19fe 100644 --- a/client/ayon_core/pipeline/load/plugins.py +++ b/client/ayon_core/pipeline/load/plugins.py @@ -24,7 +24,7 @@ class LoaderPlugin(list): """ - families = [] + product_types = [] representations = [] extensions = {"*"} order = 0 @@ -118,7 +118,7 @@ class LoaderPlugin(list): On override make sure it is overriden as class or static method. - This checks the version's families and the representation for the given + This checks the product type and the representation for the given loader plugin. Args: @@ -130,7 +130,7 @@ class LoaderPlugin(list): """ plugin_repre_names = cls.get_representations() - plugin_product_types = cls.families + plugin_product_types = cls.product_types if ( not plugin_repre_names or not plugin_product_types diff --git a/client/ayon_core/pipeline/load/utils.py b/client/ayon_core/pipeline/load/utils.py index 8fdaf52e27..f3d39800cd 100644 --- a/client/ayon_core/pipeline/load/utils.py +++ b/client/ayon_core/pipeline/load/utils.py @@ -735,7 +735,7 @@ def get_representation_path(representation, root=None): def is_compatible_loader(Loader, context): """Return whether a loader is compatible with a context. - This checks the version's families and the representation for the given + This checks the product type and the representation for the given Loader. Returns: diff --git a/client/ayon_core/pipeline/workfile/build_workfile.py b/client/ayon_core/pipeline/workfile/build_workfile.py index 6d7ea2c7ad..5ff8b21259 100644 --- a/client/ayon_core/pipeline/workfile/build_workfile.py +++ b/client/ayon_core/pipeline/workfile/build_workfile.py @@ -315,9 +315,9 @@ class BuildWorkfile: ).format(json.dumps(profile, indent=4))) continue - # Check families - profile_families = profile.get("product_types") - if not profile_families: + # Check product types + profile_product_types = profile.get("product_types") + if not profile_product_types: self.log.warning(( "Build profile is missing families configuration: {0}" ).format(json.dumps(profile, indent=4))) @@ -334,7 +334,8 @@ class BuildWorkfile: # Prepare lowered families and representation names profile["product_types_lowered"] = [ - fam.lower() for fam in profile_families + product_type.lower() + for product_type in profile_product_types ] profile["repre_names_lowered"] = [ name.lower() for name in profile_repre_names diff --git a/client/ayon_core/pipeline/workfile/workfile_template_builder.py b/client/ayon_core/pipeline/workfile/workfile_template_builder.py index e8b5268a6d..124952b2c0 100644 --- a/client/ayon_core/pipeline/workfile/workfile_template_builder.py +++ b/client/ayon_core/pipeline/workfile/workfile_template_builder.py @@ -1286,14 +1286,14 @@ class PlaceholderLoadMixin(object): loader_items = list(sorted(loader_items, key=lambda i: i["label"])) options = options or {} - # Get families from all loaders excluding "*" - families = set() + # Get product types from all loaders excluding "*" + product_types = set() for loader in loaders_by_name.values(): - families.update(loader.families) - families.discard("*") + product_types.update(loader.product_types) + product_types.discard("*") # Sort for readability - families = list(sorted(families)) + product_types = list(sorted(product_types)) builder_type_enum_items = [ {"label": "Current folder", "value": "context_folder"}, @@ -1333,7 +1333,7 @@ class PlaceholderLoadMixin(object): "product_type", label="Product type", default=product_type, - items=families + items=product_types ), attribute_definitions.TextDef( "representation", From e29bcbcf54be09829e9d07bd0a7ef08e0dbd7494 Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Mon, 18 Mar 2024 13:59:00 +0100 Subject: [PATCH 2/4] rename 'families' attribute to 'product_types' in loader plugins --- .../plugins/load/load_background.py | 2 +- .../aftereffects/plugins/load/load_file.py | 2 +- .../blender/plugins/load/import_workfile.py | 4 +-- .../hosts/blender/plugins/load/load_abc.py | 2 +- .../hosts/blender/plugins/load/load_action.py | 2 +- .../blender/plugins/load/load_animation.py | 2 +- .../hosts/blender/plugins/load/load_audio.py | 2 +- .../hosts/blender/plugins/load/load_blend.py | 2 +- .../blender/plugins/load/load_blendscene.py | 2 +- .../blender/plugins/load/load_camera_abc.py | 2 +- .../blender/plugins/load/load_camera_fbx.py | 2 +- .../hosts/blender/plugins/load/load_fbx.py | 2 +- .../blender/plugins/load/load_layout_json.py | 2 +- .../hosts/blender/plugins/load/load_look.py | 2 +- .../hosts/flame/plugins/load/load_clip.py | 2 +- .../flame/plugins/load/load_clip_batch.py | 2 +- .../hosts/fusion/plugins/load/actions.py | 30 ++++++++-------- .../hosts/fusion/plugins/load/load_alembic.py | 2 +- .../hosts/fusion/plugins/load/load_fbx.py | 2 +- .../fusion/plugins/load/load_sequence.py | 2 +- .../hosts/fusion/plugins/load/load_usd.py | 2 +- .../fusion/plugins/load/load_workfile.py | 2 +- client/ayon_core/hosts/harmony/api/README.md | 2 +- .../hosts/harmony/plugins/load/load_audio.py | 2 +- .../harmony/plugins/load/load_background.py | 2 +- .../plugins/load/load_imagesequence.py | 9 ++++- .../harmony/plugins/load/load_palette.py | 2 +- .../harmony/plugins/load/load_template.py | 2 +- .../plugins/load/load_template_workfile.py | 4 +-- .../hosts/hiero/plugins/load/load_clip.py | 10 ++---- .../hosts/hiero/plugins/load/load_effects.py | 2 +- .../hosts/houdini/plugins/load/actions.py | 4 +-- .../houdini/plugins/load/load_alembic.py | 2 +- .../plugins/load/load_alembic_archive.py | 2 +- .../hosts/houdini/plugins/load/load_ass.py | 2 +- .../hosts/houdini/plugins/load/load_bgeo.py | 2 +- .../hosts/houdini/plugins/load/load_camera.py | 2 +- .../hosts/houdini/plugins/load/load_fbx.py | 2 +- .../hosts/houdini/plugins/load/load_hda.py | 2 +- .../hosts/houdini/plugins/load/load_image.py | 2 +- .../plugins/load/load_redshift_proxy.py | 2 +- .../houdini/plugins/load/load_usd_layer.py | 2 +- .../plugins/load/load_usd_reference.py | 2 +- .../hosts/houdini/plugins/load/load_vdb.py | 2 +- .../houdini/plugins/load/show_usdview.py | 2 +- .../hosts/max/plugins/load/load_camera_fbx.py | 2 +- .../hosts/max/plugins/load/load_max_scene.py | 7 ++-- .../hosts/max/plugins/load/load_model.py | 2 +- .../hosts/max/plugins/load/load_model_fbx.py | 2 +- .../hosts/max/plugins/load/load_model_obj.py | 2 +- .../hosts/max/plugins/load/load_model_usd.py | 2 +- .../hosts/max/plugins/load/load_pointcache.py | 2 +- .../plugins/load/load_pointcache_ornatrix.py | 2 +- .../hosts/max/plugins/load/load_pointcloud.py | 2 +- .../max/plugins/load/load_redshift_proxy.py | 2 +- .../hosts/max/plugins/load/load_tycache.py | 2 +- .../plugins/publish/collect_frame_range.py | 11 ++++-- .../maya/plugins/load/_load_animation.py | 12 ++++--- .../hosts/maya/plugins/load/actions.py | 20 ++++++----- .../maya/plugins/load/load_arnold_standin.py | 4 ++- .../hosts/maya/plugins/load/load_assembly.py | 2 +- .../hosts/maya/plugins/load/load_audio.py | 2 +- .../hosts/maya/plugins/load/load_gpucache.py | 2 +- .../hosts/maya/plugins/load/load_image.py | 2 +- .../maya/plugins/load/load_image_plane.py | 2 +- .../hosts/maya/plugins/load/load_look.py | 2 +- .../hosts/maya/plugins/load/load_matchmove.py | 2 +- .../hosts/maya/plugins/load/load_maya_usd.py | 2 +- .../maya/plugins/load/load_multiverse_usd.py | 10 ++++-- .../plugins/load/load_multiverse_usd_over.py | 2 +- .../maya/plugins/load/load_redshift_proxy.py | 2 +- .../hosts/maya/plugins/load/load_reference.py | 34 ++++++++++--------- .../maya/plugins/load/load_rendersetup.py | 2 +- .../maya/plugins/load/load_vdb_to_arnold.py | 2 +- .../maya/plugins/load/load_vdb_to_redshift.py | 2 +- .../maya/plugins/load/load_vdb_to_vray.py | 2 +- .../hosts/maya/plugins/load/load_vrayproxy.py | 2 +- .../hosts/maya/plugins/load/load_vrayscene.py | 2 +- .../hosts/maya/plugins/load/load_xgen.py | 2 +- .../maya/plugins/load/load_yeti_cache.py | 2 +- .../hosts/maya/plugins/load/load_yeti_rig.py | 2 +- .../maya/plugins/publish/collect_animation.py | 2 +- .../hosts/nuke/plugins/load/actions.py | 22 ++++++------ .../hosts/nuke/plugins/load/load_backdrop.py | 2 +- .../nuke/plugins/load/load_camera_abc.py | 2 +- .../hosts/nuke/plugins/load/load_clip.py | 2 +- .../hosts/nuke/plugins/load/load_effects.py | 2 +- .../nuke/plugins/load/load_effects_ip.py | 2 +- .../hosts/nuke/plugins/load/load_gizmo.py | 2 +- .../hosts/nuke/plugins/load/load_gizmo_ip.py | 2 +- .../hosts/nuke/plugins/load/load_image.py | 2 +- .../hosts/nuke/plugins/load/load_matchmove.py | 2 +- .../hosts/nuke/plugins/load/load_model.py | 2 +- .../hosts/nuke/plugins/load/load_ociolook.py | 2 +- .../nuke/plugins/load/load_script_precomp.py | 2 +- .../nuke/plugins/publish/collect_backdrop.py | 2 +- .../nuke/plugins/publish/collect_gizmo.py | 2 +- .../photoshop/plugins/load/load_image.py | 2 +- .../plugins/load/load_image_from_sequence.py | 2 +- .../photoshop/plugins/load/load_reference.py | 2 +- .../hosts/resolve/plugins/load/load_clip.py | 2 +- .../plugins/publish/extract_workfile.py | 2 +- .../plugins/load/load_mesh.py | 2 +- .../hosts/tvpaint/plugins/load/load_image.py | 2 +- .../plugins/load/load_reference_image.py | 2 +- .../hosts/tvpaint/plugins/load/load_sound.py | 2 +- .../tvpaint/plugins/load/load_workfile.py | 2 +- .../plugins/load/load_alembic_animation.py | 2 +- .../unreal/plugins/load/load_animation.py | 2 +- .../hosts/unreal/plugins/load/load_camera.py | 2 +- .../plugins/load/load_geometrycache_abc.py | 2 +- .../hosts/unreal/plugins/load/load_layout.py | 2 +- .../plugins/load/load_layout_existing.py | 2 +- .../plugins/load/load_skeletalmesh_abc.py | 2 +- .../plugins/load/load_skeletalmesh_fbx.py | 2 +- .../plugins/load/load_staticmesh_abc.py | 2 +- .../plugins/load/load_staticmesh_fbx.py | 2 +- .../hosts/unreal/plugins/load/load_uasset.py | 4 +-- .../unreal/plugins/load/load_yeticache.py | 2 +- client/ayon_core/plugins/load/copy_file.py | 2 +- .../ayon_core/plugins/load/copy_file_path.py | 2 +- .../plugins/load/delete_old_versions.py | 2 +- client/ayon_core/plugins/load/delivery.py | 2 +- client/ayon_core/plugins/load/open_djv.py | 2 +- client/ayon_core/plugins/load/open_file.py | 2 +- .../ayon_core/plugins/load/push_to_library.py | 2 +- 126 files changed, 216 insertions(+), 191 deletions(-) diff --git a/client/ayon_core/hosts/aftereffects/plugins/load/load_background.py b/client/ayon_core/hosts/aftereffects/plugins/load/load_background.py index e45de5524e..9c43dc0e77 100644 --- a/client/ayon_core/hosts/aftereffects/plugins/load/load_background.py +++ b/client/ayon_core/hosts/aftereffects/plugins/load/load_background.py @@ -20,7 +20,7 @@ class BackgroundLoader(api.AfterEffectsLoader): metadata """ label = "Load JSON Background" - families = ["background"] + product_types = ["background"] representations = ["json"] def load(self, context, name=None, namespace=None, data=None): diff --git a/client/ayon_core/hosts/aftereffects/plugins/load/load_file.py b/client/ayon_core/hosts/aftereffects/plugins/load/load_file.py index 29536945dd..2d9ba1b677 100644 --- a/client/ayon_core/hosts/aftereffects/plugins/load/load_file.py +++ b/client/ayon_core/hosts/aftereffects/plugins/load/load_file.py @@ -12,7 +12,7 @@ class FileLoader(api.AfterEffectsLoader): """ label = "Load file" - families = ["image", + product_types = ["image", "plate", "render", "prerender", diff --git a/client/ayon_core/hosts/blender/plugins/load/import_workfile.py b/client/ayon_core/hosts/blender/plugins/load/import_workfile.py index 7144c132e8..f64437e753 100644 --- a/client/ayon_core/hosts/blender/plugins/load/import_workfile.py +++ b/client/ayon_core/hosts/blender/plugins/load/import_workfile.py @@ -44,7 +44,7 @@ class AppendBlendLoader(plugin.AssetLoader): """ representations = ["blend"] - families = ["workfile"] + product_types = ["workfile"] label = "Append Workfile" order = 9 @@ -69,7 +69,7 @@ class ImportBlendLoader(plugin.AssetLoader): """ representations = ["blend"] - families = ["workfile"] + product_types = ["workfile"] label = "Import Workfile" order = 9 diff --git a/client/ayon_core/hosts/blender/plugins/load/load_abc.py b/client/ayon_core/hosts/blender/plugins/load/load_abc.py index 7ae9936ed5..a6e834e20a 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_abc.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_abc.py @@ -26,7 +26,7 @@ class CacheModelLoader(plugin.AssetLoader): Note: At least for now it only supports Alembic files. """ - families = ["model", "pointcache", "animation"] + product_types = ["model", "pointcache", "animation"] representations = ["abc"] label = "Load Alembic" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_action.py b/client/ayon_core/hosts/blender/plugins/load/load_action.py index a079387b9f..446fa20fec 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_action.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_action.py @@ -24,7 +24,7 @@ class BlendActionLoader(plugin.AssetLoader): moment. """ - families = ["action"] + product_types = ["action"] representations = ["blend"] label = "Link Action" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_animation.py b/client/ayon_core/hosts/blender/plugins/load/load_animation.py index b805790c28..5da270f9e4 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_animation.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_animation.py @@ -16,7 +16,7 @@ class BlendAnimationLoader(plugin.AssetLoader): moment. """ - families = ["animation"] + product_types = ["animation"] representations = ["blend"] label = "Link Animation" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_audio.py b/client/ayon_core/hosts/blender/plugins/load/load_audio.py index de74bf95d3..6e72c58bc9 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_audio.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_audio.py @@ -20,7 +20,7 @@ from ayon_core.hosts.blender.api.pipeline import ( class AudioLoader(plugin.AssetLoader): """Load audio in Blender.""" - families = ["audio"] + product_types = ["audio"] representations = ["wav"] label = "Load Audio" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_blend.py b/client/ayon_core/hosts/blender/plugins/load/load_blend.py index 465485ba86..8cc246f46e 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_blend.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_blend.py @@ -20,7 +20,7 @@ from ayon_core.hosts.blender.api.pipeline import ( class BlendLoader(plugin.AssetLoader): """Load assets from a .blend file.""" - families = ["model", "rig", "layout", "camera"] + product_types = ["model", "rig", "layout", "camera"] representations = ["blend"] label = "Append Blend" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_blendscene.py b/client/ayon_core/hosts/blender/plugins/load/load_blendscene.py index 2c93b739f8..41964a906a 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_blendscene.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_blendscene.py @@ -18,7 +18,7 @@ from ayon_core.hosts.blender.api.pipeline import ( class BlendSceneLoader(plugin.AssetLoader): """Load assets from a .blend file.""" - families = ["blendScene"] + product_types = ["blendScene"] representations = ["blend"] label = "Append Blend" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_camera_abc.py b/client/ayon_core/hosts/blender/plugins/load/load_camera_abc.py index 98a4e2c2ec..4c8bfba9a5 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_camera_abc.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_camera_abc.py @@ -23,7 +23,7 @@ class AbcCameraLoader(plugin.AssetLoader): Stores the imported asset in an empty named after the asset. """ - families = ["camera"] + product_types = ["camera"] representations = ["abc"] label = "Load Camera (ABC)" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_camera_fbx.py b/client/ayon_core/hosts/blender/plugins/load/load_camera_fbx.py index f31e53270e..d14f145f81 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_camera_fbx.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_camera_fbx.py @@ -23,7 +23,7 @@ class FbxCameraLoader(plugin.AssetLoader): Stores the imported asset in an empty named after the asset. """ - families = ["camera"] + product_types = ["camera"] representations = ["fbx"] label = "Load Camera (FBX)" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_fbx.py b/client/ayon_core/hosts/blender/plugins/load/load_fbx.py index 1eaab4e7b7..c330dca160 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_fbx.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_fbx.py @@ -23,7 +23,7 @@ class FbxModelLoader(plugin.AssetLoader): Stores the imported asset in an empty named after the asset. """ - families = ["model", "rig"] + product_types = ["model", "rig"] representations = ["fbx"] label = "Load FBX" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_layout_json.py b/client/ayon_core/hosts/blender/plugins/load/load_layout_json.py index f3d14ac018..ccd0ddb432 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_layout_json.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_layout_json.py @@ -26,7 +26,7 @@ from ayon_core.hosts.blender.api import plugin class JsonLayoutLoader(plugin.AssetLoader): """Load layout published from Unreal.""" - families = ["layout"] + product_types = ["layout"] representations = ["json"] label = "Load Layout" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_look.py b/client/ayon_core/hosts/blender/plugins/load/load_look.py index 7cefbd5148..b3c0d705ce 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_look.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_look.py @@ -23,7 +23,7 @@ class BlendLookLoader(plugin.AssetLoader): contains the model. There is no further need to 'containerise' it. """ - families = ["look"] + product_types = ["look"] representations = ["json"] label = "Load Look" diff --git a/client/ayon_core/hosts/flame/plugins/load/load_clip.py b/client/ayon_core/hosts/flame/plugins/load/load_clip.py index faa2b7145d..014833db1b 100644 --- a/client/ayon_core/hosts/flame/plugins/load/load_clip.py +++ b/client/ayon_core/hosts/flame/plugins/load/load_clip.py @@ -17,7 +17,7 @@ class LoadClip(opfapi.ClipLoader): during conforming to project """ - families = ["render2d", "source", "plate", "render", "review"] + product_types = ["render2d", "source", "plate", "render", "review"] representations = ["*"] extensions = set( ext.lstrip(".") for ext in IMAGE_EXTENSIONS.union(VIDEO_EXTENSIONS) diff --git a/client/ayon_core/hosts/flame/plugins/load/load_clip_batch.py b/client/ayon_core/hosts/flame/plugins/load/load_clip_batch.py index 7eaaa308df..4884eb643f 100644 --- a/client/ayon_core/hosts/flame/plugins/load/load_clip_batch.py +++ b/client/ayon_core/hosts/flame/plugins/load/load_clip_batch.py @@ -16,7 +16,7 @@ class LoadClipBatch(opfapi.ClipLoader): during conforming to project """ - families = ["render2d", "source", "plate", "render", "review"] + product_types = ["render2d", "source", "plate", "render", "review"] representations = ["*"] extensions = set( ext.lstrip(".") for ext in IMAGE_EXTENSIONS.union(VIDEO_EXTENSIONS) diff --git a/client/ayon_core/hosts/fusion/plugins/load/actions.py b/client/ayon_core/hosts/fusion/plugins/load/actions.py index 2fac884b2e..38413a3e41 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/actions.py +++ b/client/ayon_core/hosts/fusion/plugins/load/actions.py @@ -8,13 +8,14 @@ from ayon_core.pipeline import load class FusionSetFrameRangeLoader(load.LoaderPlugin): """Set frame range excluding pre- and post-handles""" - families = ["animation", - "camera", - "imagesequence", - "render", - "yeticache", - "pointcache", - "render"] + product_types = [ + "animation", + "camera", + "imagesequence", + "render", + "yeticache", + "pointcache", + "render"] representations = ["*"] extensions = {"*"} @@ -43,13 +44,14 @@ class FusionSetFrameRangeLoader(load.LoaderPlugin): class FusionSetFrameRangeWithHandlesLoader(load.LoaderPlugin): """Set frame range including pre- and post-handles""" - families = ["animation", - "camera", - "imagesequence", - "render", - "yeticache", - "pointcache", - "render"] + product_types = [ + "animation", + "camera", + "imagesequence", + "render", + "yeticache", + "pointcache", + "render"] representations = ["*"] label = "Set frame range (with handles)" diff --git a/client/ayon_core/hosts/fusion/plugins/load/load_alembic.py b/client/ayon_core/hosts/fusion/plugins/load/load_alembic.py index d78a8b0ba0..a81e09cc7f 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/load_alembic.py +++ b/client/ayon_core/hosts/fusion/plugins/load/load_alembic.py @@ -12,7 +12,7 @@ from ayon_core.hosts.fusion.api import ( class FusionLoadAlembicMesh(load.LoaderPlugin): """Load Alembic mesh into Fusion""" - families = ["pointcache", "model"] + product_types = ["pointcache", "model"] representations = ["*"] extensions = {"abc"} diff --git a/client/ayon_core/hosts/fusion/plugins/load/load_fbx.py b/client/ayon_core/hosts/fusion/plugins/load/load_fbx.py index d2e1885b0c..33d9dd48f7 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/load_fbx.py +++ b/client/ayon_core/hosts/fusion/plugins/load/load_fbx.py @@ -12,7 +12,7 @@ from ayon_core.hosts.fusion.api import ( class FusionLoadFBXMesh(load.LoaderPlugin): """Load FBX mesh into Fusion""" - families = ["*"] + product_types = ["*"] representations = ["*"] extensions = { "3ds", diff --git a/client/ayon_core/hosts/fusion/plugins/load/load_sequence.py b/client/ayon_core/hosts/fusion/plugins/load/load_sequence.py index dfd7e4231b..d2fe3b2bf0 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/load_sequence.py +++ b/client/ayon_core/hosts/fusion/plugins/load/load_sequence.py @@ -129,7 +129,7 @@ def loader_shift(loader, frame, relative=True): class FusionLoadSequence(load.LoaderPlugin): """Load image sequence into Fusion""" - families = [ + product_types = [ "imagesequence", "review", "render", diff --git a/client/ayon_core/hosts/fusion/plugins/load/load_usd.py b/client/ayon_core/hosts/fusion/plugins/load/load_usd.py index a609af6197..4648ff2ceb 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/load_usd.py +++ b/client/ayon_core/hosts/fusion/plugins/load/load_usd.py @@ -16,7 +16,7 @@ class FusionLoadUSD(load.LoaderPlugin): Support for USD was added since Fusion 18.5 """ - families = ["*"] + product_types = ["*"] representations = ["*"] extensions = {"usd", "usda", "usdz"} diff --git a/client/ayon_core/hosts/fusion/plugins/load/load_workfile.py b/client/ayon_core/hosts/fusion/plugins/load/load_workfile.py index d50fded502..b0ae358355 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/load_workfile.py +++ b/client/ayon_core/hosts/fusion/plugins/load/load_workfile.py @@ -14,7 +14,7 @@ from ayon_core.hosts.fusion.api import ( class FusionLoadWorkfile(load.LoaderPlugin): """Load the content of a workfile into Fusion""" - families = ["workfile"] + product_types = ["workfile"] representations = ["*"] extensions = {"comp"} diff --git a/client/ayon_core/hosts/harmony/api/README.md b/client/ayon_core/hosts/harmony/api/README.md index b9c21e1882..4b9415357f 100644 --- a/client/ayon_core/hosts/harmony/api/README.md +++ b/client/ayon_core/hosts/harmony/api/README.md @@ -582,7 +582,7 @@ class ImageSequenceLoader(load.LoaderPlugin): """Load images Stores the imported asset in a container named after the asset. """ - families = ["mindbender.imagesequence"] + product_types = ["mindbender.imagesequence"] representations = ["*"] def load(self, context, name=None, namespace=None, data=None): diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_audio.py b/client/ayon_core/hosts/harmony/plugins/load/load_audio.py index 0f8aab6d57..bc1e64e48b 100644 --- a/client/ayon_core/hosts/harmony/plugins/load/load_audio.py +++ b/client/ayon_core/hosts/harmony/plugins/load/load_audio.py @@ -35,7 +35,7 @@ function %s(args) class ImportAudioLoader(load.LoaderPlugin): """Import audio.""" - families = ["shot", "audio"] + product_types = ["shot", "audio"] representations = ["wav"] label = "Import Audio" diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_background.py b/client/ayon_core/hosts/harmony/plugins/load/load_background.py index 72b26c826a..13b06a226c 100644 --- a/client/ayon_core/hosts/harmony/plugins/load/load_background.py +++ b/client/ayon_core/hosts/harmony/plugins/load/load_background.py @@ -233,7 +233,7 @@ class BackgroundLoader(load.LoaderPlugin): """Load images Stores the imported asset in a container named after the asset. """ - families = ["background"] + product_types = ["background"] representations = ["json"] def load(self, context, name=None, namespace=None, data=None): diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_imagesequence.py b/client/ayon_core/hosts/harmony/plugins/load/load_imagesequence.py index 0fbcd03c92..33f19cefcd 100644 --- a/client/ayon_core/hosts/harmony/plugins/load/load_imagesequence.py +++ b/client/ayon_core/hosts/harmony/plugins/load/load_imagesequence.py @@ -20,7 +20,14 @@ class ImageSequenceLoader(load.LoaderPlugin): Stores the imported asset in a container named after the asset. """ - families = ["shot", "render", "image", "plate", "reference", "review"] + product_types = [ + "shot", + "render", + "image", + "plate", + "reference", + "review", + ] representations = ["*"] extensions = {"jpeg", "png", "jpg"} diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_palette.py b/client/ayon_core/hosts/harmony/plugins/load/load_palette.py index 79ae2fb154..cc95b06bd6 100644 --- a/client/ayon_core/hosts/harmony/plugins/load/load_palette.py +++ b/client/ayon_core/hosts/harmony/plugins/load/load_palette.py @@ -11,7 +11,7 @@ import ayon_core.hosts.harmony.api as harmony class ImportPaletteLoader(load.LoaderPlugin): """Import palettes.""" - families = ["palette", "harmony.palette"] + product_types = ["palette", "harmony.palette"] representations = ["plt"] label = "Import Palette" diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_template.py b/client/ayon_core/hosts/harmony/plugins/load/load_template.py index 2d9af362eb..21b51bce48 100644 --- a/client/ayon_core/hosts/harmony/plugins/load/load_template.py +++ b/client/ayon_core/hosts/harmony/plugins/load/load_template.py @@ -23,7 +23,7 @@ class TemplateLoader(load.LoaderPlugin): """ - families = ["template", "workfile"] + product_types = ["template", "workfile"] representations = ["*"] label = "Load Template" icon = "gift" diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_template_workfile.py b/client/ayon_core/hosts/harmony/plugins/load/load_template_workfile.py index 59d66b7cfc..ec58d61ef0 100644 --- a/client/ayon_core/hosts/harmony/plugins/load/load_template_workfile.py +++ b/client/ayon_core/hosts/harmony/plugins/load/load_template_workfile.py @@ -13,7 +13,7 @@ import ayon_core.hosts.harmony.api as harmony class ImportTemplateLoader(load.LoaderPlugin): """Import templates.""" - families = ["harmony.template", "workfile"] + product_types = ["harmony.template", "workfile"] representations = ["*"] label = "Import Template" @@ -60,6 +60,6 @@ class ImportTemplateLoader(load.LoaderPlugin): class ImportWorkfileLoader(ImportTemplateLoader): """Import workfiles.""" - families = ["workfile"] + product_types = ["workfile"] representations = ["zip"] label = "Import Workfile" diff --git a/client/ayon_core/hosts/hiero/plugins/load/load_clip.py b/client/ayon_core/hosts/hiero/plugins/load/load_clip.py index c2ff907650..58da259429 100644 --- a/client/ayon_core/hosts/hiero/plugins/load/load_clip.py +++ b/client/ayon_core/hosts/hiero/plugins/load/load_clip.py @@ -15,7 +15,7 @@ class LoadClip(phiero.SequenceLoader): during conforming to project """ - families = ["render2d", "source", "plate", "render", "review"] + product_types = ["render2d", "source", "plate", "render", "review"] representations = ["*"] extensions = set( ext.lstrip(".") for ext in IMAGE_EXTENSIONS.union(VIDEO_EXTENSIONS) @@ -59,13 +59,7 @@ class LoadClip(phiero.SequenceLoader): if option == "representations": continue - if option == "product_types": - # TODO remove the key conversion when loaders can filter by - # product types - # convert 'product_types' to 'families' - option = "families" - - elif option == "clip_name_template": + if option == "clip_name_template": # TODO remove the formatting replacement value = ( value diff --git a/client/ayon_core/hosts/hiero/plugins/load/load_effects.py b/client/ayon_core/hosts/hiero/plugins/load/load_effects.py index 521a7c4494..b1ad48af75 100644 --- a/client/ayon_core/hosts/hiero/plugins/load/load_effects.py +++ b/client/ayon_core/hosts/hiero/plugins/load/load_effects.py @@ -14,7 +14,7 @@ from ayon_core.lib import Logger class LoadEffects(load.LoaderPlugin): """Loading colorspace soft effect exported from nukestudio""" - families = ["effect"] + product_types = ["effect"] representations = ["*"] extension = {"json"} diff --git a/client/ayon_core/hosts/houdini/plugins/load/actions.py b/client/ayon_core/hosts/houdini/plugins/load/actions.py index 049869be25..0b5665adb4 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/actions.py +++ b/client/ayon_core/hosts/houdini/plugins/load/actions.py @@ -8,7 +8,7 @@ from ayon_core.pipeline import load class SetFrameRangeLoader(load.LoaderPlugin): """Set frame range excluding pre- and post-handles""" - families = [ + product_types = [ "animation", "camera", "pointcache", @@ -45,7 +45,7 @@ class SetFrameRangeLoader(load.LoaderPlugin): class SetFrameRangeWithHandlesLoader(load.LoaderPlugin): """Set frame range including pre- and post-handles""" - families = [ + product_types = [ "animation", "camera", "pointcache", diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_alembic.py b/client/ayon_core/hosts/houdini/plugins/load/load_alembic.py index 5235923b4c..681fecaba9 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_alembic.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_alembic.py @@ -9,7 +9,7 @@ from ayon_core.hosts.houdini.api import pipeline class AbcLoader(load.LoaderPlugin): """Load Alembic""" - families = ["model", "animation", "pointcache", "gpuCache"] + product_types = ["model", "animation", "pointcache", "gpuCache"] label = "Load Alembic" representations = ["abc"] order = -10 diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_alembic_archive.py b/client/ayon_core/hosts/houdini/plugins/load/load_alembic_archive.py index 6585df3f17..3ee0a936ca 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_alembic_archive.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_alembic_archive.py @@ -9,7 +9,7 @@ from ayon_core.hosts.houdini.api import pipeline class AbcArchiveLoader(load.LoaderPlugin): """Load Alembic as full geometry network hierarchy """ - families = ["model", "animation", "pointcache", "gpuCache"] + product_types = ["model", "animation", "pointcache", "gpuCache"] label = "Load Alembic as Archive" representations = ["abc"] order = -5 diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_ass.py b/client/ayon_core/hosts/houdini/plugins/load/load_ass.py index 628b5b2f34..9c5c6e18d2 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_ass.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_ass.py @@ -11,7 +11,7 @@ from ayon_core.hosts.houdini.api import pipeline class AssLoader(load.LoaderPlugin): """Load .ass with Arnold Procedural""" - families = ["ass"] + product_types = ["ass"] label = "Load Arnold Procedural" representations = ["ass"] order = -10 diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_bgeo.py b/client/ayon_core/hosts/houdini/plugins/load/load_bgeo.py index f02067db75..4e3fd36b5f 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_bgeo.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_bgeo.py @@ -13,7 +13,7 @@ class BgeoLoader(load.LoaderPlugin): """Load bgeo files to Houdini.""" label = "Load bgeo" - families = ["model", "pointcache", "bgeo"] + product_types = ["model", "pointcache", "bgeo"] representations = [ "bgeo", "bgeosc", "bgeogz", "bgeo.sc", "bgeo.gz", "bgeo.lzma", "bgeo.bz2"] diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_camera.py b/client/ayon_core/hosts/houdini/plugins/load/load_camera.py index 50fc7f4eb6..2ab4e314b5 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_camera.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_camera.py @@ -87,7 +87,7 @@ def transfer_non_default_values(src, dest, ignore=None): class CameraLoader(load.LoaderPlugin): """Load camera from an Alembic file""" - families = ["camera"] + product_types = ["camera"] label = "Load Camera (abc)" representations = ["abc"] order = -10 diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_fbx.py b/client/ayon_core/hosts/houdini/plugins/load/load_fbx.py index 2ebbed5e12..9b801e69eb 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_fbx.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_fbx.py @@ -16,7 +16,7 @@ class FbxLoader(load.LoaderPlugin): order = -10 - families = ["*"] + product_types = ["*"] representations = ["*"] extensions = {"fbx"} diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_hda.py b/client/ayon_core/hosts/houdini/plugins/load/load_hda.py index 07949fd177..b4d38665c1 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_hda.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_hda.py @@ -10,7 +10,7 @@ from ayon_core.hosts.houdini.api import pipeline class HdaLoader(load.LoaderPlugin): """Load Houdini Digital Asset file.""" - families = ["hda"] + product_types = ["hda"] label = "Load Hda" representations = ["hda"] order = -10 diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_image.py b/client/ayon_core/hosts/houdini/plugins/load/load_image.py index cc9dcc30c8..148d174652 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_image.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_image.py @@ -44,7 +44,7 @@ def get_image_avalon_container(): class ImageLoader(load.LoaderPlugin): """Load images into COP2""" - families = ["imagesequence"] + product_types = ["imagesequence"] label = "Load Image (COP2)" representations = ["*"] order = -10 diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_redshift_proxy.py b/client/ayon_core/hosts/houdini/plugins/load/load_redshift_proxy.py index 86c7ae0272..dc353ac1b5 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_redshift_proxy.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_redshift_proxy.py @@ -13,7 +13,7 @@ import hou class RedshiftProxyLoader(load.LoaderPlugin): """Load Redshift Proxy""" - families = ["redshiftproxy"] + product_types = ["redshiftproxy"] label = "Load Redshift Proxy" representations = ["rs"] order = -10 diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_usd_layer.py b/client/ayon_core/hosts/houdini/plugins/load/load_usd_layer.py index 6ee21f87ec..6169c40f92 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_usd_layer.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_usd_layer.py @@ -9,7 +9,7 @@ from ayon_core.hosts.houdini.api import lib class USDSublayerLoader(load.LoaderPlugin): """Sublayer USD file in Solaris""" - families = [ + product_types = [ "usd", "usdCamera", ] diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_usd_reference.py b/client/ayon_core/hosts/houdini/plugins/load/load_usd_reference.py index d0421083c6..5b58024c80 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_usd_reference.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_usd_reference.py @@ -9,7 +9,7 @@ from ayon_core.hosts.houdini.api import lib class USDReferenceLoader(load.LoaderPlugin): """Reference USD file in Solaris""" - families = [ + product_types = [ "usd", "usdCamera", ] diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_vdb.py b/client/ayon_core/hosts/houdini/plugins/load/load_vdb.py index 7b2803ab5d..79797f6b66 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_vdb.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_vdb.py @@ -11,7 +11,7 @@ from ayon_core.hosts.houdini.api import pipeline class VdbLoader(load.LoaderPlugin): """Load VDB""" - families = ["vdbcache"] + product_types = ["vdbcache"] label = "Load VDB" representations = ["vdb"] order = -10 diff --git a/client/ayon_core/hosts/houdini/plugins/load/show_usdview.py b/client/ayon_core/hosts/houdini/plugins/load/show_usdview.py index 2f86f23b68..8b668d004f 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/show_usdview.py +++ b/client/ayon_core/hosts/houdini/plugins/load/show_usdview.py @@ -11,7 +11,7 @@ class ShowInUsdview(load.LoaderPlugin): label = "Show in usdview" representations = ["*"] - families = ["*"] + product_types = ["*"] extensions = {"usd", "usda", "usdlc", "usdnc", "abc"} order = 15 diff --git a/client/ayon_core/hosts/max/plugins/load/load_camera_fbx.py b/client/ayon_core/hosts/max/plugins/load/load_camera_fbx.py index 664904eb4e..e82c6061d9 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_camera_fbx.py +++ b/client/ayon_core/hosts/max/plugins/load/load_camera_fbx.py @@ -18,7 +18,7 @@ from ayon_core.pipeline import get_representation_path, load class FbxLoader(load.LoaderPlugin): """Fbx Loader.""" - families = ["camera"] + product_types = ["camera"] representations = ["fbx"] order = -9 icon = "code-fork" diff --git a/client/ayon_core/hosts/max/plugins/load/load_max_scene.py b/client/ayon_core/hosts/max/plugins/load/load_max_scene.py index 0090b2256a..7e6a126426 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_max_scene.py +++ b/client/ayon_core/hosts/max/plugins/load/load_max_scene.py @@ -72,9 +72,10 @@ class MaterialDupOptionsWindow(QtWidgets.QDialog): class MaxSceneLoader(load.LoaderPlugin): """Max Scene Loader.""" - families = ["camera", - "maxScene", - "model"] + product_types = [ + "camera", + "maxScene", + "model"] representations = ["max"] order = -8 diff --git a/client/ayon_core/hosts/max/plugins/load/load_model.py b/client/ayon_core/hosts/max/plugins/load/load_model.py index 0c39c1ba0d..4090692afc 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_model.py +++ b/client/ayon_core/hosts/max/plugins/load/load_model.py @@ -14,7 +14,7 @@ from ayon_core.hosts.max.api.lib import ( class ModelAbcLoader(load.LoaderPlugin): """Loading model with the Alembic loader.""" - families = ["model"] + product_types = ["model"] label = "Load Model with Alembic" representations = ["abc"] order = -10 diff --git a/client/ayon_core/hosts/max/plugins/load/load_model_fbx.py b/client/ayon_core/hosts/max/plugins/load/load_model_fbx.py index 7f5f1255ec..1ab59c6cc8 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_model_fbx.py +++ b/client/ayon_core/hosts/max/plugins/load/load_model_fbx.py @@ -17,7 +17,7 @@ from ayon_core.hosts.max.api.lib import maintained_selection class FbxModelLoader(load.LoaderPlugin): """Fbx Model Loader.""" - families = ["model"] + product_types = ["model"] representations = ["fbx"] order = -9 icon = "code-fork" diff --git a/client/ayon_core/hosts/max/plugins/load/load_model_obj.py b/client/ayon_core/hosts/max/plugins/load/load_model_obj.py index 4b8d260921..120c483a7d 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_model_obj.py +++ b/client/ayon_core/hosts/max/plugins/load/load_model_obj.py @@ -20,7 +20,7 @@ from ayon_core.pipeline import get_representation_path, load class ObjLoader(load.LoaderPlugin): """Obj Loader.""" - families = ["model"] + product_types = ["model"] representations = ["obj"] order = -9 icon = "code-fork" diff --git a/client/ayon_core/hosts/max/plugins/load/load_model_usd.py b/client/ayon_core/hosts/max/plugins/load/load_model_usd.py index 6bcff2b6a5..9cc2375cf2 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_model_usd.py +++ b/client/ayon_core/hosts/max/plugins/load/load_model_usd.py @@ -22,7 +22,7 @@ from ayon_core.pipeline import get_representation_path, load class ModelUSDLoader(load.LoaderPlugin): """Loading model with the USD loader.""" - families = ["model"] + product_types = ["model"] label = "Load Model(USD)" representations = ["usda"] order = -10 diff --git a/client/ayon_core/hosts/max/plugins/load/load_pointcache.py b/client/ayon_core/hosts/max/plugins/load/load_pointcache.py index 613d240447..0a1d6cbd85 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_pointcache.py +++ b/client/ayon_core/hosts/max/plugins/load/load_pointcache.py @@ -18,7 +18,7 @@ from ayon_core.hosts.max.api.pipeline import ( class AbcLoader(load.LoaderPlugin): """Alembic loader.""" - families = ["camera", "animation", "pointcache"] + product_types = ["camera", "animation", "pointcache"] label = "Load Alembic" representations = ["abc"] order = -10 diff --git a/client/ayon_core/hosts/max/plugins/load/load_pointcache_ornatrix.py b/client/ayon_core/hosts/max/plugins/load/load_pointcache_ornatrix.py index 7cf7d162c1..7e27afd7e8 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_pointcache_ornatrix.py +++ b/client/ayon_core/hosts/max/plugins/load/load_pointcache_ornatrix.py @@ -21,7 +21,7 @@ from pymxs import runtime as rt class OxAbcLoader(load.LoaderPlugin): """Ornatrix Alembic loader.""" - families = ["camera", "animation", "pointcache"] + product_types = ["camera", "animation", "pointcache"] label = "Load Alembic with Ornatrix" representations = ["abc"] order = -10 diff --git a/client/ayon_core/hosts/max/plugins/load/load_pointcloud.py b/client/ayon_core/hosts/max/plugins/load/load_pointcloud.py index 6b9e5d6fb1..6246979de1 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_pointcloud.py +++ b/client/ayon_core/hosts/max/plugins/load/load_pointcloud.py @@ -17,7 +17,7 @@ from ayon_core.pipeline import get_representation_path, load class PointCloudLoader(load.LoaderPlugin): """Point Cloud Loader.""" - families = ["pointcloud"] + product_types = ["pointcloud"] representations = ["prt"] order = -8 icon = "code-fork" diff --git a/client/ayon_core/hosts/max/plugins/load/load_redshift_proxy.py b/client/ayon_core/hosts/max/plugins/load/load_redshift_proxy.py index 40c7701797..34732a9ef0 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_redshift_proxy.py +++ b/client/ayon_core/hosts/max/plugins/load/load_redshift_proxy.py @@ -23,7 +23,7 @@ class RedshiftProxyLoader(load.LoaderPlugin): """Load rs files with Redshift Proxy""" label = "Load Redshift Proxy" - families = ["redshiftproxy"] + product_types = ["redshiftproxy"] representations = ["rs"] order = -9 icon = "code-fork" diff --git a/client/ayon_core/hosts/max/plugins/load/load_tycache.py b/client/ayon_core/hosts/max/plugins/load/load_tycache.py index 24cb762b2d..3460b913ed 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_tycache.py +++ b/client/ayon_core/hosts/max/plugins/load/load_tycache.py @@ -16,7 +16,7 @@ from ayon_core.pipeline import get_representation_path, load class TyCacheLoader(load.LoaderPlugin): """TyCache Loader.""" - families = ["tycache"] + product_types = ["tycache"] representations = ["tyc"] order = -8 icon = "code-fork" diff --git a/client/ayon_core/hosts/max/plugins/publish/collect_frame_range.py b/client/ayon_core/hosts/max/plugins/publish/collect_frame_range.py index 6fc8de90d1..a70665ce3c 100644 --- a/client/ayon_core/hosts/max/plugins/publish/collect_frame_range.py +++ b/client/ayon_core/hosts/max/plugins/publish/collect_frame_range.py @@ -9,9 +9,14 @@ class CollectFrameRange(pyblish.api.InstancePlugin): order = pyblish.api.CollectorOrder + 0.01 label = "Collect Frame Range" hosts = ['max'] - families = ["camera", "maxrender", - "pointcache", "pointcloud", - "review", "redshiftproxy"] + product_types = [ + "camera", + "maxrender", + "pointcache", + "pointcloud", + "review", + "redshiftproxy" + ] def process(self, instance): if instance.data["productType"] == "maxrender": diff --git a/client/ayon_core/hosts/maya/plugins/load/_load_animation.py b/client/ayon_core/hosts/maya/plugins/load/_load_animation.py index e6dc1e520a..b9033bf2e4 100644 --- a/client/ayon_core/hosts/maya/plugins/load/_load_animation.py +++ b/client/ayon_core/hosts/maya/plugins/load/_load_animation.py @@ -46,9 +46,10 @@ def _process_reference(file_url, name, namespace, options): class AbcLoader(ayon_core.hosts.maya.api.plugin.ReferenceLoader): """Loader to reference an Alembic file""" - families = ["animation", - "camera", - "pointcache"] + product_types = [ + "animation", + "camera", + "pointcache"] representations = ["abc"] label = "Reference animation" @@ -75,8 +76,9 @@ class AbcLoader(ayon_core.hosts.maya.api.plugin.ReferenceLoader): class FbxLoader(ayon_core.hosts.maya.api.plugin.ReferenceLoader): """Loader to reference an Fbx files""" - families = ["animation", - "camera"] + product_types = [ + "animation", + "camera"] representations = ["fbx"] label = "Reference animation" diff --git a/client/ayon_core/hosts/maya/plugins/load/actions.py b/client/ayon_core/hosts/maya/plugins/load/actions.py index 5f4095eeec..0cf031d012 100644 --- a/client/ayon_core/hosts/maya/plugins/load/actions.py +++ b/client/ayon_core/hosts/maya/plugins/load/actions.py @@ -13,10 +13,11 @@ import ayon_core.hosts.maya.api.plugin class SetFrameRangeLoader(load.LoaderPlugin): """Set frame range excluding pre- and post-handles""" - families = ["animation", - "camera", - "proxyAbc", - "pointcache"] + product_types = [ + "animation", + "camera", + "proxyAbc", + "pointcache"] representations = ["abc"] label = "Set frame range" @@ -46,10 +47,11 @@ class SetFrameRangeLoader(load.LoaderPlugin): class SetFrameRangeWithHandlesLoader(load.LoaderPlugin): """Set frame range including pre- and post-handles""" - families = ["animation", - "camera", - "proxyAbc", - "pointcache"] + product_types = [ + "animation", + "camera", + "proxyAbc", + "pointcache"] representations = ["abc"] label = "Set frame range (with handles)" @@ -91,7 +93,7 @@ class ImportMayaLoader(ayon_core.hosts.maya.api.plugin.Loader): """ representations = ["ma", "mb", "obj"] - families = [ + product_types = [ "model", "pointcache", "proxyAbc", diff --git a/client/ayon_core/hosts/maya/plugins/load/load_arnold_standin.py b/client/ayon_core/hosts/maya/plugins/load/load_arnold_standin.py index 0219a72515..04445e68cf 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_arnold_standin.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_arnold_standin.py @@ -29,7 +29,9 @@ def is_sequence(files): class ArnoldStandinLoader(load.LoaderPlugin): """Load as Arnold standin""" - families = ["ass", "animation", "model", "proxyAbc", "pointcache", "usd"] + product_types = [ + "ass", "animation", "model", "proxyAbc", "pointcache", "usd" + ] representations = ["ass", "abc", "usda", "usdc", "usd"] label = "Load as Arnold standin" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_assembly.py b/client/ayon_core/hosts/maya/plugins/load/load_assembly.py index 7ab7fc4207..1db253822e 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_assembly.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_assembly.py @@ -12,7 +12,7 @@ from ayon_core.hosts.maya.api import setdress class AssemblyLoader(load.LoaderPlugin): - families = ["assembly"] + product_types = ["assembly"] representations = ["json"] label = "Load Set Dress" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_audio.py b/client/ayon_core/hosts/maya/plugins/load/load_audio.py index ee37a7ad8c..2720a5ddfa 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_audio.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_audio.py @@ -11,7 +11,7 @@ from ayon_core.hosts.maya.api.lib import unique_namespace, get_container_members class AudioLoader(load.LoaderPlugin): """Specific loader of audio.""" - families = ["audio"] + product_types = ["audio"] label = "Load audio" representations = ["wav"] icon = "volume-up" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_gpucache.py b/client/ayon_core/hosts/maya/plugins/load/load_gpucache.py index 080d20b0a6..ca0eadc677 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_gpucache.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_gpucache.py @@ -15,7 +15,7 @@ from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type class GpuCacheLoader(load.LoaderPlugin): """Load Alembic as gpuCache""" - families = ["model", "animation", "proxyAbc", "pointcache"] + product_types = ["model", "animation", "proxyAbc", "pointcache"] representations = ["abc", "gpu_cache"] label = "Load Gpu Cache" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_image.py b/client/ayon_core/hosts/maya/plugins/load/load_image.py index d595aa2987..7db68365ca 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_image.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_image.py @@ -93,7 +93,7 @@ def create_stencil(): class FileNodeLoader(load.LoaderPlugin): """File node loader.""" - families = ["image", "plate", "render"] + product_types = ["image", "plate", "render"] label = "Load file node" representations = ["exr", "tif", "png", "jpg"] icon = "image" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_image_plane.py b/client/ayon_core/hosts/maya/plugins/load/load_image_plane.py index 71ae892150..788971fcf8 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_image_plane.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_image_plane.py @@ -87,7 +87,7 @@ class CameraWindow(QtWidgets.QDialog): class ImagePlaneLoader(load.LoaderPlugin): """Specific loader of plate for image planes on selected camera.""" - families = ["image", "plate", "render"] + product_types = ["image", "plate", "render"] label = "Load imagePlane" representations = ["mov", "exr", "preview", "png", "jpg"] icon = "image" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_look.py b/client/ayon_core/hosts/maya/plugins/load/load_look.py index 9226c7b16f..a2203b6e9b 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_look.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_look.py @@ -17,7 +17,7 @@ from ayon_core.tools.utils import ScrollMessageBox class LookLoader(ayon_core.hosts.maya.api.plugin.ReferenceLoader): """Specific loader for lookdev""" - families = ["look"] + product_types = ["look"] representations = ["ma"] label = "Reference look" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_matchmove.py b/client/ayon_core/hosts/maya/plugins/load/load_matchmove.py index 885d2dbae1..749369de87 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_matchmove.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_matchmove.py @@ -8,7 +8,7 @@ class MatchmoveLoader(load.LoaderPlugin): Supported script types are .py and .mel """ - families = ["matchmove"] + product_types = ["matchmove"] representations = ["py", "mel"] defaults = ["Camera", "Object", "Mocap"] diff --git a/client/ayon_core/hosts/maya/plugins/load/load_maya_usd.py b/client/ayon_core/hosts/maya/plugins/load/load_maya_usd.py index 0a8adaf87f..885941ee59 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_maya_usd.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_maya_usd.py @@ -16,7 +16,7 @@ from ayon_core.hosts.maya.api.pipeline import containerise class MayaUsdLoader(load.LoaderPlugin): """Read USD data in a Maya USD Proxy""" - families = ["model", "usd", "pointcache", "animation"] + product_types = ["model", "usd", "pointcache", "animation"] representations = ["usd", "usda", "usdc", "usdz", "abc"] label = "Load USD to Maya Proxy" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd.py b/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd.py index aab87fc546..9d78c63205 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd.py @@ -20,8 +20,14 @@ from ayon_core.hosts.maya.api.pipeline import containerise class MultiverseUsdLoader(load.LoaderPlugin): """Read USD data in a Multiverse Compound""" - families = ["model", "usd", "mvUsdComposition", "mvUsdOverride", - "pointcache", "animation"] + product_types = [ + "model", + "usd", + "mvUsdComposition", + "mvUsdOverride", + "pointcache", + "animation" + ] representations = ["usd", "usda", "usdc", "usdz", "abc"] label = "Load USD to Multiverse" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd_over.py b/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd_over.py index 70069d3ae6..10cf4918a4 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd_over.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd_over.py @@ -19,7 +19,7 @@ from ayon_core.hosts.maya.api.pipeline import containerise class MultiverseUsdOverLoader(load.LoaderPlugin): """Reference file""" - families = ["mvUsdOverride"] + product_types = ["mvUsdOverride"] representations = ["usda", "usd", "udsz"] label = "Load Usd Override into Compound" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_redshift_proxy.py b/client/ayon_core/hosts/maya/plugins/load/load_redshift_proxy.py index a0ed7cd6e7..a6f0a0878e 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_redshift_proxy.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_redshift_proxy.py @@ -22,7 +22,7 @@ from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type class RedshiftProxyLoader(load.LoaderPlugin): """Load Redshift proxy""" - families = ["redshiftproxy"] + product_types = ["redshiftproxy"] representations = ["rs"] label = "Import Redshift Proxy" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_reference.py b/client/ayon_core/hosts/maya/plugins/load/load_reference.py index 75f5cee5a5..a3914f2efe 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_reference.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_reference.py @@ -89,21 +89,23 @@ def preserve_modelpanel_cameras(container, log=None): class ReferenceLoader(plugin.ReferenceLoader): """Reference file""" - families = ["model", - "pointcache", - "proxyAbc", - "animation", - "mayaAscii", - "mayaScene", - "setdress", - "layout", - "camera", - "rig", - "camerarig", - "staticMesh", - "skeletalMesh", - "mvLook", - "matchmove"] + product_types = [ + "model", + "pointcache", + "proxyAbc", + "animation", + "mayaAscii", + "mayaScene", + "setdress", + "layout", + "camera", + "rig", + "camerarig", + "staticMesh", + "skeletalMesh", + "mvLook", + "matchmove" + ] representations = ["ma", "abc", "fbx", "mb"] @@ -270,7 +272,7 @@ class MayaUSDReferenceLoader(ReferenceLoader): """Reference USD file to native Maya nodes using MayaUSDImport reference""" label = "Reference Maya USD" - families = ["usd"] + product_types = ["usd"] representations = ["usd"] extensions = {"usd", "usda", "usdc"} diff --git a/client/ayon_core/hosts/maya/plugins/load/load_rendersetup.py b/client/ayon_core/hosts/maya/plugins/load/load_rendersetup.py index 0f01a65539..905be00ae7 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_rendersetup.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_rendersetup.py @@ -24,7 +24,7 @@ import maya.app.renderSetup.model.renderSetup as renderSetup class RenderSetupLoader(load.LoaderPlugin): """Load json preset for RenderSetup overwriting current one.""" - families = ["rendersetup"] + product_types = ["rendersetup"] representations = ["json"] defaults = ['Main'] diff --git a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_arnold.py b/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_arnold.py index 05dac0e260..d8cf3774c8 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_arnold.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_arnold.py @@ -12,7 +12,7 @@ from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type class LoadVDBtoArnold(load.LoaderPlugin): """Load OpenVDB for Arnold in aiVolume""" - families = ["vdbcache"] + product_types = ["vdbcache"] representations = ["vdb"] label = "Load VDB to Arnold" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_redshift.py b/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_redshift.py index b6cd513d9e..f5ed2dfdc2 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_redshift.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_redshift.py @@ -18,7 +18,7 @@ class LoadVDBtoRedShift(load.LoaderPlugin): """ - families = ["vdbcache"] + product_types = ["vdbcache"] representations = ["vdb"] label = "Load VDB to RedShift" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_vray.py b/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_vray.py index 8b5923bdbb..e5f1674ef3 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_vray.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_vray.py @@ -77,7 +77,7 @@ def _fix_duplicate_vvg_callbacks(): class LoadVDBtoVRay(load.LoaderPlugin): """Load OpenVDB in a V-Ray Volume Grid""" - families = ["vdbcache"] + product_types = ["vdbcache"] representations = ["vdb"] label = "Load VDB to VRay" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_vrayproxy.py b/client/ayon_core/hosts/maya/plugins/load/load_vrayproxy.py index fe1f8425d8..b9f144f5da 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_vrayproxy.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_vrayproxy.py @@ -27,7 +27,7 @@ from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type class VRayProxyLoader(load.LoaderPlugin): """Load VRay Proxy with Alembic or VrayMesh.""" - families = ["vrayproxy", "model", "pointcache", "animation"] + product_types = ["vrayproxy", "model", "pointcache", "animation"] representations = ["vrmesh", "abc"] label = "Import VRay Proxy" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_vrayscene.py b/client/ayon_core/hosts/maya/plugins/load/load_vrayscene.py index 3d21464edc..046a94775f 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_vrayscene.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_vrayscene.py @@ -17,7 +17,7 @@ from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type class VRaySceneLoader(load.LoaderPlugin): """Load Vray scene""" - families = ["vrayscene_layer"] + product_types = ["vrayscene_layer"] representations = ["vrscene"] label = "Import VRay Scene" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_xgen.py b/client/ayon_core/hosts/maya/plugins/load/load_xgen.py index 58a6d86292..5b7d630dc3 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_xgen.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_xgen.py @@ -20,7 +20,7 @@ from ayon_core.pipeline import get_representation_path class XgenLoader(ayon_core.hosts.maya.api.plugin.ReferenceLoader): """Load Xgen as reference""" - families = ["xgen"] + product_types = ["xgen"] representations = ["ma", "mb"] label = "Reference Xgen" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_yeti_cache.py b/client/ayon_core/hosts/maya/plugins/load/load_yeti_cache.py index 18a094c29d..0ae0f95580 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_yeti_cache.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_yeti_cache.py @@ -36,7 +36,7 @@ def set_attribute(node, attr, value): class YetiCacheLoader(load.LoaderPlugin): """Load Yeti Cache with one or more Yeti nodes""" - families = ["yeticache", "yetiRig"] + product_types = ["yeticache", "yetiRig"] representations = ["fur"] label = "Load Yeti Cache" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_yeti_rig.py b/client/ayon_core/hosts/maya/plugins/load/load_yeti_rig.py index 310c943198..609231900d 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_yeti_rig.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_yeti_rig.py @@ -7,7 +7,7 @@ from ayon_core.hosts.maya.api import lib class YetiRigLoader(plugin.ReferenceLoader): """This loader will load Yeti rig.""" - families = ["yetiRig"] + product_types = ["yetiRig"] representations = ["ma"] label = "Load Yeti Rig" diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_animation.py b/client/ayon_core/hosts/maya/plugins/publish/collect_animation.py index 2ab6511ece..1ba750a6e0 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_animation.py +++ b/client/ayon_core/hosts/maya/plugins/publish/collect_animation.py @@ -16,7 +16,7 @@ class CollectAnimationOutputGeometry(pyblish.api.InstancePlugin): """ order = pyblish.api.CollectorOrder + 0.4 - families = ["animation"] + product_types = ["animation"] label = "Collect Animation Output Geometry" hosts = ["maya"] diff --git a/client/ayon_core/hosts/nuke/plugins/load/actions.py b/client/ayon_core/hosts/nuke/plugins/load/actions.py index 707a8a3c4d..a9086e2ebc 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/actions.py +++ b/client/ayon_core/hosts/nuke/plugins/load/actions.py @@ -12,11 +12,12 @@ log = Logger.get_logger(__name__) class SetFrameRangeLoader(load.LoaderPlugin): """Set frame range excluding pre- and post-handles""" - families = ["animation", - "camera", - "write", - "yeticache", - "pointcache"] + product_types = [ + "animation", + "camera", + "write", + "yeticache", + "pointcache"] representations = ["*"] extensions = {"*"} @@ -44,11 +45,12 @@ class SetFrameRangeLoader(load.LoaderPlugin): class SetFrameRangeWithHandlesLoader(load.LoaderPlugin): """Set frame range including pre- and post-handles""" - families = ["animation", - "camera", - "write", - "yeticache", - "pointcache"] + product_types = [ + "animation", + "camera", + "write", + "yeticache", + "pointcache"] representations = ["*"] label = "Set frame range (with handles)" diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_backdrop.py b/client/ayon_core/hosts/nuke/plugins/load/load_backdrop.py index 51fe7dac34..321d327fc5 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_backdrop.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_backdrop.py @@ -21,7 +21,7 @@ from ayon_core.hosts.nuke.api import containerise, update_container class LoadBackdropNodes(load.LoaderPlugin): """Loading Published Backdrop nodes (workfile, nukenodes)""" - families = ["workfile", "nukenodes"] + product_types = ["workfile", "nukenodes"] representations = ["*"] extensions = {"nk"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_camera_abc.py b/client/ayon_core/hosts/nuke/plugins/load/load_camera_abc.py index bb7c8ea7c8..574b74e7a1 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_camera_abc.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_camera_abc.py @@ -20,7 +20,7 @@ class AlembicCameraLoader(load.LoaderPlugin): This will load alembic camera into script. """ - families = ["camera"] + product_types = ["camera"] representations = ["*"] extensions = {"abc"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_clip.py b/client/ayon_core/hosts/nuke/plugins/load/load_clip.py index e972b99b85..9094414080 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_clip.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_clip.py @@ -35,7 +35,7 @@ class LoadClip(plugin.NukeLoader): """ log = Logger.get_logger(__name__) - families = [ + product_types = [ "source", "plate", "render", diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_effects.py b/client/ayon_core/hosts/nuke/plugins/load/load_effects.py index 50ce0d1ad7..a0e935f480 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_effects.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_effects.py @@ -18,7 +18,7 @@ from ayon_core.hosts.nuke.api import ( class LoadEffects(load.LoaderPlugin): """Loading colorspace soft effect exported from nukestudio""" - families = ["effect"] + product_types = ["effect"] representations = ["*"] extensions = {"json"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_effects_ip.py b/client/ayon_core/hosts/nuke/plugins/load/load_effects_ip.py index 8c58241316..b5f6509fbe 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_effects_ip.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_effects_ip.py @@ -19,7 +19,7 @@ from ayon_core.hosts.nuke.api import ( class LoadEffectsInputProcess(load.LoaderPlugin): """Loading colorspace soft effect exported from nukestudio""" - families = ["effect"] + product_types = ["effect"] representations = ["*"] extensions = {"json"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_gizmo.py b/client/ayon_core/hosts/nuke/plugins/load/load_gizmo.py index 5130b825c4..3113d7194c 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_gizmo.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_gizmo.py @@ -21,7 +21,7 @@ from ayon_core.hosts.nuke.api import ( class LoadGizmo(load.LoaderPlugin): """Loading nuke Gizmo""" - families = ["gizmo"] + product_types = ["gizmo"] representations = ["*"] extensions = {"nk"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_gizmo_ip.py b/client/ayon_core/hosts/nuke/plugins/load/load_gizmo_ip.py index 8aa73ca0e4..27e7c17756 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_gizmo_ip.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_gizmo_ip.py @@ -23,7 +23,7 @@ from ayon_core.hosts.nuke.api import ( class LoadGizmoInputProcess(load.LoaderPlugin): """Loading colorspace soft effect exported from nukestudio""" - families = ["gizmo"] + product_types = ["gizmo"] representations = ["*"] extensions = {"nk"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_image.py b/client/ayon_core/hosts/nuke/plugins/load/load_image.py index 002592758f..c530d234f5 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_image.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_image.py @@ -23,7 +23,7 @@ from ayon_core.lib.transcoding import ( class LoadImage(load.LoaderPlugin): """Load still image into Nuke""" - families = [ + product_types = [ "render2d", "source", "plate", diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_matchmove.py b/client/ayon_core/hosts/nuke/plugins/load/load_matchmove.py index 412181f3d9..a524a6961d 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_matchmove.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_matchmove.py @@ -7,7 +7,7 @@ class MatchmoveLoader(load.LoaderPlugin): This will run matchmove script to create track in script. """ - families = ["matchmove"] + product_types = ["matchmove"] representations = ["*"] extensions = {"py"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_model.py b/client/ayon_core/hosts/nuke/plugins/load/load_model.py index fcf1c2eda9..4ef2721915 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_model.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_model.py @@ -18,7 +18,7 @@ class AlembicModelLoader(load.LoaderPlugin): This will load alembic model or anim into script. """ - families = ["model", "pointcache", "animation"] + product_types = ["model", "pointcache", "animation"] representations = ["*"] extensions = {"abc"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_ociolook.py b/client/ayon_core/hosts/nuke/plugins/load/load_ociolook.py index 94af7c40e2..586fbc3209 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_ociolook.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_ociolook.py @@ -20,7 +20,7 @@ from ayon_core.hosts.nuke.api import ( class LoadOcioLookNodes(load.LoaderPlugin): """Loading Ocio look to the nuke.Node graph""" - families = ["ociolook"] + product_types = ["ociolook"] representations = ["*"] extensions = {"json"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_script_precomp.py b/client/ayon_core/hosts/nuke/plugins/load/load_script_precomp.py index 9fb168f322..36e1f09c0a 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_script_precomp.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_script_precomp.py @@ -16,7 +16,7 @@ from ayon_core.hosts.nuke.api import ( class LinkAsGroup(load.LoaderPlugin): """Copy the published file to be pasted at the desired location""" - families = ["workfile", "nukenodes"] + product_types = ["workfile", "nukenodes"] representations = ["*"] extensions = {"nk"} diff --git a/client/ayon_core/hosts/nuke/plugins/publish/collect_backdrop.py b/client/ayon_core/hosts/nuke/plugins/publish/collect_backdrop.py index fc17de95b4..c0fdfa6fae 100644 --- a/client/ayon_core/hosts/nuke/plugins/publish/collect_backdrop.py +++ b/client/ayon_core/hosts/nuke/plugins/publish/collect_backdrop.py @@ -11,7 +11,7 @@ class CollectBackdrops(pyblish.api.InstancePlugin): order = pyblish.api.CollectorOrder + 0.22 label = "Collect Backdrop" hosts = ["nuke"] - families = ["nukenodes"] + product_types = ["nukenodes"] def process(self, instance): self.log.debug(pformat(instance.data)) diff --git a/client/ayon_core/hosts/nuke/plugins/publish/collect_gizmo.py b/client/ayon_core/hosts/nuke/plugins/publish/collect_gizmo.py index fda1c7ac31..9d40b2db0f 100644 --- a/client/ayon_core/hosts/nuke/plugins/publish/collect_gizmo.py +++ b/client/ayon_core/hosts/nuke/plugins/publish/collect_gizmo.py @@ -9,7 +9,7 @@ class CollectGizmo(pyblish.api.InstancePlugin): order = pyblish.api.CollectorOrder + 0.22 label = "Collect Gizmo (group)" hosts = ["nuke"] - families = ["gizmo"] + product_types = ["gizmo"] def process(self, instance): diff --git a/client/ayon_core/hosts/photoshop/plugins/load/load_image.py b/client/ayon_core/hosts/photoshop/plugins/load/load_image.py index 42cc2dbcbf..0cfa9400f3 100644 --- a/client/ayon_core/hosts/photoshop/plugins/load/load_image.py +++ b/client/ayon_core/hosts/photoshop/plugins/load/load_image.py @@ -11,7 +11,7 @@ class ImageLoader(photoshop.PhotoshopLoader): Stores the imported asset in a container named after the asset. """ - families = ["image", "render"] + product_types = ["image", "render"] representations = ["*"] def load(self, context, name=None, namespace=None, data=None): diff --git a/client/ayon_core/hosts/photoshop/plugins/load/load_image_from_sequence.py b/client/ayon_core/hosts/photoshop/plugins/load/load_image_from_sequence.py index e20c9a5138..bfedc510e8 100644 --- a/client/ayon_core/hosts/photoshop/plugins/load/load_image_from_sequence.py +++ b/client/ayon_core/hosts/photoshop/plugins/load/load_image_from_sequence.py @@ -24,7 +24,7 @@ class ImageFromSequenceLoader(photoshop.PhotoshopLoader): difficult. """ - families = ["render"] + product_types = ["render"] representations = ["*"] options = [] diff --git a/client/ayon_core/hosts/photoshop/plugins/load/load_reference.py b/client/ayon_core/hosts/photoshop/plugins/load/load_reference.py index f1897ad18a..6ae34503d0 100644 --- a/client/ayon_core/hosts/photoshop/plugins/load/load_reference.py +++ b/client/ayon_core/hosts/photoshop/plugins/load/load_reference.py @@ -14,7 +14,7 @@ class ReferenceLoader(photoshop.PhotoshopLoader): "Cannot write to closing transport", possible refactor. """ - families = ["image", "render"] + product_types = ["image", "render"] representations = ["*"] def load(self, context, name=None, namespace=None, data=None): diff --git a/client/ayon_core/hosts/resolve/plugins/load/load_clip.py b/client/ayon_core/hosts/resolve/plugins/load/load_clip.py index 26ee35a90d..848e6a4a54 100644 --- a/client/ayon_core/hosts/resolve/plugins/load/load_clip.py +++ b/client/ayon_core/hosts/resolve/plugins/load/load_clip.py @@ -18,7 +18,7 @@ class LoadClip(plugin.TimelineItemLoader): during conforming to project """ - families = ["render2d", "source", "plate", "render", "review"] + product_types = ["render2d", "source", "plate", "render", "review"] representations = ["*"] extensions = set( diff --git a/client/ayon_core/hosts/resolve/plugins/publish/extract_workfile.py b/client/ayon_core/hosts/resolve/plugins/publish/extract_workfile.py index 48ebdee7e3..0874685bb6 100644 --- a/client/ayon_core/hosts/resolve/plugins/publish/extract_workfile.py +++ b/client/ayon_core/hosts/resolve/plugins/publish/extract_workfile.py @@ -12,7 +12,7 @@ class ExtractWorkfile(publish.Extractor): label = "Extract Workfile" order = pyblish.api.ExtractorOrder - families = ["workfile"] + product_types = ["workfile"] hosts = ["resolve"] def process(self, instance): diff --git a/client/ayon_core/hosts/substancepainter/plugins/load/load_mesh.py b/client/ayon_core/hosts/substancepainter/plugins/load/load_mesh.py index fb2f1db726..cf95f4506c 100644 --- a/client/ayon_core/hosts/substancepainter/plugins/load/load_mesh.py +++ b/client/ayon_core/hosts/substancepainter/plugins/load/load_mesh.py @@ -17,7 +17,7 @@ import qargparse class SubstanceLoadProjectMesh(load.LoaderPlugin): """Load mesh for project""" - families = ["*"] + product_types = ["*"] representations = ["abc", "fbx", "obj", "gltf"] label = "Load mesh" diff --git a/client/ayon_core/hosts/tvpaint/plugins/load/load_image.py b/client/ayon_core/hosts/tvpaint/plugins/load/load_image.py index 21bbe56a54..3576dcea15 100644 --- a/client/ayon_core/hosts/tvpaint/plugins/load/load_image.py +++ b/client/ayon_core/hosts/tvpaint/plugins/load/load_image.py @@ -6,7 +6,7 @@ from ayon_core.hosts.tvpaint.api.lib import execute_george_through_file class ImportImage(plugin.Loader): """Load image or image sequence to TVPaint as new layer.""" - families = ["render", "image", "background", "plate", "review"] + product_types = ["render", "image", "background", "plate", "review"] representations = ["*"] label = "Import Image" diff --git a/client/ayon_core/hosts/tvpaint/plugins/load/load_reference_image.py b/client/ayon_core/hosts/tvpaint/plugins/load/load_reference_image.py index 2820b883ed..e7539583be 100644 --- a/client/ayon_core/hosts/tvpaint/plugins/load/load_reference_image.py +++ b/client/ayon_core/hosts/tvpaint/plugins/load/load_reference_image.py @@ -20,7 +20,7 @@ from ayon_core.hosts.tvpaint.api.pipeline import ( class LoadImage(plugin.Loader): """Load image or image sequence to TVPaint as new layer.""" - families = ["render", "image", "background", "plate", "review"] + product_types = ["render", "image", "background", "plate", "review"] representations = ["*"] label = "Load Image" diff --git a/client/ayon_core/hosts/tvpaint/plugins/load/load_sound.py b/client/ayon_core/hosts/tvpaint/plugins/load/load_sound.py index 86f3e6857f..d8f22b3008 100644 --- a/client/ayon_core/hosts/tvpaint/plugins/load/load_sound.py +++ b/client/ayon_core/hosts/tvpaint/plugins/load/load_sound.py @@ -22,7 +22,7 @@ class ImportSound(plugin.Loader): file contain any audio. """ - families = ["audio", "review", "plate"] + product_types = ["audio", "review", "plate"] representations = ["*"] label = "Import Sound" diff --git a/client/ayon_core/hosts/tvpaint/plugins/load/load_workfile.py b/client/ayon_core/hosts/tvpaint/plugins/load/load_workfile.py index 4bb34089bd..3d1941d266 100644 --- a/client/ayon_core/hosts/tvpaint/plugins/load/load_workfile.py +++ b/client/ayon_core/hosts/tvpaint/plugins/load/load_workfile.py @@ -24,7 +24,7 @@ from ayon_core.pipeline.version_start import get_versioning_start class LoadWorkfile(plugin.Loader): """Load workfile.""" - families = ["workfile"] + product_types = ["workfile"] representations = ["tvpp"] label = "Load Workfile" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_alembic_animation.py b/client/ayon_core/hosts/unreal/plugins/load/load_alembic_animation.py index 9b8d22fb5e..fbf19832b4 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_alembic_animation.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_alembic_animation.py @@ -14,7 +14,7 @@ import unreal # noqa class AnimationAlembicLoader(plugin.Loader): """Load Unreal SkeletalMesh from Alembic""" - families = ["animation"] + product_types = ["animation"] label = "Import Alembic Animation" representations = ["abc"] icon = "cube" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_animation.py b/client/ayon_core/hosts/unreal/plugins/load/load_animation.py index b2c066c871..3d0a260e4e 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_animation.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_animation.py @@ -20,7 +20,7 @@ from ayon_core.hosts.unreal.api import pipeline as unreal_pipeline class AnimationFBXLoader(plugin.Loader): """Load Unreal SkeletalMesh from FBX.""" - families = ["animation"] + product_types = ["animation"] label = "Import FBX Animation" representations = ["fbx"] icon = "cube" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_camera.py b/client/ayon_core/hosts/unreal/plugins/load/load_camera.py index ed159d31bd..b9b67f5f98 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_camera.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_camera.py @@ -28,7 +28,7 @@ from ayon_core.hosts.unreal.api.pipeline import ( class CameraLoader(plugin.Loader): """Load Unreal StaticMesh from FBX""" - families = ["camera"] + product_types = ["camera"] label = "Load Camera" representations = ["fbx"] icon = "cube" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_geometrycache_abc.py b/client/ayon_core/hosts/unreal/plugins/load/load_geometrycache_abc.py index d0c936ed06..f1cedc575b 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_geometrycache_abc.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_geometrycache_abc.py @@ -19,7 +19,7 @@ import unreal # noqa class PointCacheAlembicLoader(plugin.Loader): """Load Point Cache from Alembic""" - families = ["model", "pointcache"] + product_types = ["model", "pointcache"] label = "Import Alembic Point Cache" representations = ["abc"] icon = "cube" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_layout.py b/client/ayon_core/hosts/unreal/plugins/load/load_layout.py index beb94ada7b..dcdd51480a 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_layout.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_layout.py @@ -40,7 +40,7 @@ from ayon_core.hosts.unreal.api.pipeline import ( class LayoutLoader(plugin.Loader): """Load Layout from a JSON file""" - families = ["layout"] + product_types = ["layout"] representations = ["json"] label = "Load Layout" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_layout_existing.py b/client/ayon_core/hosts/unreal/plugins/load/load_layout_existing.py index 144df10fe0..a50019773f 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_layout_existing.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_layout_existing.py @@ -21,7 +21,7 @@ class ExistingLayoutLoader(plugin.Loader): Load Layout for an existing scene, and match the existing assets. """ - families = ["layout"] + product_types = ["layout"] representations = ["json"] label = "Load Layout on Existing Scene" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_abc.py b/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_abc.py index 4d9c0554d8..ba26bbac59 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_abc.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_abc.py @@ -18,7 +18,7 @@ import unreal # noqa class SkeletalMeshAlembicLoader(plugin.Loader): """Load Unreal SkeletalMesh from Alembic""" - families = ["pointcache", "skeletalMesh"] + product_types = ["pointcache", "skeletalMesh"] label = "Import Alembic Skeletal Mesh" representations = ["abc"] icon = "cube" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_fbx.py b/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_fbx.py index 990ad4b977..7fc0420583 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_fbx.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_fbx.py @@ -18,7 +18,7 @@ import unreal # noqa class SkeletalMeshFBXLoader(plugin.Loader): """Load Unreal SkeletalMesh from FBX.""" - families = ["rig", "skeletalMesh"] + product_types = ["rig", "skeletalMesh"] label = "Import FBX Skeletal Mesh" representations = ["fbx"] icon = "cube" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_abc.py b/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_abc.py index 5e4a28a031..9301aacf78 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_abc.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_abc.py @@ -18,7 +18,7 @@ import unreal # noqa class StaticMeshAlembicLoader(plugin.Loader): """Load Unreal StaticMesh from Alembic""" - families = ["model", "staticMesh"] + product_types = ["model", "staticMesh"] label = "Import Alembic Static Mesh" representations = ["abc"] icon = "cube" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_fbx.py b/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_fbx.py index 1db2dcf676..a7df3d1045 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_fbx.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_fbx.py @@ -18,7 +18,7 @@ import unreal # noqa class StaticMeshFBXLoader(plugin.Loader): """Load Unreal StaticMesh from FBX.""" - families = ["model", "staticMesh"] + product_types = ["model", "staticMesh"] label = "Import FBX Static Mesh" representations = ["fbx"] icon = "cube" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_uasset.py b/client/ayon_core/hosts/unreal/plugins/load/load_uasset.py index e0b1a69aac..b8ecd40c32 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_uasset.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_uasset.py @@ -15,7 +15,7 @@ import unreal # noqa class UAssetLoader(plugin.Loader): """Load UAsset.""" - families = ["uasset"] + product_types = ["uasset"] label = "Load UAsset" representations = ["uasset"] icon = "cube" @@ -164,7 +164,7 @@ class UAssetLoader(plugin.Loader): class UMapLoader(UAssetLoader): """Load Level.""" - families = ["uasset"] + product_types = ["uasset"] label = "Load Level" representations = ["umap"] diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_yeticache.py b/client/ayon_core/hosts/unreal/plugins/load/load_yeticache.py index 7a1767e52a..a3c11544f0 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_yeticache.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_yeticache.py @@ -15,7 +15,7 @@ import unreal # noqa class YetiLoader(plugin.Loader): """Load Yeti Cache""" - families = ["yeticacheUE"] + product_types = ["yeticacheUE"] label = "Import Yeti" representations = ["abc"] icon = "pagelines" diff --git a/client/ayon_core/plugins/load/copy_file.py b/client/ayon_core/plugins/load/copy_file.py index 0da22826f0..b6fe10e170 100644 --- a/client/ayon_core/plugins/load/copy_file.py +++ b/client/ayon_core/plugins/load/copy_file.py @@ -6,7 +6,7 @@ class CopyFile(load.LoaderPlugin): """Copy the published file to be pasted at the desired location""" representations = ["*"] - families = ["*"] + product_types = ["*"] label = "Copy File" order = 10 diff --git a/client/ayon_core/plugins/load/copy_file_path.py b/client/ayon_core/plugins/load/copy_file_path.py index c3478c32f3..3b0e0fc291 100644 --- a/client/ayon_core/plugins/load/copy_file_path.py +++ b/client/ayon_core/plugins/load/copy_file_path.py @@ -6,7 +6,7 @@ from ayon_core.pipeline import load class CopyFilePath(load.LoaderPlugin): """Copy published file path to clipboard""" representations = ["*"] - families = ["*"] + product_types = ["*"] label = "Copy File Path" order = 20 diff --git a/client/ayon_core/plugins/load/delete_old_versions.py b/client/ayon_core/plugins/load/delete_old_versions.py index 8fa0c2edb6..9124278696 100644 --- a/client/ayon_core/plugins/load/delete_old_versions.py +++ b/client/ayon_core/plugins/load/delete_old_versions.py @@ -27,7 +27,7 @@ # sequence_splitter = "__sequence_splitter__" # # representations = ["*"] -# families = ["*"] +# product_types = ["*"] # tool_names = ["library_loader"] # # label = "Delete Old Versions" diff --git a/client/ayon_core/plugins/load/delivery.py b/client/ayon_core/plugins/load/delivery.py index 453bdfb87a..3529458e70 100644 --- a/client/ayon_core/plugins/load/delivery.py +++ b/client/ayon_core/plugins/load/delivery.py @@ -29,7 +29,7 @@ class Delivery(load.ProductLoaderPlugin): sequence_splitter = "__sequence_splitter__" representations = ["*"] - families = ["*"] + product_types = ["*"] tool_names = ["library_loader"] label = "Deliver Versions" diff --git a/client/ayon_core/plugins/load/open_djv.py b/client/ayon_core/plugins/load/open_djv.py index 70352c2435..efe19161a0 100644 --- a/client/ayon_core/plugins/load/open_djv.py +++ b/client/ayon_core/plugins/load/open_djv.py @@ -18,7 +18,7 @@ class OpenInDJV(load.LoaderPlugin): """Open Image Sequence with system default""" djv_list = existing_djv_path() - families = ["*"] if djv_list else [] + product_types = ["*"] if djv_list else [] representations = ["*"] extensions = { "cin", "dpx", "avi", "dv", "gif", "flv", "mkv", "mov", "mpg", "mpeg", diff --git a/client/ayon_core/plugins/load/open_file.py b/client/ayon_core/plugins/load/open_file.py index 5ae5959102..b26b261f10 100644 --- a/client/ayon_core/plugins/load/open_file.py +++ b/client/ayon_core/plugins/load/open_file.py @@ -18,7 +18,7 @@ def open(filepath): class OpenFile(load.LoaderPlugin): """Open Image Sequence or Video with system default""" - families = ["render2d"] + product_types = ["render2d"] representations = ["*"] label = "Open" diff --git a/client/ayon_core/plugins/load/push_to_library.py b/client/ayon_core/plugins/load/push_to_library.py index a191ee88f0..cd3a5e449d 100644 --- a/client/ayon_core/plugins/load/push_to_library.py +++ b/client/ayon_core/plugins/load/push_to_library.py @@ -12,7 +12,7 @@ class PushToLibraryProject(load.ProductLoaderPlugin): is_multiple_contexts_compatible = True representations = ["*"] - families = ["*"] + product_types = ["*"] label = "Push to Library project" order = 35 From 576817b8eaa832da111cf2326dabf1460191b80a Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Mon, 18 Mar 2024 14:45:54 +0100 Subject: [PATCH 3/4] change 'product_types' type to set --- .../aftereffects/plugins/load/load_background.py | 2 +- .../hosts/aftereffects/plugins/load/load_file.py | 14 ++++++++------ .../blender/plugins/load/import_workfile.py | 4 ++-- .../hosts/blender/plugins/load/load_abc.py | 2 +- .../hosts/blender/plugins/load/load_action.py | 2 +- .../hosts/blender/plugins/load/load_animation.py | 2 +- .../hosts/blender/plugins/load/load_audio.py | 2 +- .../hosts/blender/plugins/load/load_blend.py | 2 +- .../blender/plugins/load/load_blendscene.py | 2 +- .../blender/plugins/load/load_camera_abc.py | 2 +- .../blender/plugins/load/load_camera_fbx.py | 2 +- .../hosts/blender/plugins/load/load_fbx.py | 2 +- .../blender/plugins/load/load_layout_json.py | 2 +- .../hosts/blender/plugins/load/load_look.py | 2 +- .../hosts/flame/plugins/load/load_clip.py | 2 +- .../hosts/flame/plugins/load/load_clip_batch.py | 2 +- .../hosts/fusion/plugins/load/actions.py | 10 ++++++---- .../hosts/fusion/plugins/load/load_alembic.py | 2 +- .../hosts/fusion/plugins/load/load_fbx.py | 2 +- .../hosts/fusion/plugins/load/load_sequence.py | 4 ++-- .../hosts/fusion/plugins/load/load_usd.py | 2 +- .../hosts/fusion/plugins/load/load_workfile.py | 2 +- client/ayon_core/hosts/harmony/api/README.md | 2 +- .../hosts/harmony/plugins/load/load_audio.py | 2 +- .../harmony/plugins/load/load_background.py | 2 +- .../harmony/plugins/load/load_imagesequence.py | 4 ++-- .../hosts/harmony/plugins/load/load_palette.py | 2 +- .../hosts/harmony/plugins/load/load_template.py | 2 +- .../plugins/load/load_template_workfile.py | 4 ++-- .../hosts/hiero/plugins/load/load_clip.py | 2 +- .../hosts/hiero/plugins/load/load_effects.py | 2 +- .../hosts/houdini/plugins/load/actions.py | 8 ++++---- .../hosts/houdini/plugins/load/load_alembic.py | 2 +- .../houdini/plugins/load/load_alembic_archive.py | 2 +- .../hosts/houdini/plugins/load/load_ass.py | 2 +- .../hosts/houdini/plugins/load/load_bgeo.py | 2 +- .../hosts/houdini/plugins/load/load_camera.py | 2 +- .../hosts/houdini/plugins/load/load_fbx.py | 2 +- .../hosts/houdini/plugins/load/load_hda.py | 2 +- .../hosts/houdini/plugins/load/load_image.py | 2 +- .../houdini/plugins/load/load_redshift_proxy.py | 2 +- .../hosts/houdini/plugins/load/load_usd_layer.py | 4 ++-- .../houdini/plugins/load/load_usd_reference.py | 4 ++-- .../hosts/houdini/plugins/load/load_vdb.py | 2 +- .../hosts/houdini/plugins/load/show_usdview.py | 2 +- .../hosts/max/plugins/load/load_camera_fbx.py | 2 +- .../hosts/max/plugins/load/load_max_scene.py | 5 +++-- .../hosts/max/plugins/load/load_model.py | 2 +- .../hosts/max/plugins/load/load_model_fbx.py | 2 +- .../hosts/max/plugins/load/load_model_obj.py | 2 +- .../hosts/max/plugins/load/load_model_usd.py | 2 +- .../hosts/max/plugins/load/load_pointcache.py | 2 +- .../max/plugins/load/load_pointcache_ornatrix.py | 2 +- .../hosts/max/plugins/load/load_pointcloud.py | 2 +- .../max/plugins/load/load_redshift_proxy.py | 2 +- .../hosts/max/plugins/load/load_tycache.py | 2 +- .../hosts/maya/plugins/load/_load_animation.py | 10 ++++++---- .../ayon_core/hosts/maya/plugins/load/actions.py | 16 +++++++++------- .../maya/plugins/load/load_arnold_standin.py | 4 ++-- .../hosts/maya/plugins/load/load_assembly.py | 2 +- .../hosts/maya/plugins/load/load_audio.py | 2 +- .../hosts/maya/plugins/load/load_gpucache.py | 2 +- .../hosts/maya/plugins/load/load_image.py | 2 +- .../hosts/maya/plugins/load/load_image_plane.py | 2 +- .../hosts/maya/plugins/load/load_look.py | 2 +- .../hosts/maya/plugins/load/load_matchmove.py | 2 +- .../hosts/maya/plugins/load/load_maya_usd.py | 2 +- .../maya/plugins/load/load_multiverse_usd.py | 6 +++--- .../plugins/load/load_multiverse_usd_over.py | 2 +- .../maya/plugins/load/load_redshift_proxy.py | 2 +- .../hosts/maya/plugins/load/load_reference.py | 8 ++++---- .../hosts/maya/plugins/load/load_rendersetup.py | 2 +- .../maya/plugins/load/load_vdb_to_arnold.py | 2 +- .../maya/plugins/load/load_vdb_to_redshift.py | 2 +- .../hosts/maya/plugins/load/load_vdb_to_vray.py | 2 +- .../hosts/maya/plugins/load/load_vrayproxy.py | 2 +- .../hosts/maya/plugins/load/load_vrayscene.py | 2 +- .../hosts/maya/plugins/load/load_xgen.py | 2 +- .../hosts/maya/plugins/load/load_yeti_cache.py | 2 +- .../hosts/maya/plugins/load/load_yeti_rig.py | 2 +- .../ayon_core/hosts/nuke/plugins/load/actions.py | 10 ++++++---- .../hosts/nuke/plugins/load/load_backdrop.py | 2 +- .../hosts/nuke/plugins/load/load_camera_abc.py | 2 +- .../hosts/nuke/plugins/load/load_clip.py | 6 +++--- .../hosts/nuke/plugins/load/load_effects.py | 2 +- .../hosts/nuke/plugins/load/load_effects_ip.py | 2 +- .../hosts/nuke/plugins/load/load_gizmo.py | 2 +- .../hosts/nuke/plugins/load/load_gizmo_ip.py | 2 +- .../hosts/nuke/plugins/load/load_image.py | 6 +++--- .../hosts/nuke/plugins/load/load_matchmove.py | 2 +- .../hosts/nuke/plugins/load/load_model.py | 2 +- .../hosts/nuke/plugins/load/load_ociolook.py | 2 +- .../nuke/plugins/load/load_script_precomp.py | 2 +- .../hosts/photoshop/plugins/load/load_image.py | 2 +- .../plugins/load/load_image_from_sequence.py | 2 +- .../photoshop/plugins/load/load_reference.py | 2 +- .../hosts/resolve/plugins/load/load_clip.py | 2 +- .../substancepainter/plugins/load/load_mesh.py | 2 +- .../hosts/tvpaint/plugins/load/load_image.py | 2 +- .../tvpaint/plugins/load/load_reference_image.py | 2 +- .../hosts/tvpaint/plugins/load/load_sound.py | 2 +- .../hosts/tvpaint/plugins/load/load_workfile.py | 2 +- .../plugins/load/load_alembic_animation.py | 2 +- .../hosts/unreal/plugins/load/load_animation.py | 2 +- .../hosts/unreal/plugins/load/load_camera.py | 2 +- .../plugins/load/load_geometrycache_abc.py | 2 +- .../hosts/unreal/plugins/load/load_layout.py | 2 +- .../unreal/plugins/load/load_layout_existing.py | 2 +- .../unreal/plugins/load/load_skeletalmesh_abc.py | 2 +- .../unreal/plugins/load/load_skeletalmesh_fbx.py | 2 +- .../unreal/plugins/load/load_staticmesh_abc.py | 2 +- .../unreal/plugins/load/load_staticmesh_fbx.py | 2 +- .../hosts/unreal/plugins/load/load_uasset.py | 4 ++-- .../hosts/unreal/plugins/load/load_yeticache.py | 2 +- client/ayon_core/pipeline/load/plugins.py | 2 +- client/ayon_core/plugins/load/copy_file.py | 2 +- client/ayon_core/plugins/load/copy_file_path.py | 2 +- .../plugins/load/delete_old_versions.py | 2 +- client/ayon_core/plugins/load/delivery.py | 2 +- client/ayon_core/plugins/load/open_djv.py | 2 +- client/ayon_core/plugins/load/open_file.py | 2 +- client/ayon_core/plugins/load/push_to_library.py | 2 +- 122 files changed, 174 insertions(+), 163 deletions(-) diff --git a/client/ayon_core/hosts/aftereffects/plugins/load/load_background.py b/client/ayon_core/hosts/aftereffects/plugins/load/load_background.py index 9c43dc0e77..7c9bd2fcfd 100644 --- a/client/ayon_core/hosts/aftereffects/plugins/load/load_background.py +++ b/client/ayon_core/hosts/aftereffects/plugins/load/load_background.py @@ -20,7 +20,7 @@ class BackgroundLoader(api.AfterEffectsLoader): metadata """ label = "Load JSON Background" - product_types = ["background"] + product_types = {"background"} representations = ["json"] def load(self, context, name=None, namespace=None, data=None): diff --git a/client/ayon_core/hosts/aftereffects/plugins/load/load_file.py b/client/ayon_core/hosts/aftereffects/plugins/load/load_file.py index 2d9ba1b677..79e791af7b 100644 --- a/client/ayon_core/hosts/aftereffects/plugins/load/load_file.py +++ b/client/ayon_core/hosts/aftereffects/plugins/load/load_file.py @@ -12,12 +12,14 @@ class FileLoader(api.AfterEffectsLoader): """ label = "Load file" - product_types = ["image", - "plate", - "render", - "prerender", - "review", - "audio"] + product_types = { + "image", + "plate", + "render", + "prerender", + "review", + "audio", + } representations = ["*"] def load(self, context, name=None, namespace=None, data=None): diff --git a/client/ayon_core/hosts/blender/plugins/load/import_workfile.py b/client/ayon_core/hosts/blender/plugins/load/import_workfile.py index f64437e753..3aa73a5143 100644 --- a/client/ayon_core/hosts/blender/plugins/load/import_workfile.py +++ b/client/ayon_core/hosts/blender/plugins/load/import_workfile.py @@ -44,7 +44,7 @@ class AppendBlendLoader(plugin.AssetLoader): """ representations = ["blend"] - product_types = ["workfile"] + product_types = {"workfile"} label = "Append Workfile" order = 9 @@ -69,7 +69,7 @@ class ImportBlendLoader(plugin.AssetLoader): """ representations = ["blend"] - product_types = ["workfile"] + product_types = {"workfile"} label = "Import Workfile" order = 9 diff --git a/client/ayon_core/hosts/blender/plugins/load/load_abc.py b/client/ayon_core/hosts/blender/plugins/load/load_abc.py index a6e834e20a..938ae6106b 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_abc.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_abc.py @@ -26,7 +26,7 @@ class CacheModelLoader(plugin.AssetLoader): Note: At least for now it only supports Alembic files. """ - product_types = ["model", "pointcache", "animation"] + product_types = {"model", "pointcache", "animation"} representations = ["abc"] label = "Load Alembic" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_action.py b/client/ayon_core/hosts/blender/plugins/load/load_action.py index 446fa20fec..4161f8bff3 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_action.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_action.py @@ -24,7 +24,7 @@ class BlendActionLoader(plugin.AssetLoader): moment. """ - product_types = ["action"] + product_types = {"action"} representations = ["blend"] label = "Link Action" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_animation.py b/client/ayon_core/hosts/blender/plugins/load/load_animation.py index 5da270f9e4..effb91c48c 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_animation.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_animation.py @@ -16,7 +16,7 @@ class BlendAnimationLoader(plugin.AssetLoader): moment. """ - product_types = ["animation"] + product_types = {"animation"} representations = ["blend"] label = "Link Animation" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_audio.py b/client/ayon_core/hosts/blender/plugins/load/load_audio.py index 6e72c58bc9..db83c4bca2 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_audio.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_audio.py @@ -20,7 +20,7 @@ from ayon_core.hosts.blender.api.pipeline import ( class AudioLoader(plugin.AssetLoader): """Load audio in Blender.""" - product_types = ["audio"] + product_types = {"audio"} representations = ["wav"] label = "Load Audio" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_blend.py b/client/ayon_core/hosts/blender/plugins/load/load_blend.py index 8cc246f46e..e84dddc88f 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_blend.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_blend.py @@ -20,7 +20,7 @@ from ayon_core.hosts.blender.api.pipeline import ( class BlendLoader(plugin.AssetLoader): """Load assets from a .blend file.""" - product_types = ["model", "rig", "layout", "camera"] + product_types = {"model", "rig", "layout", "camera"} representations = ["blend"] label = "Append Blend" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_blendscene.py b/client/ayon_core/hosts/blender/plugins/load/load_blendscene.py index 41964a906a..627941752f 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_blendscene.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_blendscene.py @@ -18,7 +18,7 @@ from ayon_core.hosts.blender.api.pipeline import ( class BlendSceneLoader(plugin.AssetLoader): """Load assets from a .blend file.""" - product_types = ["blendScene"] + product_types = {"blendScene"} representations = ["blend"] label = "Append Blend" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_camera_abc.py b/client/ayon_core/hosts/blender/plugins/load/load_camera_abc.py index 4c8bfba9a5..e677fc3e58 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_camera_abc.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_camera_abc.py @@ -23,7 +23,7 @@ class AbcCameraLoader(plugin.AssetLoader): Stores the imported asset in an empty named after the asset. """ - product_types = ["camera"] + product_types = {"camera"} representations = ["abc"] label = "Load Camera (ABC)" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_camera_fbx.py b/client/ayon_core/hosts/blender/plugins/load/load_camera_fbx.py index d14f145f81..14d61a6395 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_camera_fbx.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_camera_fbx.py @@ -23,7 +23,7 @@ class FbxCameraLoader(plugin.AssetLoader): Stores the imported asset in an empty named after the asset. """ - product_types = ["camera"] + product_types = {"camera"} representations = ["fbx"] label = "Load Camera (FBX)" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_fbx.py b/client/ayon_core/hosts/blender/plugins/load/load_fbx.py index c330dca160..0042482284 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_fbx.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_fbx.py @@ -23,7 +23,7 @@ class FbxModelLoader(plugin.AssetLoader): Stores the imported asset in an empty named after the asset. """ - product_types = ["model", "rig"] + product_types = {"model", "rig"} representations = ["fbx"] label = "Load FBX" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_layout_json.py b/client/ayon_core/hosts/blender/plugins/load/load_layout_json.py index ccd0ddb432..7a3da1882e 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_layout_json.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_layout_json.py @@ -26,7 +26,7 @@ from ayon_core.hosts.blender.api import plugin class JsonLayoutLoader(plugin.AssetLoader): """Load layout published from Unreal.""" - product_types = ["layout"] + product_types = {"layout"} representations = ["json"] label = "Load Layout" diff --git a/client/ayon_core/hosts/blender/plugins/load/load_look.py b/client/ayon_core/hosts/blender/plugins/load/load_look.py index b3c0d705ce..ce677a8471 100644 --- a/client/ayon_core/hosts/blender/plugins/load/load_look.py +++ b/client/ayon_core/hosts/blender/plugins/load/load_look.py @@ -23,7 +23,7 @@ class BlendLookLoader(plugin.AssetLoader): contains the model. There is no further need to 'containerise' it. """ - product_types = ["look"] + product_types = {"look"} representations = ["json"] label = "Load Look" diff --git a/client/ayon_core/hosts/flame/plugins/load/load_clip.py b/client/ayon_core/hosts/flame/plugins/load/load_clip.py index 014833db1b..f528caeb29 100644 --- a/client/ayon_core/hosts/flame/plugins/load/load_clip.py +++ b/client/ayon_core/hosts/flame/plugins/load/load_clip.py @@ -17,7 +17,7 @@ class LoadClip(opfapi.ClipLoader): during conforming to project """ - product_types = ["render2d", "source", "plate", "render", "review"] + product_types = {"render2d", "source", "plate", "render", "review"} representations = ["*"] extensions = set( ext.lstrip(".") for ext in IMAGE_EXTENSIONS.union(VIDEO_EXTENSIONS) diff --git a/client/ayon_core/hosts/flame/plugins/load/load_clip_batch.py b/client/ayon_core/hosts/flame/plugins/load/load_clip_batch.py index 4884eb643f..9bdd467d63 100644 --- a/client/ayon_core/hosts/flame/plugins/load/load_clip_batch.py +++ b/client/ayon_core/hosts/flame/plugins/load/load_clip_batch.py @@ -16,7 +16,7 @@ class LoadClipBatch(opfapi.ClipLoader): during conforming to project """ - product_types = ["render2d", "source", "plate", "render", "review"] + product_types = {"render2d", "source", "plate", "render", "review"} representations = ["*"] extensions = set( ext.lstrip(".") for ext in IMAGE_EXTENSIONS.union(VIDEO_EXTENSIONS) diff --git a/client/ayon_core/hosts/fusion/plugins/load/actions.py b/client/ayon_core/hosts/fusion/plugins/load/actions.py index 38413a3e41..9600479680 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/actions.py +++ b/client/ayon_core/hosts/fusion/plugins/load/actions.py @@ -8,14 +8,15 @@ from ayon_core.pipeline import load class FusionSetFrameRangeLoader(load.LoaderPlugin): """Set frame range excluding pre- and post-handles""" - product_types = [ + product_types = { "animation", "camera", "imagesequence", "render", "yeticache", "pointcache", - "render"] + "render", + } representations = ["*"] extensions = {"*"} @@ -44,14 +45,15 @@ class FusionSetFrameRangeLoader(load.LoaderPlugin): class FusionSetFrameRangeWithHandlesLoader(load.LoaderPlugin): """Set frame range including pre- and post-handles""" - product_types = [ + product_types = { "animation", "camera", "imagesequence", "render", "yeticache", "pointcache", - "render"] + "render", + } representations = ["*"] label = "Set frame range (with handles)" diff --git a/client/ayon_core/hosts/fusion/plugins/load/load_alembic.py b/client/ayon_core/hosts/fusion/plugins/load/load_alembic.py index a81e09cc7f..ae2175964d 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/load_alembic.py +++ b/client/ayon_core/hosts/fusion/plugins/load/load_alembic.py @@ -12,7 +12,7 @@ from ayon_core.hosts.fusion.api import ( class FusionLoadAlembicMesh(load.LoaderPlugin): """Load Alembic mesh into Fusion""" - product_types = ["pointcache", "model"] + product_types = {"pointcache", "model"} representations = ["*"] extensions = {"abc"} diff --git a/client/ayon_core/hosts/fusion/plugins/load/load_fbx.py b/client/ayon_core/hosts/fusion/plugins/load/load_fbx.py index 33d9dd48f7..68b7cdacd1 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/load_fbx.py +++ b/client/ayon_core/hosts/fusion/plugins/load/load_fbx.py @@ -12,7 +12,7 @@ from ayon_core.hosts.fusion.api import ( class FusionLoadFBXMesh(load.LoaderPlugin): """Load FBX mesh into Fusion""" - product_types = ["*"] + product_types = {"*"} representations = ["*"] extensions = { "3ds", diff --git a/client/ayon_core/hosts/fusion/plugins/load/load_sequence.py b/client/ayon_core/hosts/fusion/plugins/load/load_sequence.py index d2fe3b2bf0..f0a8233377 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/load_sequence.py +++ b/client/ayon_core/hosts/fusion/plugins/load/load_sequence.py @@ -129,14 +129,14 @@ def loader_shift(loader, frame, relative=True): class FusionLoadSequence(load.LoaderPlugin): """Load image sequence into Fusion""" - product_types = [ + product_types = { "imagesequence", "review", "render", "plate", "image", "online", - ] + } representations = ["*"] extensions = set( ext.lstrip(".") for ext in IMAGE_EXTENSIONS.union(VIDEO_EXTENSIONS) diff --git a/client/ayon_core/hosts/fusion/plugins/load/load_usd.py b/client/ayon_core/hosts/fusion/plugins/load/load_usd.py index 4648ff2ceb..2f8eeb4c66 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/load_usd.py +++ b/client/ayon_core/hosts/fusion/plugins/load/load_usd.py @@ -16,7 +16,7 @@ class FusionLoadUSD(load.LoaderPlugin): Support for USD was added since Fusion 18.5 """ - product_types = ["*"] + product_types = {"*"} representations = ["*"] extensions = {"usd", "usda", "usdz"} diff --git a/client/ayon_core/hosts/fusion/plugins/load/load_workfile.py b/client/ayon_core/hosts/fusion/plugins/load/load_workfile.py index b0ae358355..fd2fa7c08b 100644 --- a/client/ayon_core/hosts/fusion/plugins/load/load_workfile.py +++ b/client/ayon_core/hosts/fusion/plugins/load/load_workfile.py @@ -14,7 +14,7 @@ from ayon_core.hosts.fusion.api import ( class FusionLoadWorkfile(load.LoaderPlugin): """Load the content of a workfile into Fusion""" - product_types = ["workfile"] + product_types = {"workfile"} representations = ["*"] extensions = {"comp"} diff --git a/client/ayon_core/hosts/harmony/api/README.md b/client/ayon_core/hosts/harmony/api/README.md index 4b9415357f..6d1e400476 100644 --- a/client/ayon_core/hosts/harmony/api/README.md +++ b/client/ayon_core/hosts/harmony/api/README.md @@ -582,7 +582,7 @@ class ImageSequenceLoader(load.LoaderPlugin): """Load images Stores the imported asset in a container named after the asset. """ - product_types = ["mindbender.imagesequence"] + product_types = {"mindbender.imagesequence"} representations = ["*"] def load(self, context, name=None, namespace=None, data=None): diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_audio.py b/client/ayon_core/hosts/harmony/plugins/load/load_audio.py index bc1e64e48b..00f3ac77ec 100644 --- a/client/ayon_core/hosts/harmony/plugins/load/load_audio.py +++ b/client/ayon_core/hosts/harmony/plugins/load/load_audio.py @@ -35,7 +35,7 @@ function %s(args) class ImportAudioLoader(load.LoaderPlugin): """Import audio.""" - product_types = ["shot", "audio"] + product_types = {"shot", "audio"} representations = ["wav"] label = "Import Audio" diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_background.py b/client/ayon_core/hosts/harmony/plugins/load/load_background.py index 13b06a226c..74bc5a4fd8 100644 --- a/client/ayon_core/hosts/harmony/plugins/load/load_background.py +++ b/client/ayon_core/hosts/harmony/plugins/load/load_background.py @@ -233,7 +233,7 @@ class BackgroundLoader(load.LoaderPlugin): """Load images Stores the imported asset in a container named after the asset. """ - product_types = ["background"] + product_types = {"background"} representations = ["json"] def load(self, context, name=None, namespace=None, data=None): diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_imagesequence.py b/client/ayon_core/hosts/harmony/plugins/load/load_imagesequence.py index 33f19cefcd..bf4b87a03e 100644 --- a/client/ayon_core/hosts/harmony/plugins/load/load_imagesequence.py +++ b/client/ayon_core/hosts/harmony/plugins/load/load_imagesequence.py @@ -20,14 +20,14 @@ class ImageSequenceLoader(load.LoaderPlugin): Stores the imported asset in a container named after the asset. """ - product_types = [ + product_types = { "shot", "render", "image", "plate", "reference", "review", - ] + } representations = ["*"] extensions = {"jpeg", "png", "jpg"} diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_palette.py b/client/ayon_core/hosts/harmony/plugins/load/load_palette.py index cc95b06bd6..d5fbeb323b 100644 --- a/client/ayon_core/hosts/harmony/plugins/load/load_palette.py +++ b/client/ayon_core/hosts/harmony/plugins/load/load_palette.py @@ -11,7 +11,7 @@ import ayon_core.hosts.harmony.api as harmony class ImportPaletteLoader(load.LoaderPlugin): """Import palettes.""" - product_types = ["palette", "harmony.palette"] + product_types = {"palette", "harmony.palette"} representations = ["plt"] label = "Import Palette" diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_template.py b/client/ayon_core/hosts/harmony/plugins/load/load_template.py index 21b51bce48..48064f2b75 100644 --- a/client/ayon_core/hosts/harmony/plugins/load/load_template.py +++ b/client/ayon_core/hosts/harmony/plugins/load/load_template.py @@ -23,7 +23,7 @@ class TemplateLoader(load.LoaderPlugin): """ - product_types = ["template", "workfile"] + product_types = {"template", "workfile"} representations = ["*"] label = "Load Template" icon = "gift" diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_template_workfile.py b/client/ayon_core/hosts/harmony/plugins/load/load_template_workfile.py index ec58d61ef0..7bf634f00c 100644 --- a/client/ayon_core/hosts/harmony/plugins/load/load_template_workfile.py +++ b/client/ayon_core/hosts/harmony/plugins/load/load_template_workfile.py @@ -13,7 +13,7 @@ import ayon_core.hosts.harmony.api as harmony class ImportTemplateLoader(load.LoaderPlugin): """Import templates.""" - product_types = ["harmony.template", "workfile"] + product_types = {"harmony.template", "workfile"} representations = ["*"] label = "Import Template" @@ -60,6 +60,6 @@ class ImportTemplateLoader(load.LoaderPlugin): class ImportWorkfileLoader(ImportTemplateLoader): """Import workfiles.""" - product_types = ["workfile"] + product_types = {"workfile"} representations = ["zip"] label = "Import Workfile" diff --git a/client/ayon_core/hosts/hiero/plugins/load/load_clip.py b/client/ayon_core/hosts/hiero/plugins/load/load_clip.py index 58da259429..72d7e03a9a 100644 --- a/client/ayon_core/hosts/hiero/plugins/load/load_clip.py +++ b/client/ayon_core/hosts/hiero/plugins/load/load_clip.py @@ -15,7 +15,7 @@ class LoadClip(phiero.SequenceLoader): during conforming to project """ - product_types = ["render2d", "source", "plate", "render", "review"] + product_types = {"render2d", "source", "plate", "render", "review"} representations = ["*"] extensions = set( ext.lstrip(".") for ext in IMAGE_EXTENSIONS.union(VIDEO_EXTENSIONS) diff --git a/client/ayon_core/hosts/hiero/plugins/load/load_effects.py b/client/ayon_core/hosts/hiero/plugins/load/load_effects.py index b1ad48af75..fd6b8ed694 100644 --- a/client/ayon_core/hosts/hiero/plugins/load/load_effects.py +++ b/client/ayon_core/hosts/hiero/plugins/load/load_effects.py @@ -14,7 +14,7 @@ from ayon_core.lib import Logger class LoadEffects(load.LoaderPlugin): """Loading colorspace soft effect exported from nukestudio""" - product_types = ["effect"] + product_types = {"effect"} representations = ["*"] extension = {"json"} diff --git a/client/ayon_core/hosts/houdini/plugins/load/actions.py b/client/ayon_core/hosts/houdini/plugins/load/actions.py index 0b5665adb4..c277005919 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/actions.py +++ b/client/ayon_core/hosts/houdini/plugins/load/actions.py @@ -8,13 +8,13 @@ from ayon_core.pipeline import load class SetFrameRangeLoader(load.LoaderPlugin): """Set frame range excluding pre- and post-handles""" - product_types = [ + product_types = { "animation", "camera", "pointcache", "vdbcache", "usd", - ] + } representations = ["abc", "vdb", "usd"] label = "Set frame range" @@ -45,13 +45,13 @@ class SetFrameRangeLoader(load.LoaderPlugin): class SetFrameRangeWithHandlesLoader(load.LoaderPlugin): """Set frame range including pre- and post-handles""" - product_types = [ + product_types = { "animation", "camera", "pointcache", "vdbcache", "usd", - ] + } representations = ["abc", "vdb", "usd"] label = "Set frame range (with handles)" diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_alembic.py b/client/ayon_core/hosts/houdini/plugins/load/load_alembic.py index 681fecaba9..3398920e87 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_alembic.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_alembic.py @@ -9,7 +9,7 @@ from ayon_core.hosts.houdini.api import pipeline class AbcLoader(load.LoaderPlugin): """Load Alembic""" - product_types = ["model", "animation", "pointcache", "gpuCache"] + product_types = {"model", "animation", "pointcache", "gpuCache"} label = "Load Alembic" representations = ["abc"] order = -10 diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_alembic_archive.py b/client/ayon_core/hosts/houdini/plugins/load/load_alembic_archive.py index 3ee0a936ca..8d3becb973 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_alembic_archive.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_alembic_archive.py @@ -9,7 +9,7 @@ from ayon_core.hosts.houdini.api import pipeline class AbcArchiveLoader(load.LoaderPlugin): """Load Alembic as full geometry network hierarchy """ - product_types = ["model", "animation", "pointcache", "gpuCache"] + product_types = {"model", "animation", "pointcache", "gpuCache"} label = "Load Alembic as Archive" representations = ["abc"] order = -5 diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_ass.py b/client/ayon_core/hosts/houdini/plugins/load/load_ass.py index 9c5c6e18d2..fd0e8f4604 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_ass.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_ass.py @@ -11,7 +11,7 @@ from ayon_core.hosts.houdini.api import pipeline class AssLoader(load.LoaderPlugin): """Load .ass with Arnold Procedural""" - product_types = ["ass"] + product_types = {"ass"} label = "Load Arnold Procedural" representations = ["ass"] order = -10 diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_bgeo.py b/client/ayon_core/hosts/houdini/plugins/load/load_bgeo.py index 4e3fd36b5f..fd8071c0de 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_bgeo.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_bgeo.py @@ -13,7 +13,7 @@ class BgeoLoader(load.LoaderPlugin): """Load bgeo files to Houdini.""" label = "Load bgeo" - product_types = ["model", "pointcache", "bgeo"] + product_types = {"model", "pointcache", "bgeo"} representations = [ "bgeo", "bgeosc", "bgeogz", "bgeo.sc", "bgeo.gz", "bgeo.lzma", "bgeo.bz2"] diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_camera.py b/client/ayon_core/hosts/houdini/plugins/load/load_camera.py index 2ab4e314b5..605e5724e6 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_camera.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_camera.py @@ -87,7 +87,7 @@ def transfer_non_default_values(src, dest, ignore=None): class CameraLoader(load.LoaderPlugin): """Load camera from an Alembic file""" - product_types = ["camera"] + product_types = {"camera"} label = "Load Camera (abc)" representations = ["abc"] order = -10 diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_fbx.py b/client/ayon_core/hosts/houdini/plugins/load/load_fbx.py index 9b801e69eb..a0c5e0c934 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_fbx.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_fbx.py @@ -16,7 +16,7 @@ class FbxLoader(load.LoaderPlugin): order = -10 - product_types = ["*"] + product_types = {"*"} representations = ["*"] extensions = {"fbx"} diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_hda.py b/client/ayon_core/hosts/houdini/plugins/load/load_hda.py index b4d38665c1..df77783a34 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_hda.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_hda.py @@ -10,7 +10,7 @@ from ayon_core.hosts.houdini.api import pipeline class HdaLoader(load.LoaderPlugin): """Load Houdini Digital Asset file.""" - product_types = ["hda"] + product_types = {"hda"} label = "Load Hda" representations = ["hda"] order = -10 diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_image.py b/client/ayon_core/hosts/houdini/plugins/load/load_image.py index 148d174652..b77e4f662a 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_image.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_image.py @@ -44,7 +44,7 @@ def get_image_avalon_container(): class ImageLoader(load.LoaderPlugin): """Load images into COP2""" - product_types = ["imagesequence"] + product_types = {"imagesequence"} label = "Load Image (COP2)" representations = ["*"] order = -10 diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_redshift_proxy.py b/client/ayon_core/hosts/houdini/plugins/load/load_redshift_proxy.py index dc353ac1b5..a6556619fc 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_redshift_proxy.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_redshift_proxy.py @@ -13,7 +13,7 @@ import hou class RedshiftProxyLoader(load.LoaderPlugin): """Load Redshift Proxy""" - product_types = ["redshiftproxy"] + product_types = {"redshiftproxy"} label = "Load Redshift Proxy" representations = ["rs"] order = -10 diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_usd_layer.py b/client/ayon_core/hosts/houdini/plugins/load/load_usd_layer.py index 6169c40f92..19950e2c98 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_usd_layer.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_usd_layer.py @@ -9,10 +9,10 @@ from ayon_core.hosts.houdini.api import lib class USDSublayerLoader(load.LoaderPlugin): """Sublayer USD file in Solaris""" - product_types = [ + product_types = { "usd", "usdCamera", - ] + } label = "Sublayer USD" representations = ["usd", "usda", "usdlc", "usdnc", "abc"] order = 1 diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_usd_reference.py b/client/ayon_core/hosts/houdini/plugins/load/load_usd_reference.py index 5b58024c80..25f98c7c7c 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_usd_reference.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_usd_reference.py @@ -9,10 +9,10 @@ from ayon_core.hosts.houdini.api import lib class USDReferenceLoader(load.LoaderPlugin): """Reference USD file in Solaris""" - product_types = [ + product_types = { "usd", "usdCamera", - ] + } label = "Reference USD" representations = ["usd", "usda", "usdlc", "usdnc", "abc"] order = -8 diff --git a/client/ayon_core/hosts/houdini/plugins/load/load_vdb.py b/client/ayon_core/hosts/houdini/plugins/load/load_vdb.py index 79797f6b66..d9808020d7 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/load_vdb.py +++ b/client/ayon_core/hosts/houdini/plugins/load/load_vdb.py @@ -11,7 +11,7 @@ from ayon_core.hosts.houdini.api import pipeline class VdbLoader(load.LoaderPlugin): """Load VDB""" - product_types = ["vdbcache"] + product_types = {"vdbcache"} label = "Load VDB" representations = ["vdb"] order = -10 diff --git a/client/ayon_core/hosts/houdini/plugins/load/show_usdview.py b/client/ayon_core/hosts/houdini/plugins/load/show_usdview.py index 8b668d004f..9506d9dd0c 100644 --- a/client/ayon_core/hosts/houdini/plugins/load/show_usdview.py +++ b/client/ayon_core/hosts/houdini/plugins/load/show_usdview.py @@ -11,7 +11,7 @@ class ShowInUsdview(load.LoaderPlugin): label = "Show in usdview" representations = ["*"] - product_types = ["*"] + product_types = {"*"} extensions = {"usd", "usda", "usdlc", "usdnc", "abc"} order = 15 diff --git a/client/ayon_core/hosts/max/plugins/load/load_camera_fbx.py b/client/ayon_core/hosts/max/plugins/load/load_camera_fbx.py index e82c6061d9..e1de6b98f9 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_camera_fbx.py +++ b/client/ayon_core/hosts/max/plugins/load/load_camera_fbx.py @@ -18,7 +18,7 @@ from ayon_core.pipeline import get_representation_path, load class FbxLoader(load.LoaderPlugin): """Fbx Loader.""" - product_types = ["camera"] + product_types = {"camera"} representations = ["fbx"] order = -9 icon = "code-fork" diff --git a/client/ayon_core/hosts/max/plugins/load/load_max_scene.py b/client/ayon_core/hosts/max/plugins/load/load_max_scene.py index 7e6a126426..1c2c5317cc 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_max_scene.py +++ b/client/ayon_core/hosts/max/plugins/load/load_max_scene.py @@ -72,10 +72,11 @@ class MaterialDupOptionsWindow(QtWidgets.QDialog): class MaxSceneLoader(load.LoaderPlugin): """Max Scene Loader.""" - product_types = [ + product_types = { "camera", "maxScene", - "model"] + "model", + } representations = ["max"] order = -8 diff --git a/client/ayon_core/hosts/max/plugins/load/load_model.py b/client/ayon_core/hosts/max/plugins/load/load_model.py index 4090692afc..00e675d69c 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_model.py +++ b/client/ayon_core/hosts/max/plugins/load/load_model.py @@ -14,7 +14,7 @@ from ayon_core.hosts.max.api.lib import ( class ModelAbcLoader(load.LoaderPlugin): """Loading model with the Alembic loader.""" - product_types = ["model"] + product_types = {"model"} label = "Load Model with Alembic" representations = ["abc"] order = -10 diff --git a/client/ayon_core/hosts/max/plugins/load/load_model_fbx.py b/client/ayon_core/hosts/max/plugins/load/load_model_fbx.py index 1ab59c6cc8..4b87c60de0 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_model_fbx.py +++ b/client/ayon_core/hosts/max/plugins/load/load_model_fbx.py @@ -17,7 +17,7 @@ from ayon_core.hosts.max.api.lib import maintained_selection class FbxModelLoader(load.LoaderPlugin): """Fbx Model Loader.""" - product_types = ["model"] + product_types = {"model"} representations = ["fbx"] order = -9 icon = "code-fork" diff --git a/client/ayon_core/hosts/max/plugins/load/load_model_obj.py b/client/ayon_core/hosts/max/plugins/load/load_model_obj.py index 120c483a7d..4f8a22af07 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_model_obj.py +++ b/client/ayon_core/hosts/max/plugins/load/load_model_obj.py @@ -20,7 +20,7 @@ from ayon_core.pipeline import get_representation_path, load class ObjLoader(load.LoaderPlugin): """Obj Loader.""" - product_types = ["model"] + product_types = {"model"} representations = ["obj"] order = -9 icon = "code-fork" diff --git a/client/ayon_core/hosts/max/plugins/load/load_model_usd.py b/client/ayon_core/hosts/max/plugins/load/load_model_usd.py index 9cc2375cf2..bde23e119e 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_model_usd.py +++ b/client/ayon_core/hosts/max/plugins/load/load_model_usd.py @@ -22,7 +22,7 @@ from ayon_core.pipeline import get_representation_path, load class ModelUSDLoader(load.LoaderPlugin): """Loading model with the USD loader.""" - product_types = ["model"] + product_types = {"model"} label = "Load Model(USD)" representations = ["usda"] order = -10 diff --git a/client/ayon_core/hosts/max/plugins/load/load_pointcache.py b/client/ayon_core/hosts/max/plugins/load/load_pointcache.py index 0a1d6cbd85..7f515ac6a5 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_pointcache.py +++ b/client/ayon_core/hosts/max/plugins/load/load_pointcache.py @@ -18,7 +18,7 @@ from ayon_core.hosts.max.api.pipeline import ( class AbcLoader(load.LoaderPlugin): """Alembic loader.""" - product_types = ["camera", "animation", "pointcache"] + product_types = {"camera", "animation", "pointcache"} label = "Load Alembic" representations = ["abc"] order = -10 diff --git a/client/ayon_core/hosts/max/plugins/load/load_pointcache_ornatrix.py b/client/ayon_core/hosts/max/plugins/load/load_pointcache_ornatrix.py index 7e27afd7e8..31d3f02ec0 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_pointcache_ornatrix.py +++ b/client/ayon_core/hosts/max/plugins/load/load_pointcache_ornatrix.py @@ -21,7 +21,7 @@ from pymxs import runtime as rt class OxAbcLoader(load.LoaderPlugin): """Ornatrix Alembic loader.""" - product_types = ["camera", "animation", "pointcache"] + product_types = {"camera", "animation", "pointcache"} label = "Load Alembic with Ornatrix" representations = ["abc"] order = -10 diff --git a/client/ayon_core/hosts/max/plugins/load/load_pointcloud.py b/client/ayon_core/hosts/max/plugins/load/load_pointcloud.py index 6246979de1..c0000c7a79 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_pointcloud.py +++ b/client/ayon_core/hosts/max/plugins/load/load_pointcloud.py @@ -17,7 +17,7 @@ from ayon_core.pipeline import get_representation_path, load class PointCloudLoader(load.LoaderPlugin): """Point Cloud Loader.""" - product_types = ["pointcloud"] + product_types = {"pointcloud"} representations = ["prt"] order = -8 icon = "code-fork" diff --git a/client/ayon_core/hosts/max/plugins/load/load_redshift_proxy.py b/client/ayon_core/hosts/max/plugins/load/load_redshift_proxy.py index 34732a9ef0..ff6811bd1b 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_redshift_proxy.py +++ b/client/ayon_core/hosts/max/plugins/load/load_redshift_proxy.py @@ -23,7 +23,7 @@ class RedshiftProxyLoader(load.LoaderPlugin): """Load rs files with Redshift Proxy""" label = "Load Redshift Proxy" - product_types = ["redshiftproxy"] + product_types = {"redshiftproxy"} representations = ["rs"] order = -9 icon = "code-fork" diff --git a/client/ayon_core/hosts/max/plugins/load/load_tycache.py b/client/ayon_core/hosts/max/plugins/load/load_tycache.py index 3460b913ed..0244e4e6fc 100644 --- a/client/ayon_core/hosts/max/plugins/load/load_tycache.py +++ b/client/ayon_core/hosts/max/plugins/load/load_tycache.py @@ -16,7 +16,7 @@ from ayon_core.pipeline import get_representation_path, load class TyCacheLoader(load.LoaderPlugin): """TyCache Loader.""" - product_types = ["tycache"] + product_types = {"tycache"} representations = ["tyc"] order = -8 icon = "code-fork" diff --git a/client/ayon_core/hosts/maya/plugins/load/_load_animation.py b/client/ayon_core/hosts/maya/plugins/load/_load_animation.py index b9033bf2e4..884bdd7538 100644 --- a/client/ayon_core/hosts/maya/plugins/load/_load_animation.py +++ b/client/ayon_core/hosts/maya/plugins/load/_load_animation.py @@ -46,10 +46,11 @@ def _process_reference(file_url, name, namespace, options): class AbcLoader(ayon_core.hosts.maya.api.plugin.ReferenceLoader): """Loader to reference an Alembic file""" - product_types = [ + product_types = { "animation", "camera", - "pointcache"] + "pointcache", + } representations = ["abc"] label = "Reference animation" @@ -76,9 +77,10 @@ class AbcLoader(ayon_core.hosts.maya.api.plugin.ReferenceLoader): class FbxLoader(ayon_core.hosts.maya.api.plugin.ReferenceLoader): """Loader to reference an Fbx files""" - product_types = [ + product_types = { "animation", - "camera"] + "camera", + } representations = ["fbx"] label = "Reference animation" diff --git a/client/ayon_core/hosts/maya/plugins/load/actions.py b/client/ayon_core/hosts/maya/plugins/load/actions.py index 0cf031d012..a98fe97692 100644 --- a/client/ayon_core/hosts/maya/plugins/load/actions.py +++ b/client/ayon_core/hosts/maya/plugins/load/actions.py @@ -13,11 +13,12 @@ import ayon_core.hosts.maya.api.plugin class SetFrameRangeLoader(load.LoaderPlugin): """Set frame range excluding pre- and post-handles""" - product_types = [ + product_types = { "animation", "camera", "proxyAbc", - "pointcache"] + "pointcache", + } representations = ["abc"] label = "Set frame range" @@ -47,11 +48,12 @@ class SetFrameRangeLoader(load.LoaderPlugin): class SetFrameRangeWithHandlesLoader(load.LoaderPlugin): """Set frame range including pre- and post-handles""" - product_types = [ + product_types = { "animation", "camera", "proxyAbc", - "pointcache"] + "pointcache", + } representations = ["abc"] label = "Set frame range (with handles)" @@ -93,7 +95,7 @@ class ImportMayaLoader(ayon_core.hosts.maya.api.plugin.Loader): """ representations = ["ma", "mb", "obj"] - product_types = [ + product_types = { "model", "pointcache", "proxyAbc", @@ -106,8 +108,8 @@ class ImportMayaLoader(ayon_core.hosts.maya.api.plugin.Loader): "rig", "camerarig", "staticMesh", - "workfile" - ] + "workfile", + } label = "Import" order = 10 diff --git a/client/ayon_core/hosts/maya/plugins/load/load_arnold_standin.py b/client/ayon_core/hosts/maya/plugins/load/load_arnold_standin.py index 04445e68cf..920ad762b3 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_arnold_standin.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_arnold_standin.py @@ -29,9 +29,9 @@ def is_sequence(files): class ArnoldStandinLoader(load.LoaderPlugin): """Load as Arnold standin""" - product_types = [ + product_types = { "ass", "animation", "model", "proxyAbc", "pointcache", "usd" - ] + } representations = ["ass", "abc", "usda", "usdc", "usd"] label = "Load as Arnold standin" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_assembly.py b/client/ayon_core/hosts/maya/plugins/load/load_assembly.py index 1db253822e..a0cbf91905 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_assembly.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_assembly.py @@ -12,7 +12,7 @@ from ayon_core.hosts.maya.api import setdress class AssemblyLoader(load.LoaderPlugin): - product_types = ["assembly"] + product_types = {"assembly"} representations = ["json"] label = "Load Set Dress" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_audio.py b/client/ayon_core/hosts/maya/plugins/load/load_audio.py index 2720a5ddfa..0a40993fcd 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_audio.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_audio.py @@ -11,7 +11,7 @@ from ayon_core.hosts.maya.api.lib import unique_namespace, get_container_members class AudioLoader(load.LoaderPlugin): """Specific loader of audio.""" - product_types = ["audio"] + product_types = {"audio"} label = "Load audio" representations = ["wav"] icon = "volume-up" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_gpucache.py b/client/ayon_core/hosts/maya/plugins/load/load_gpucache.py index ca0eadc677..494bc7cfc6 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_gpucache.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_gpucache.py @@ -15,7 +15,7 @@ from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type class GpuCacheLoader(load.LoaderPlugin): """Load Alembic as gpuCache""" - product_types = ["model", "animation", "proxyAbc", "pointcache"] + product_types = {"model", "animation", "proxyAbc", "pointcache"} representations = ["abc", "gpu_cache"] label = "Load Gpu Cache" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_image.py b/client/ayon_core/hosts/maya/plugins/load/load_image.py index 7db68365ca..4976c46d7f 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_image.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_image.py @@ -93,7 +93,7 @@ def create_stencil(): class FileNodeLoader(load.LoaderPlugin): """File node loader.""" - product_types = ["image", "plate", "render"] + product_types = {"image", "plate", "render"} label = "Load file node" representations = ["exr", "tif", "png", "jpg"] icon = "image" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_image_plane.py b/client/ayon_core/hosts/maya/plugins/load/load_image_plane.py index 788971fcf8..7d6f7e26cf 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_image_plane.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_image_plane.py @@ -87,7 +87,7 @@ class CameraWindow(QtWidgets.QDialog): class ImagePlaneLoader(load.LoaderPlugin): """Specific loader of plate for image planes on selected camera.""" - product_types = ["image", "plate", "render"] + product_types = {"image", "plate", "render"} label = "Load imagePlane" representations = ["mov", "exr", "preview", "png", "jpg"] icon = "image" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_look.py b/client/ayon_core/hosts/maya/plugins/load/load_look.py index a2203b6e9b..f126a1df26 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_look.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_look.py @@ -17,7 +17,7 @@ from ayon_core.tools.utils import ScrollMessageBox class LookLoader(ayon_core.hosts.maya.api.plugin.ReferenceLoader): """Specific loader for lookdev""" - product_types = ["look"] + product_types = {"look"} representations = ["ma"] label = "Reference look" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_matchmove.py b/client/ayon_core/hosts/maya/plugins/load/load_matchmove.py index 749369de87..05da173bb7 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_matchmove.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_matchmove.py @@ -8,7 +8,7 @@ class MatchmoveLoader(load.LoaderPlugin): Supported script types are .py and .mel """ - product_types = ["matchmove"] + product_types = {"matchmove"} representations = ["py", "mel"] defaults = ["Camera", "Object", "Mocap"] diff --git a/client/ayon_core/hosts/maya/plugins/load/load_maya_usd.py b/client/ayon_core/hosts/maya/plugins/load/load_maya_usd.py index 885941ee59..cd73c26de1 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_maya_usd.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_maya_usd.py @@ -16,7 +16,7 @@ from ayon_core.hosts.maya.api.pipeline import containerise class MayaUsdLoader(load.LoaderPlugin): """Read USD data in a Maya USD Proxy""" - product_types = ["model", "usd", "pointcache", "animation"] + product_types = {"model", "usd", "pointcache", "animation"} representations = ["usd", "usda", "usdc", "usdz", "abc"] label = "Load USD to Maya Proxy" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd.py b/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd.py index 9d78c63205..984d14dff3 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd.py @@ -20,14 +20,14 @@ from ayon_core.hosts.maya.api.pipeline import containerise class MultiverseUsdLoader(load.LoaderPlugin): """Read USD data in a Multiverse Compound""" - product_types = [ + product_types = { "model", "usd", "mvUsdComposition", "mvUsdOverride", "pointcache", - "animation" - ] + "animation", + } representations = ["usd", "usda", "usdc", "usdz", "abc"] label = "Load USD to Multiverse" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd_over.py b/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd_over.py index 10cf4918a4..dc5bc6ec1c 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd_over.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_multiverse_usd_over.py @@ -19,7 +19,7 @@ from ayon_core.hosts.maya.api.pipeline import containerise class MultiverseUsdOverLoader(load.LoaderPlugin): """Reference file""" - product_types = ["mvUsdOverride"] + product_types = {"mvUsdOverride"} representations = ["usda", "usd", "udsz"] label = "Load Usd Override into Compound" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_redshift_proxy.py b/client/ayon_core/hosts/maya/plugins/load/load_redshift_proxy.py index a6f0a0878e..63dae87243 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_redshift_proxy.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_redshift_proxy.py @@ -22,7 +22,7 @@ from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type class RedshiftProxyLoader(load.LoaderPlugin): """Load Redshift proxy""" - product_types = ["redshiftproxy"] + product_types = {"redshiftproxy"} representations = ["rs"] label = "Import Redshift Proxy" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_reference.py b/client/ayon_core/hosts/maya/plugins/load/load_reference.py index a3914f2efe..fdd85eda43 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_reference.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_reference.py @@ -89,7 +89,7 @@ def preserve_modelpanel_cameras(container, log=None): class ReferenceLoader(plugin.ReferenceLoader): """Reference file""" - product_types = [ + product_types = { "model", "pointcache", "proxyAbc", @@ -104,8 +104,8 @@ class ReferenceLoader(plugin.ReferenceLoader): "staticMesh", "skeletalMesh", "mvLook", - "matchmove" - ] + "matchmove", + } representations = ["ma", "abc", "fbx", "mb"] @@ -272,7 +272,7 @@ class MayaUSDReferenceLoader(ReferenceLoader): """Reference USD file to native Maya nodes using MayaUSDImport reference""" label = "Reference Maya USD" - product_types = ["usd"] + product_types = {"usd"} representations = ["usd"] extensions = {"usd", "usda", "usdc"} diff --git a/client/ayon_core/hosts/maya/plugins/load/load_rendersetup.py b/client/ayon_core/hosts/maya/plugins/load/load_rendersetup.py index 905be00ae7..6f20e677f0 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_rendersetup.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_rendersetup.py @@ -24,7 +24,7 @@ import maya.app.renderSetup.model.renderSetup as renderSetup class RenderSetupLoader(load.LoaderPlugin): """Load json preset for RenderSetup overwriting current one.""" - product_types = ["rendersetup"] + product_types = {"rendersetup"} representations = ["json"] defaults = ['Main'] diff --git a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_arnold.py b/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_arnold.py index d8cf3774c8..eaa7ff1ae3 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_arnold.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_arnold.py @@ -12,7 +12,7 @@ from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type class LoadVDBtoArnold(load.LoaderPlugin): """Load OpenVDB for Arnold in aiVolume""" - product_types = ["vdbcache"] + product_types = {"vdbcache"} representations = ["vdb"] label = "Load VDB to Arnold" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_redshift.py b/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_redshift.py index f5ed2dfdc2..1707008b67 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_redshift.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_redshift.py @@ -18,7 +18,7 @@ class LoadVDBtoRedShift(load.LoaderPlugin): """ - product_types = ["vdbcache"] + product_types = {"vdbcache"} representations = ["vdb"] label = "Load VDB to RedShift" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_vray.py b/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_vray.py index e5f1674ef3..42d4583d76 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_vray.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_vdb_to_vray.py @@ -77,7 +77,7 @@ def _fix_duplicate_vvg_callbacks(): class LoadVDBtoVRay(load.LoaderPlugin): """Load OpenVDB in a V-Ray Volume Grid""" - product_types = ["vdbcache"] + product_types = {"vdbcache"} representations = ["vdb"] label = "Load VDB to VRay" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_vrayproxy.py b/client/ayon_core/hosts/maya/plugins/load/load_vrayproxy.py index b9f144f5da..651197627e 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_vrayproxy.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_vrayproxy.py @@ -27,7 +27,7 @@ from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type class VRayProxyLoader(load.LoaderPlugin): """Load VRay Proxy with Alembic or VrayMesh.""" - product_types = ["vrayproxy", "model", "pointcache", "animation"] + product_types = {"vrayproxy", "model", "pointcache", "animation"} representations = ["vrmesh", "abc"] label = "Import VRay Proxy" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_vrayscene.py b/client/ayon_core/hosts/maya/plugins/load/load_vrayscene.py index 046a94775f..2f4ab1d080 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_vrayscene.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_vrayscene.py @@ -17,7 +17,7 @@ from ayon_core.hosts.maya.api.plugin import get_load_color_for_product_type class VRaySceneLoader(load.LoaderPlugin): """Load Vray scene""" - product_types = ["vrayscene_layer"] + product_types = {"vrayscene_layer"} representations = ["vrscene"] label = "Import VRay Scene" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_xgen.py b/client/ayon_core/hosts/maya/plugins/load/load_xgen.py index 5b7d630dc3..880efd82e1 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_xgen.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_xgen.py @@ -20,7 +20,7 @@ from ayon_core.pipeline import get_representation_path class XgenLoader(ayon_core.hosts.maya.api.plugin.ReferenceLoader): """Load Xgen as reference""" - product_types = ["xgen"] + product_types = {"xgen"} representations = ["ma", "mb"] label = "Reference Xgen" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_yeti_cache.py b/client/ayon_core/hosts/maya/plugins/load/load_yeti_cache.py index 0ae0f95580..8933c4d8a6 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_yeti_cache.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_yeti_cache.py @@ -36,7 +36,7 @@ def set_attribute(node, attr, value): class YetiCacheLoader(load.LoaderPlugin): """Load Yeti Cache with one or more Yeti nodes""" - product_types = ["yeticache", "yetiRig"] + product_types = {"yeticache", "yetiRig"} representations = ["fur"] label = "Load Yeti Cache" diff --git a/client/ayon_core/hosts/maya/plugins/load/load_yeti_rig.py b/client/ayon_core/hosts/maya/plugins/load/load_yeti_rig.py index 609231900d..74e33c5866 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_yeti_rig.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_yeti_rig.py @@ -7,7 +7,7 @@ from ayon_core.hosts.maya.api import lib class YetiRigLoader(plugin.ReferenceLoader): """This loader will load Yeti rig.""" - product_types = ["yetiRig"] + product_types = {"yetiRig"} representations = ["ma"] label = "Load Yeti Rig" diff --git a/client/ayon_core/hosts/nuke/plugins/load/actions.py b/client/ayon_core/hosts/nuke/plugins/load/actions.py index a9086e2ebc..a1b3697ef1 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/actions.py +++ b/client/ayon_core/hosts/nuke/plugins/load/actions.py @@ -12,12 +12,13 @@ log = Logger.get_logger(__name__) class SetFrameRangeLoader(load.LoaderPlugin): """Set frame range excluding pre- and post-handles""" - product_types = [ + product_types = { "animation", "camera", "write", "yeticache", - "pointcache"] + "pointcache", + } representations = ["*"] extensions = {"*"} @@ -45,12 +46,13 @@ class SetFrameRangeLoader(load.LoaderPlugin): class SetFrameRangeWithHandlesLoader(load.LoaderPlugin): """Set frame range including pre- and post-handles""" - product_types = [ + product_types = { "animation", "camera", "write", "yeticache", - "pointcache"] + "pointcache", + } representations = ["*"] label = "Set frame range (with handles)" diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_backdrop.py b/client/ayon_core/hosts/nuke/plugins/load/load_backdrop.py index 321d327fc5..e48dbf5e2f 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_backdrop.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_backdrop.py @@ -21,7 +21,7 @@ from ayon_core.hosts.nuke.api import containerise, update_container class LoadBackdropNodes(load.LoaderPlugin): """Loading Published Backdrop nodes (workfile, nukenodes)""" - product_types = ["workfile", "nukenodes"] + product_types = {"workfile", "nukenodes"} representations = ["*"] extensions = {"nk"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_camera_abc.py b/client/ayon_core/hosts/nuke/plugins/load/load_camera_abc.py index 574b74e7a1..70b736b1c8 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_camera_abc.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_camera_abc.py @@ -20,7 +20,7 @@ class AlembicCameraLoader(load.LoaderPlugin): This will load alembic camera into script. """ - product_types = ["camera"] + product_types = {"camera"} representations = ["*"] extensions = {"abc"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_clip.py b/client/ayon_core/hosts/nuke/plugins/load/load_clip.py index 9094414080..8a41d854d9 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_clip.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_clip.py @@ -35,13 +35,13 @@ class LoadClip(plugin.NukeLoader): """ log = Logger.get_logger(__name__) - product_types = [ + product_types = { "source", "plate", "render", "prerender", - "review" - ] + "review", + } representations = ["*"] extensions = set( ext.lstrip(".") for ext in IMAGE_EXTENSIONS.union(VIDEO_EXTENSIONS) diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_effects.py b/client/ayon_core/hosts/nuke/plugins/load/load_effects.py index a0e935f480..f17b179d1b 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_effects.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_effects.py @@ -18,7 +18,7 @@ from ayon_core.hosts.nuke.api import ( class LoadEffects(load.LoaderPlugin): """Loading colorspace soft effect exported from nukestudio""" - product_types = ["effect"] + product_types = {"effect"} representations = ["*"] extensions = {"json"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_effects_ip.py b/client/ayon_core/hosts/nuke/plugins/load/load_effects_ip.py index b5f6509fbe..6b58977a95 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_effects_ip.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_effects_ip.py @@ -19,7 +19,7 @@ from ayon_core.hosts.nuke.api import ( class LoadEffectsInputProcess(load.LoaderPlugin): """Loading colorspace soft effect exported from nukestudio""" - product_types = ["effect"] + product_types = {"effect"} representations = ["*"] extensions = {"json"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_gizmo.py b/client/ayon_core/hosts/nuke/plugins/load/load_gizmo.py index 3113d7194c..6709648ffb 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_gizmo.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_gizmo.py @@ -21,7 +21,7 @@ from ayon_core.hosts.nuke.api import ( class LoadGizmo(load.LoaderPlugin): """Loading nuke Gizmo""" - product_types = ["gizmo"] + product_types = {"gizmo"} representations = ["*"] extensions = {"nk"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_gizmo_ip.py b/client/ayon_core/hosts/nuke/plugins/load/load_gizmo_ip.py index 27e7c17756..3017fa5fc9 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_gizmo_ip.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_gizmo_ip.py @@ -23,7 +23,7 @@ from ayon_core.hosts.nuke.api import ( class LoadGizmoInputProcess(load.LoaderPlugin): """Loading colorspace soft effect exported from nukestudio""" - product_types = ["gizmo"] + product_types = {"gizmo"} representations = ["*"] extensions = {"nk"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_image.py b/client/ayon_core/hosts/nuke/plugins/load/load_image.py index c530d234f5..9d3f9ceea0 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_image.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_image.py @@ -23,15 +23,15 @@ from ayon_core.lib.transcoding import ( class LoadImage(load.LoaderPlugin): """Load still image into Nuke""" - product_types = [ + product_types = { "render2d", "source", "plate", "render", "prerender", "review", - "image" - ] + "image", + } representations = ["*"] extensions = set( ext.lstrip(".") for ext in IMAGE_EXTENSIONS diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_matchmove.py b/client/ayon_core/hosts/nuke/plugins/load/load_matchmove.py index a524a6961d..73c21376b4 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_matchmove.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_matchmove.py @@ -7,7 +7,7 @@ class MatchmoveLoader(load.LoaderPlugin): This will run matchmove script to create track in script. """ - product_types = ["matchmove"] + product_types = {"matchmove"} representations = ["*"] extensions = {"py"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_model.py b/client/ayon_core/hosts/nuke/plugins/load/load_model.py index 4ef2721915..971c36b6cf 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_model.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_model.py @@ -18,7 +18,7 @@ class AlembicModelLoader(load.LoaderPlugin): This will load alembic model or anim into script. """ - product_types = ["model", "pointcache", "animation"] + product_types = {"model", "pointcache", "animation"} representations = ["*"] extensions = {"abc"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_ociolook.py b/client/ayon_core/hosts/nuke/plugins/load/load_ociolook.py index 586fbc3209..82addcdfc0 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_ociolook.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_ociolook.py @@ -20,7 +20,7 @@ from ayon_core.hosts.nuke.api import ( class LoadOcioLookNodes(load.LoaderPlugin): """Loading Ocio look to the nuke.Node graph""" - product_types = ["ociolook"] + product_types = {"ociolook"} representations = ["*"] extensions = {"json"} diff --git a/client/ayon_core/hosts/nuke/plugins/load/load_script_precomp.py b/client/ayon_core/hosts/nuke/plugins/load/load_script_precomp.py index 36e1f09c0a..ccc4164355 100644 --- a/client/ayon_core/hosts/nuke/plugins/load/load_script_precomp.py +++ b/client/ayon_core/hosts/nuke/plugins/load/load_script_precomp.py @@ -16,7 +16,7 @@ from ayon_core.hosts.nuke.api import ( class LinkAsGroup(load.LoaderPlugin): """Copy the published file to be pasted at the desired location""" - product_types = ["workfile", "nukenodes"] + product_types = {"workfile", "nukenodes"} representations = ["*"] extensions = {"nk"} diff --git a/client/ayon_core/hosts/photoshop/plugins/load/load_image.py b/client/ayon_core/hosts/photoshop/plugins/load/load_image.py index 0cfa9400f3..72df2706b5 100644 --- a/client/ayon_core/hosts/photoshop/plugins/load/load_image.py +++ b/client/ayon_core/hosts/photoshop/plugins/load/load_image.py @@ -11,7 +11,7 @@ class ImageLoader(photoshop.PhotoshopLoader): Stores the imported asset in a container named after the asset. """ - product_types = ["image", "render"] + product_types = {"image", "render"} representations = ["*"] def load(self, context, name=None, namespace=None, data=None): diff --git a/client/ayon_core/hosts/photoshop/plugins/load/load_image_from_sequence.py b/client/ayon_core/hosts/photoshop/plugins/load/load_image_from_sequence.py index bfedc510e8..25b22f53a4 100644 --- a/client/ayon_core/hosts/photoshop/plugins/load/load_image_from_sequence.py +++ b/client/ayon_core/hosts/photoshop/plugins/load/load_image_from_sequence.py @@ -24,7 +24,7 @@ class ImageFromSequenceLoader(photoshop.PhotoshopLoader): difficult. """ - product_types = ["render"] + product_types = {"render"} representations = ["*"] options = [] diff --git a/client/ayon_core/hosts/photoshop/plugins/load/load_reference.py b/client/ayon_core/hosts/photoshop/plugins/load/load_reference.py index 6ae34503d0..7cd34690f7 100644 --- a/client/ayon_core/hosts/photoshop/plugins/load/load_reference.py +++ b/client/ayon_core/hosts/photoshop/plugins/load/load_reference.py @@ -14,7 +14,7 @@ class ReferenceLoader(photoshop.PhotoshopLoader): "Cannot write to closing transport", possible refactor. """ - product_types = ["image", "render"] + product_types = {"image", "render"} representations = ["*"] def load(self, context, name=None, namespace=None, data=None): diff --git a/client/ayon_core/hosts/resolve/plugins/load/load_clip.py b/client/ayon_core/hosts/resolve/plugins/load/load_clip.py index 848e6a4a54..c7bced5e8e 100644 --- a/client/ayon_core/hosts/resolve/plugins/load/load_clip.py +++ b/client/ayon_core/hosts/resolve/plugins/load/load_clip.py @@ -18,7 +18,7 @@ class LoadClip(plugin.TimelineItemLoader): during conforming to project """ - product_types = ["render2d", "source", "plate", "render", "review"] + product_types = {"render2d", "source", "plate", "render", "review"} representations = ["*"] extensions = set( diff --git a/client/ayon_core/hosts/substancepainter/plugins/load/load_mesh.py b/client/ayon_core/hosts/substancepainter/plugins/load/load_mesh.py index cf95f4506c..f2254c0907 100644 --- a/client/ayon_core/hosts/substancepainter/plugins/load/load_mesh.py +++ b/client/ayon_core/hosts/substancepainter/plugins/load/load_mesh.py @@ -17,7 +17,7 @@ import qargparse class SubstanceLoadProjectMesh(load.LoaderPlugin): """Load mesh for project""" - product_types = ["*"] + product_types = {"*"} representations = ["abc", "fbx", "obj", "gltf"] label = "Load mesh" diff --git a/client/ayon_core/hosts/tvpaint/plugins/load/load_image.py b/client/ayon_core/hosts/tvpaint/plugins/load/load_image.py index 3576dcea15..e954b72f12 100644 --- a/client/ayon_core/hosts/tvpaint/plugins/load/load_image.py +++ b/client/ayon_core/hosts/tvpaint/plugins/load/load_image.py @@ -6,7 +6,7 @@ from ayon_core.hosts.tvpaint.api.lib import execute_george_through_file class ImportImage(plugin.Loader): """Load image or image sequence to TVPaint as new layer.""" - product_types = ["render", "image", "background", "plate", "review"] + product_types = {"render", "image", "background", "plate", "review"} representations = ["*"] label = "Import Image" diff --git a/client/ayon_core/hosts/tvpaint/plugins/load/load_reference_image.py b/client/ayon_core/hosts/tvpaint/plugins/load/load_reference_image.py index e7539583be..a3bcf4c144 100644 --- a/client/ayon_core/hosts/tvpaint/plugins/load/load_reference_image.py +++ b/client/ayon_core/hosts/tvpaint/plugins/load/load_reference_image.py @@ -20,7 +20,7 @@ from ayon_core.hosts.tvpaint.api.pipeline import ( class LoadImage(plugin.Loader): """Load image or image sequence to TVPaint as new layer.""" - product_types = ["render", "image", "background", "plate", "review"] + product_types = {"render", "image", "background", "plate", "review"} representations = ["*"] label = "Load Image" diff --git a/client/ayon_core/hosts/tvpaint/plugins/load/load_sound.py b/client/ayon_core/hosts/tvpaint/plugins/load/load_sound.py index d8f22b3008..182d95d6db 100644 --- a/client/ayon_core/hosts/tvpaint/plugins/load/load_sound.py +++ b/client/ayon_core/hosts/tvpaint/plugins/load/load_sound.py @@ -22,7 +22,7 @@ class ImportSound(plugin.Loader): file contain any audio. """ - product_types = ["audio", "review", "plate"] + product_types = {"audio", "review", "plate"} representations = ["*"] label = "Import Sound" diff --git a/client/ayon_core/hosts/tvpaint/plugins/load/load_workfile.py b/client/ayon_core/hosts/tvpaint/plugins/load/load_workfile.py index 3d1941d266..56aa67708d 100644 --- a/client/ayon_core/hosts/tvpaint/plugins/load/load_workfile.py +++ b/client/ayon_core/hosts/tvpaint/plugins/load/load_workfile.py @@ -24,7 +24,7 @@ from ayon_core.pipeline.version_start import get_versioning_start class LoadWorkfile(plugin.Loader): """Load workfile.""" - product_types = ["workfile"] + product_types = {"workfile"} representations = ["tvpp"] label = "Load Workfile" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_alembic_animation.py b/client/ayon_core/hosts/unreal/plugins/load/load_alembic_animation.py index fbf19832b4..02259b706c 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_alembic_animation.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_alembic_animation.py @@ -14,7 +14,7 @@ import unreal # noqa class AnimationAlembicLoader(plugin.Loader): """Load Unreal SkeletalMesh from Alembic""" - product_types = ["animation"] + product_types = {"animation"} label = "Import Alembic Animation" representations = ["abc"] icon = "cube" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_animation.py b/client/ayon_core/hosts/unreal/plugins/load/load_animation.py index 3d0a260e4e..0f51ac39e0 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_animation.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_animation.py @@ -20,7 +20,7 @@ from ayon_core.hosts.unreal.api import pipeline as unreal_pipeline class AnimationFBXLoader(plugin.Loader): """Load Unreal SkeletalMesh from FBX.""" - product_types = ["animation"] + product_types = {"animation"} label = "Import FBX Animation" representations = ["fbx"] icon = "cube" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_camera.py b/client/ayon_core/hosts/unreal/plugins/load/load_camera.py index b9b67f5f98..285834c911 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_camera.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_camera.py @@ -28,7 +28,7 @@ from ayon_core.hosts.unreal.api.pipeline import ( class CameraLoader(plugin.Loader): """Load Unreal StaticMesh from FBX""" - product_types = ["camera"] + product_types = {"camera"} label = "Load Camera" representations = ["fbx"] icon = "cube" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_geometrycache_abc.py b/client/ayon_core/hosts/unreal/plugins/load/load_geometrycache_abc.py index f1cedc575b..44c308069b 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_geometrycache_abc.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_geometrycache_abc.py @@ -19,7 +19,7 @@ import unreal # noqa class PointCacheAlembicLoader(plugin.Loader): """Load Point Cache from Alembic""" - product_types = ["model", "pointcache"] + product_types = {"model", "pointcache"} label = "Import Alembic Point Cache" representations = ["abc"] icon = "cube" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_layout.py b/client/ayon_core/hosts/unreal/plugins/load/load_layout.py index dcdd51480a..6c667d3d2f 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_layout.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_layout.py @@ -40,7 +40,7 @@ from ayon_core.hosts.unreal.api.pipeline import ( class LayoutLoader(plugin.Loader): """Load Layout from a JSON file""" - product_types = ["layout"] + product_types = {"layout"} representations = ["json"] label = "Load Layout" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_layout_existing.py b/client/ayon_core/hosts/unreal/plugins/load/load_layout_existing.py index a50019773f..700b6957a2 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_layout_existing.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_layout_existing.py @@ -21,7 +21,7 @@ class ExistingLayoutLoader(plugin.Loader): Load Layout for an existing scene, and match the existing assets. """ - product_types = ["layout"] + product_types = {"layout"} representations = ["json"] label = "Load Layout on Existing Scene" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_abc.py b/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_abc.py index ba26bbac59..64b1810080 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_abc.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_abc.py @@ -18,7 +18,7 @@ import unreal # noqa class SkeletalMeshAlembicLoader(plugin.Loader): """Load Unreal SkeletalMesh from Alembic""" - product_types = ["pointcache", "skeletalMesh"] + product_types = {"pointcache", "skeletalMesh"} label = "Import Alembic Skeletal Mesh" representations = ["abc"] icon = "cube" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_fbx.py b/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_fbx.py index 7fc0420583..f61f0dbc3f 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_fbx.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_fbx.py @@ -18,7 +18,7 @@ import unreal # noqa class SkeletalMeshFBXLoader(plugin.Loader): """Load Unreal SkeletalMesh from FBX.""" - product_types = ["rig", "skeletalMesh"] + product_types = {"rig", "skeletalMesh"} label = "Import FBX Skeletal Mesh" representations = ["fbx"] icon = "cube" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_abc.py b/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_abc.py index 9301aacf78..256cb9e8bc 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_abc.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_abc.py @@ -18,7 +18,7 @@ import unreal # noqa class StaticMeshAlembicLoader(plugin.Loader): """Load Unreal StaticMesh from Alembic""" - product_types = ["model", "staticMesh"] + product_types = {"model", "staticMesh"} label = "Import Alembic Static Mesh" representations = ["abc"] icon = "cube" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_fbx.py b/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_fbx.py index a7df3d1045..0ec4b1b4f8 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_fbx.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_fbx.py @@ -18,7 +18,7 @@ import unreal # noqa class StaticMeshFBXLoader(plugin.Loader): """Load Unreal StaticMesh from FBX.""" - product_types = ["model", "staticMesh"] + product_types = {"model", "staticMesh"} label = "Import FBX Static Mesh" representations = ["fbx"] icon = "cube" diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_uasset.py b/client/ayon_core/hosts/unreal/plugins/load/load_uasset.py index b8ecd40c32..89ef357c89 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_uasset.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_uasset.py @@ -15,7 +15,7 @@ import unreal # noqa class UAssetLoader(plugin.Loader): """Load UAsset.""" - product_types = ["uasset"] + product_types = {"uasset"} label = "Load UAsset" representations = ["uasset"] icon = "cube" @@ -164,7 +164,7 @@ class UAssetLoader(plugin.Loader): class UMapLoader(UAssetLoader): """Load Level.""" - product_types = ["uasset"] + product_types = {"uasset"} label = "Load Level" representations = ["umap"] diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_yeticache.py b/client/ayon_core/hosts/unreal/plugins/load/load_yeticache.py index a3c11544f0..21715a24c6 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_yeticache.py +++ b/client/ayon_core/hosts/unreal/plugins/load/load_yeticache.py @@ -15,7 +15,7 @@ import unreal # noqa class YetiLoader(plugin.Loader): """Load Yeti Cache""" - product_types = ["yeticacheUE"] + product_types = {"yeticacheUE"} label = "Import Yeti" representations = ["abc"] icon = "pagelines" diff --git a/client/ayon_core/pipeline/load/plugins.py b/client/ayon_core/pipeline/load/plugins.py index 8c015f19fe..91f839ebf3 100644 --- a/client/ayon_core/pipeline/load/plugins.py +++ b/client/ayon_core/pipeline/load/plugins.py @@ -24,7 +24,7 @@ class LoaderPlugin(list): """ - product_types = [] + product_types = set() representations = [] extensions = {"*"} order = 0 diff --git a/client/ayon_core/plugins/load/copy_file.py b/client/ayon_core/plugins/load/copy_file.py index b6fe10e170..5e6daa866b 100644 --- a/client/ayon_core/plugins/load/copy_file.py +++ b/client/ayon_core/plugins/load/copy_file.py @@ -6,7 +6,7 @@ class CopyFile(load.LoaderPlugin): """Copy the published file to be pasted at the desired location""" representations = ["*"] - product_types = ["*"] + product_types = {"*"} label = "Copy File" order = 10 diff --git a/client/ayon_core/plugins/load/copy_file_path.py b/client/ayon_core/plugins/load/copy_file_path.py index 3b0e0fc291..ecde3bc55f 100644 --- a/client/ayon_core/plugins/load/copy_file_path.py +++ b/client/ayon_core/plugins/load/copy_file_path.py @@ -6,7 +6,7 @@ from ayon_core.pipeline import load class CopyFilePath(load.LoaderPlugin): """Copy published file path to clipboard""" representations = ["*"] - product_types = ["*"] + product_types = {"*"} label = "Copy File Path" order = 20 diff --git a/client/ayon_core/plugins/load/delete_old_versions.py b/client/ayon_core/plugins/load/delete_old_versions.py index 9124278696..04873d8b5c 100644 --- a/client/ayon_core/plugins/load/delete_old_versions.py +++ b/client/ayon_core/plugins/load/delete_old_versions.py @@ -27,7 +27,7 @@ # sequence_splitter = "__sequence_splitter__" # # representations = ["*"] -# product_types = ["*"] +# product_types = {"*"} # tool_names = ["library_loader"] # # label = "Delete Old Versions" diff --git a/client/ayon_core/plugins/load/delivery.py b/client/ayon_core/plugins/load/delivery.py index 3529458e70..cfa245d0d2 100644 --- a/client/ayon_core/plugins/load/delivery.py +++ b/client/ayon_core/plugins/load/delivery.py @@ -29,7 +29,7 @@ class Delivery(load.ProductLoaderPlugin): sequence_splitter = "__sequence_splitter__" representations = ["*"] - product_types = ["*"] + product_types = {"*"} tool_names = ["library_loader"] label = "Deliver Versions" diff --git a/client/ayon_core/plugins/load/open_djv.py b/client/ayon_core/plugins/load/open_djv.py index efe19161a0..30023ac1f5 100644 --- a/client/ayon_core/plugins/load/open_djv.py +++ b/client/ayon_core/plugins/load/open_djv.py @@ -18,7 +18,7 @@ class OpenInDJV(load.LoaderPlugin): """Open Image Sequence with system default""" djv_list = existing_djv_path() - product_types = ["*"] if djv_list else [] + product_types = {"*"} if djv_list else [] representations = ["*"] extensions = { "cin", "dpx", "avi", "dv", "gif", "flv", "mkv", "mov", "mpg", "mpeg", diff --git a/client/ayon_core/plugins/load/open_file.py b/client/ayon_core/plugins/load/open_file.py index b26b261f10..fc57708cd6 100644 --- a/client/ayon_core/plugins/load/open_file.py +++ b/client/ayon_core/plugins/load/open_file.py @@ -18,7 +18,7 @@ def open(filepath): class OpenFile(load.LoaderPlugin): """Open Image Sequence or Video with system default""" - product_types = ["render2d"] + product_types = {"render2d"} representations = ["*"] label = "Open" diff --git a/client/ayon_core/plugins/load/push_to_library.py b/client/ayon_core/plugins/load/push_to_library.py index cd3a5e449d..02d834bc95 100644 --- a/client/ayon_core/plugins/load/push_to_library.py +++ b/client/ayon_core/plugins/load/push_to_library.py @@ -12,7 +12,7 @@ class PushToLibraryProject(load.ProductLoaderPlugin): is_multiple_contexts_compatible = True representations = ["*"] - product_types = ["*"] + product_types = {"*"} label = "Push to Library project" order = 35 From b80541064ca93480a11caa3ee10061d162d6cabd Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Mon, 18 Mar 2024 14:47:15 +0100 Subject: [PATCH 4/4] fix publish plugin attributes back to 'families' --- .../hosts/max/plugins/publish/collect_frame_range.py | 11 +++-------- .../hosts/maya/plugins/publish/collect_animation.py | 2 +- .../hosts/nuke/plugins/publish/collect_backdrop.py | 2 +- .../hosts/nuke/plugins/publish/collect_gizmo.py | 2 +- .../hosts/resolve/plugins/publish/extract_workfile.py | 2 +- 5 files changed, 7 insertions(+), 12 deletions(-) diff --git a/client/ayon_core/hosts/max/plugins/publish/collect_frame_range.py b/client/ayon_core/hosts/max/plugins/publish/collect_frame_range.py index a70665ce3c..6fc8de90d1 100644 --- a/client/ayon_core/hosts/max/plugins/publish/collect_frame_range.py +++ b/client/ayon_core/hosts/max/plugins/publish/collect_frame_range.py @@ -9,14 +9,9 @@ class CollectFrameRange(pyblish.api.InstancePlugin): order = pyblish.api.CollectorOrder + 0.01 label = "Collect Frame Range" hosts = ['max'] - product_types = [ - "camera", - "maxrender", - "pointcache", - "pointcloud", - "review", - "redshiftproxy" - ] + families = ["camera", "maxrender", + "pointcache", "pointcloud", + "review", "redshiftproxy"] def process(self, instance): if instance.data["productType"] == "maxrender": diff --git a/client/ayon_core/hosts/maya/plugins/publish/collect_animation.py b/client/ayon_core/hosts/maya/plugins/publish/collect_animation.py index 1ba750a6e0..2ab6511ece 100644 --- a/client/ayon_core/hosts/maya/plugins/publish/collect_animation.py +++ b/client/ayon_core/hosts/maya/plugins/publish/collect_animation.py @@ -16,7 +16,7 @@ class CollectAnimationOutputGeometry(pyblish.api.InstancePlugin): """ order = pyblish.api.CollectorOrder + 0.4 - product_types = ["animation"] + families = ["animation"] label = "Collect Animation Output Geometry" hosts = ["maya"] diff --git a/client/ayon_core/hosts/nuke/plugins/publish/collect_backdrop.py b/client/ayon_core/hosts/nuke/plugins/publish/collect_backdrop.py index c0fdfa6fae..fc17de95b4 100644 --- a/client/ayon_core/hosts/nuke/plugins/publish/collect_backdrop.py +++ b/client/ayon_core/hosts/nuke/plugins/publish/collect_backdrop.py @@ -11,7 +11,7 @@ class CollectBackdrops(pyblish.api.InstancePlugin): order = pyblish.api.CollectorOrder + 0.22 label = "Collect Backdrop" hosts = ["nuke"] - product_types = ["nukenodes"] + families = ["nukenodes"] def process(self, instance): self.log.debug(pformat(instance.data)) diff --git a/client/ayon_core/hosts/nuke/plugins/publish/collect_gizmo.py b/client/ayon_core/hosts/nuke/plugins/publish/collect_gizmo.py index 9d40b2db0f..fda1c7ac31 100644 --- a/client/ayon_core/hosts/nuke/plugins/publish/collect_gizmo.py +++ b/client/ayon_core/hosts/nuke/plugins/publish/collect_gizmo.py @@ -9,7 +9,7 @@ class CollectGizmo(pyblish.api.InstancePlugin): order = pyblish.api.CollectorOrder + 0.22 label = "Collect Gizmo (group)" hosts = ["nuke"] - product_types = ["gizmo"] + families = ["gizmo"] def process(self, instance): diff --git a/client/ayon_core/hosts/resolve/plugins/publish/extract_workfile.py b/client/ayon_core/hosts/resolve/plugins/publish/extract_workfile.py index 0874685bb6..48ebdee7e3 100644 --- a/client/ayon_core/hosts/resolve/plugins/publish/extract_workfile.py +++ b/client/ayon_core/hosts/resolve/plugins/publish/extract_workfile.py @@ -12,7 +12,7 @@ class ExtractWorkfile(publish.Extractor): label = "Extract Workfile" order = pyblish.api.ExtractorOrder - product_types = ["workfile"] + families = ["workfile"] hosts = ["resolve"] def process(self, instance):