From e3babf1aed1674812fe25e434781d8f6b93e9d02 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Fri, 19 Apr 2024 20:25:31 +0200 Subject: [PATCH 01/88] Maya: Implement workfile template assign look placeholder --- .../template/assign_look_placeholder.py | 127 ++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 client/ayon_core/hosts/maya/plugins/template/assign_look_placeholder.py diff --git a/client/ayon_core/hosts/maya/plugins/template/assign_look_placeholder.py b/client/ayon_core/hosts/maya/plugins/template/assign_look_placeholder.py new file mode 100644 index 0000000000..c5d4969c09 --- /dev/null +++ b/client/ayon_core/hosts/maya/plugins/template/assign_look_placeholder.py @@ -0,0 +1,127 @@ +from maya import cmds + +from ayon_core.lib import ( + UISeparatorDef, + UILabelDef, + TextDef, + BoolDef +) +from ayon_core.lib.events import weakref_partial +from ayon_core.hosts.maya.api.workfile_template_builder import ( + MayaPlaceholderPlugin, +) +from ayon_core.hosts.maya.api.lib import ( + get_all_children, + assign_look, +) + + +class AssignLookPlaceholderPlugin(MayaPlaceholderPlugin): + """Assign a look product to members of the placeholder set. + + Creates an objectSet. Any members will get the look assigned with the given + product name if it exists. + + Any containers loaded from other template placeholders will get the look + assigned to their loaded containers. + + """ + + identifier = "maya.assignlook" + label = "Assign Look" + + def get_placeholder_options(self, options=None): + options = options or {} + return [ + UISeparatorDef(), + UILabelDef(label="Description"), + UISeparatorDef(), + UILabelDef( + label=( + "Creates an objectSet. Any members will get the look\n" + "assigned with the given product name if it exists.\n\n" + "Any containers loaded from other template placeholders\n" + "will get the look assigned to their loaded containers." + "" + ) + ), + UISeparatorDef(), + UILabelDef(label="Settings"), + UISeparatorDef(), + TextDef( + "product_name", + label="Product Name", + tooltip="Look product to assign to containers loaded by " + "contained placeholders", + multiline=False, + default=options.get("product_name", "lookMain") + ), + BoolDef( + "recurse", + label="Recursive", + tooltip="Assign look also to potential sub containers / " + "placeholders loaded from the load placeholder.", + default=options.get("recurse", False) + ), + ] + + def create_placeholder(self, placeholder_data): + placeholder_data["plugin_identifier"] = self.identifier + + # Create maya objectSet on selection + selection = cmds.ls(selection=True, long=True) + product_name = placeholder_data["product_name"] + name = "AssignLook_{}".format(product_name) + node = cmds.sets(selection, name=name) + + self.imprint(node, placeholder_data) + + def populate_placeholder(self, placeholder): + callback = weakref_partial(self.assign_look, placeholder) + self.builder.register_on_depth_processed_callback( + callback, order=placeholder.order) + + # If placeholder should be deleted, delete it after finish + if not placeholder.data.get("keep_placeholder", True): + delete_callback = weakref_partial(self.delete_placeholder, + placeholder) + self.builder.register_on_finished_callback( + delete_callback, order=placeholder.order) + + def assign_look(self, placeholder): + if placeholder.data.get("finished", False): + # If not recursive we mark it finished after the first depth + # iteration - otherwise run it again to find any new members + return + + product_name = placeholder.data["product_name"] + assert product_name, "Must have defined look product name to assign" + + members = cmds.ls( + cmds.sets(placeholder.scene_identifier, query=True), long=True + ) + if not members: + return + + # Allow any children of members in the set to get assignments, + # e.g. when a group is included there. Whenever a load placeholder + # finishes it also adds loaded content into the object set the + # placeholder was in, so this will also assign to loaded content + # during this build. + assign_nodes = set(members) + assign_nodes.update(get_all_children(members)) + + processed = placeholder.data.setdefault("processed", set()) + assign_nodes.difference_update(processed) + processed.update(assign_nodes) + + if assign_nodes: + self.log.info( + "Assigning look {} for placeholder: {}".format(product_name, + placeholder) + ) + assign_nodes = list(assign_nodes) + assign_look(assign_nodes, product_name=product_name) + + if not placeholder.data.get("recurse", False): + placeholder.data["finished"] = True From 20bc9560ec3b6fb704eea4941052c73af7d01fd6 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Fri, 19 Apr 2024 22:37:19 +0200 Subject: [PATCH 02/88] Refactor adding callbacks --- .../maya/plugins/workfile_build/assign_look_placeholder.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/ayon_core/hosts/maya/plugins/workfile_build/assign_look_placeholder.py b/client/ayon_core/hosts/maya/plugins/workfile_build/assign_look_placeholder.py index c5d4969c09..8c888a1a1f 100644 --- a/client/ayon_core/hosts/maya/plugins/workfile_build/assign_look_placeholder.py +++ b/client/ayon_core/hosts/maya/plugins/workfile_build/assign_look_placeholder.py @@ -78,14 +78,14 @@ class AssignLookPlaceholderPlugin(MayaPlaceholderPlugin): def populate_placeholder(self, placeholder): callback = weakref_partial(self.assign_look, placeholder) - self.builder.register_on_depth_processed_callback( + self.builder.add_on_depth_processed_callback( callback, order=placeholder.order) # If placeholder should be deleted, delete it after finish if not placeholder.data.get("keep_placeholder", True): delete_callback = weakref_partial(self.delete_placeholder, placeholder) - self.builder.register_on_finished_callback( + self.builder.add_on_finished_callback( delete_callback, order=placeholder.order) def assign_look(self, placeholder): From ddf75b5e8916b853518abac40335460adceab7cb Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 22 May 2024 22:41:03 +0800 Subject: [PATCH 03/88] add ayon menu to version up saving workfile --- client/ayon_core/hosts/maya/api/lib.py | 8 ++++++++ client/ayon_core/hosts/maya/api/menu.py | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/client/ayon_core/hosts/maya/api/lib.py b/client/ayon_core/hosts/maya/api/lib.py index 2b41ffc06c..59b8cfeb16 100644 --- a/client/ayon_core/hosts/maya/api/lib.py +++ b/client/ayon_core/hosts/maya/api/lib.py @@ -22,6 +22,7 @@ from maya.api import OpenMaya import ayon_api from ayon_core.settings import get_project_settings +from ayon_core.lib import version_up from ayon_core.pipeline import ( get_current_project_name, get_current_folder_path, @@ -3390,6 +3391,13 @@ def set_colorspace(): _colormanage(viewTransformName=view_name) +def version_up_workfile(): + host = registered_host() + current_file = host.get_current_workfile() + filepath = version_up(current_file) + host.save_workfile(filepath) + + @contextlib.contextmanager def parent_nodes(nodes, parent=None): # type: (list, str) -> list diff --git a/client/ayon_core/hosts/maya/api/menu.py b/client/ayon_core/hosts/maya/api/menu.py index e3ef50cdc0..9b7670cfbb 100644 --- a/client/ayon_core/hosts/maya/api/menu.py +++ b/client/ayon_core/hosts/maya/api/menu.py @@ -123,7 +123,10 @@ def install(project_settings): parent=parent_widget ), ) - + cmds.menuItem( + "Version Up Workfile", + command=lambda *args: lib.version_up_workfile() + ) cmds.menuItem( "Set Frame Range", command=lambda *args: lib.reset_frame_range() From 5e957c50c8aeba2a89a5049ca154e670c22d8412 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 22 May 2024 22:49:21 +0800 Subject: [PATCH 04/88] add condition to check if there is a current file --- client/ayon_core/hosts/maya/api/lib.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client/ayon_core/hosts/maya/api/lib.py b/client/ayon_core/hosts/maya/api/lib.py index 59b8cfeb16..204f851b2b 100644 --- a/client/ayon_core/hosts/maya/api/lib.py +++ b/client/ayon_core/hosts/maya/api/lib.py @@ -3392,8 +3392,12 @@ def set_colorspace(): def version_up_workfile(): + """Function to increment and save workfile + """ host = registered_host() current_file = host.get_current_workfile() + if not current_file: + return None filepath = version_up(current_file) host.save_workfile(filepath) From c32700c40c49410636d81d771b3323cf93b1ce68 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Tue, 28 May 2024 13:32:56 +0200 Subject: [PATCH 05/88] fix sorting of versions in loader comboboxes --- client/ayon_core/tools/loader/abstract.py | 28 +++++++++++++++---- .../tools/loader/ui/products_model.py | 4 ++- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/client/ayon_core/tools/loader/abstract.py b/client/ayon_core/tools/loader/abstract.py index 509db4d037..a1c1e6a062 100644 --- a/client/ayon_core/tools/loader/abstract.py +++ b/client/ayon_core/tools/loader/abstract.py @@ -172,12 +172,30 @@ class VersionItem: def __gt__(self, other): if not isinstance(other, VersionItem): return False - if ( - other.version == self.version - and self.is_hero - ): + # Make sure hero versions are positive + version = abs(self.version) + other_version = abs(other.version) + # Hero version is greater than non-hero + if version == other_version: + return self.is_hero + return version > other_version + + def __lt__(self, other): + if not isinstance(other, VersionItem): return True - return other.version < self.version + # Make sure hero versions are positive + version = abs(self.version) + other_version = abs(other.version) + # Non-hero version is lesser than hero + if version == other_version: + return not self.is_hero + return version < other_version + + def __ge__(self, other): + return self.__eq__(other) or self.__gt__(other) + + def __le__(self, other): + return self.__eq__(other) or self.__lt__(other) def to_data(self): return { diff --git a/client/ayon_core/tools/loader/ui/products_model.py b/client/ayon_core/tools/loader/ui/products_model.py index f309473d10..fc7375d8c1 100644 --- a/client/ayon_core/tools/loader/ui/products_model.py +++ b/client/ayon_core/tools/loader/ui/products_model.py @@ -198,7 +198,9 @@ class ProductsModel(QtGui.QStandardItemModel): product_item = self._product_items_by_id.get(product_id) if product_item is None: return None - return list(product_item.version_items.values()) + product_items = list(product_item.version_items.values()) + product_items.sort(reverse=True) + return product_items if role == QtCore.Qt.EditRole: return None From c4942d3ab8116de50f2cc68f814b8ca43a41a72d Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 28 May 2024 21:33:34 +0800 Subject: [PATCH 06/88] move version up workfile to custom tool menu --- client/ayon_core/hosts/maya/api/commands.py | 18 +++++++++++++++++- client/ayon_core/hosts/maya/api/lib.py | 12 ------------ client/ayon_core/hosts/maya/api/menu.py | 5 +---- server_addon/maya/package.py | 2 +- .../maya/server/settings/scriptsmenu.py | 10 ++++++++++ 5 files changed, 29 insertions(+), 18 deletions(-) diff --git a/client/ayon_core/hosts/maya/api/commands.py b/client/ayon_core/hosts/maya/api/commands.py index 22cf0871e2..411614c9da 100644 --- a/client/ayon_core/hosts/maya/api/commands.py +++ b/client/ayon_core/hosts/maya/api/commands.py @@ -4,7 +4,12 @@ from maya import cmds from ayon_api import get_project, get_folder_by_path -from ayon_core.pipeline import get_current_project_name, get_current_folder_path +from ayon_core.pipeline import ( + get_current_project_name, + get_current_folder_path, + registered_host +) +from ayon_core.lib import version_up class ToolWindows: @@ -116,3 +121,14 @@ def reset_resolution(): cmds.setAttr(width_attr_name, resolution_width) cmds.setAttr(height_attr_name, resolution_height) + + +def version_up_workfile(): + """Function to increment and save workfile + """ + host = registered_host() + current_file = host.get_current_workfile() + if not current_file: + return None + filepath = version_up(current_file) + host.save_workfile(filepath) diff --git a/client/ayon_core/hosts/maya/api/lib.py b/client/ayon_core/hosts/maya/api/lib.py index 204f851b2b..2b41ffc06c 100644 --- a/client/ayon_core/hosts/maya/api/lib.py +++ b/client/ayon_core/hosts/maya/api/lib.py @@ -22,7 +22,6 @@ from maya.api import OpenMaya import ayon_api from ayon_core.settings import get_project_settings -from ayon_core.lib import version_up from ayon_core.pipeline import ( get_current_project_name, get_current_folder_path, @@ -3391,17 +3390,6 @@ def set_colorspace(): _colormanage(viewTransformName=view_name) -def version_up_workfile(): - """Function to increment and save workfile - """ - host = registered_host() - current_file = host.get_current_workfile() - if not current_file: - return None - filepath = version_up(current_file) - host.save_workfile(filepath) - - @contextlib.contextmanager def parent_nodes(nodes, parent=None): # type: (list, str) -> list diff --git a/client/ayon_core/hosts/maya/api/menu.py b/client/ayon_core/hosts/maya/api/menu.py index 9b7670cfbb..e3ef50cdc0 100644 --- a/client/ayon_core/hosts/maya/api/menu.py +++ b/client/ayon_core/hosts/maya/api/menu.py @@ -123,10 +123,7 @@ def install(project_settings): parent=parent_widget ), ) - cmds.menuItem( - "Version Up Workfile", - command=lambda *args: lib.version_up_workfile() - ) + cmds.menuItem( "Set Frame Range", command=lambda *args: lib.reset_frame_range() diff --git a/server_addon/maya/package.py b/server_addon/maya/package.py index 4537c23eaa..852a6d563c 100644 --- a/server_addon/maya/package.py +++ b/server_addon/maya/package.py @@ -1,3 +1,3 @@ name = "maya" title = "Maya" -version = "0.1.20" +version = "0.1.21" diff --git a/server_addon/maya/server/settings/scriptsmenu.py b/server_addon/maya/server/settings/scriptsmenu.py index 7b0ba7d831..ef04a92f89 100644 --- a/server_addon/maya/server/settings/scriptsmenu.py +++ b/server_addon/maya/server/settings/scriptsmenu.py @@ -83,6 +83,16 @@ DEFAULT_SCRIPTSMENU_SETTINGS = { "pipeline", "shader" ] + }, + { + "type": "action", + "command": "import openpype.hosts.maya.api.commands as op_cmds; op_cmds.version_up_workfile()", + "sourcetype": "python", + "title": "Version Up", + "tooltip": "Save workfile with upversioning", + "tags": [ + "pipeline" + ] } ], "definition_json": "[]" From a696470fa2ee842ef0e66936e7cfe1630803b9e7 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 29 May 2024 17:16:43 +0800 Subject: [PATCH 07/88] add version up workfile in the general ayon core function --- client/ayon_core/hosts/maya/api/commands.py | 15 +-------------- client/ayon_core/hosts/maya/api/menu.py | 9 +++++++++ client/ayon_core/pipeline/context_tools.py | 13 ++++++++++++- package.py | 2 +- server/settings/main.py | 8 +++++++- server_addon/maya/server/settings/scriptsmenu.py | 10 ---------- 6 files changed, 30 insertions(+), 27 deletions(-) diff --git a/client/ayon_core/hosts/maya/api/commands.py b/client/ayon_core/hosts/maya/api/commands.py index 411614c9da..3dcc604d68 100644 --- a/client/ayon_core/hosts/maya/api/commands.py +++ b/client/ayon_core/hosts/maya/api/commands.py @@ -6,10 +6,8 @@ from ayon_api import get_project, get_folder_by_path from ayon_core.pipeline import ( get_current_project_name, - get_current_folder_path, - registered_host + get_current_folder_path ) -from ayon_core.lib import version_up class ToolWindows: @@ -121,14 +119,3 @@ def reset_resolution(): cmds.setAttr(width_attr_name, resolution_width) cmds.setAttr(height_attr_name, resolution_height) - - -def version_up_workfile(): - """Function to increment and save workfile - """ - host = registered_host() - current_file = host.get_current_workfile() - if not current_file: - return None - filepath = version_up(current_file) - host.save_workfile(filepath) diff --git a/client/ayon_core/hosts/maya/api/menu.py b/client/ayon_core/hosts/maya/api/menu.py index e3ef50cdc0..09e4af712a 100644 --- a/client/ayon_core/hosts/maya/api/menu.py +++ b/client/ayon_core/hosts/maya/api/menu.py @@ -25,6 +25,7 @@ from .workfile_template_builder import ( build_workfile_template, update_workfile_template ) +from ayon_core.pipeline.context_tools import version_up_workfile from ayon_core.tools.workfile_template_build import open_template_ui from .workfile_template_builder import MayaTemplateBuilder @@ -76,6 +77,14 @@ def install(project_settings): cmds.menuItem(divider=True) + if project_settings["core"].get("version_up_workfile"): + cmds.menuItem( + "Version Up Workfile", + command=lambda *args: version_up_workfile() + ) + + cmds.menuItem(divider=True) + cmds.menuItem( "Create...", command=lambda *args: host_tools.show_publisher( diff --git a/client/ayon_core/pipeline/context_tools.py b/client/ayon_core/pipeline/context_tools.py index c32d04c44c..399946cb84 100644 --- a/client/ayon_core/pipeline/context_tools.py +++ b/client/ayon_core/pipeline/context_tools.py @@ -11,7 +11,7 @@ from pyblish.lib import MessageHandler from ayon_core import AYON_CORE_ROOT from ayon_core.host import HostBase -from ayon_core.lib import is_in_tests, initialize_ayon_connection, emit_event +from ayon_core.lib import is_in_tests, initialize_ayon_connection, emit_event, version_up from ayon_core.addon import load_addons, AddonsManager from ayon_core.settings import get_project_settings @@ -579,3 +579,14 @@ def get_process_id(): if _process_id is None: _process_id = str(uuid.uuid4()) return _process_id + + +def version_up_workfile(): + """Function to increment and save workfile + """ + host = registered_host() + current_file = host.get_current_workfile() + if not current_file: + return None + filepath = version_up(current_file) + host.save_workfile(filepath) diff --git a/package.py b/package.py index 73f7174b6f..35877ff687 100644 --- a/package.py +++ b/package.py @@ -1,6 +1,6 @@ name = "core" title = "Core" -version = "0.3.3-dev.1" +version = "0.3.3-dev.2" client_dir = "ayon_core" diff --git a/server/settings/main.py b/server/settings/main.py index 40e16e7e91..1d357897d7 100644 --- a/server/settings/main.py +++ b/server/settings/main.py @@ -219,6 +219,11 @@ class CoreSettings(BaseSettingsModel): title="Project environments", section="---" ) + version_up_workfile: bool = SettingsField( + False, + title="Version Up Workfile", + section="---" + ) @validator( "environments", @@ -313,5 +318,6 @@ DEFAULT_VALUES = { "project_environments": json.dumps( {}, indent=4 - ) + ), + "version_up_workfile": False } diff --git a/server_addon/maya/server/settings/scriptsmenu.py b/server_addon/maya/server/settings/scriptsmenu.py index ef04a92f89..7b0ba7d831 100644 --- a/server_addon/maya/server/settings/scriptsmenu.py +++ b/server_addon/maya/server/settings/scriptsmenu.py @@ -83,16 +83,6 @@ DEFAULT_SCRIPTSMENU_SETTINGS = { "pipeline", "shader" ] - }, - { - "type": "action", - "command": "import openpype.hosts.maya.api.commands as op_cmds; op_cmds.version_up_workfile()", - "sourcetype": "python", - "title": "Version Up", - "tooltip": "Save workfile with upversioning", - "tags": [ - "pipeline" - ] } ], "definition_json": "[]" From 4cf797ac66926e525efe9bce4169d67263e1f9d2 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 29 May 2024 17:19:06 +0800 Subject: [PATCH 08/88] restore the setting in maya --- server_addon/maya/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server_addon/maya/package.py b/server_addon/maya/package.py index 852a6d563c..4537c23eaa 100644 --- a/server_addon/maya/package.py +++ b/server_addon/maya/package.py @@ -1,3 +1,3 @@ name = "maya" title = "Maya" -version = "0.1.21" +version = "0.1.20" From ca7dfa5387639e1b6af2d20a2c66c7e883271810 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 29 May 2024 17:20:12 +0800 Subject: [PATCH 09/88] restore the function in maya --- client/ayon_core/hosts/maya/api/commands.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/client/ayon_core/hosts/maya/api/commands.py b/client/ayon_core/hosts/maya/api/commands.py index 3dcc604d68..22cf0871e2 100644 --- a/client/ayon_core/hosts/maya/api/commands.py +++ b/client/ayon_core/hosts/maya/api/commands.py @@ -4,10 +4,7 @@ from maya import cmds from ayon_api import get_project, get_folder_by_path -from ayon_core.pipeline import ( - get_current_project_name, - get_current_folder_path -) +from ayon_core.pipeline import get_current_project_name, get_current_folder_path class ToolWindows: From 9e12a51c9d80be486c24da380a7de7135e78994e Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 29 May 2024 20:24:46 +0800 Subject: [PATCH 10/88] put the version up workfile setting underneath workfile --- client/ayon_core/hosts/maya/api/menu.py | 2 +- client/ayon_core/version.py | 2 +- package.py | 2 +- server/settings/main.py | 8 +------- server/settings/tools.py | 5 +++++ 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/client/ayon_core/hosts/maya/api/menu.py b/client/ayon_core/hosts/maya/api/menu.py index 09e4af712a..92759e933c 100644 --- a/client/ayon_core/hosts/maya/api/menu.py +++ b/client/ayon_core/hosts/maya/api/menu.py @@ -77,7 +77,7 @@ def install(project_settings): cmds.menuItem(divider=True) - if project_settings["core"].get("version_up_workfile"): + if project_settings["core"]["tools"]["Workfiles"].get("version_up_workfile"): cmds.menuItem( "Version Up Workfile", command=lambda *args: version_up_workfile() diff --git a/client/ayon_core/version.py b/client/ayon_core/version.py index e4297e2000..efcd78cd11 100644 --- a/client/ayon_core/version.py +++ b/client/ayon_core/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring AYON core addon version.""" -__version__ = "0.3.3-dev.1" +__version__ = "0.3.4-dev.1" diff --git a/package.py b/package.py index 35877ff687..cea2d84484 100644 --- a/package.py +++ b/package.py @@ -1,6 +1,6 @@ name = "core" title = "Core" -version = "0.3.3-dev.2" +version = "0.3.4-dev.1" client_dir = "ayon_core" diff --git a/server/settings/main.py b/server/settings/main.py index 1d357897d7..40e16e7e91 100644 --- a/server/settings/main.py +++ b/server/settings/main.py @@ -219,11 +219,6 @@ class CoreSettings(BaseSettingsModel): title="Project environments", section="---" ) - version_up_workfile: bool = SettingsField( - False, - title="Version Up Workfile", - section="---" - ) @validator( "environments", @@ -318,6 +313,5 @@ DEFAULT_VALUES = { "project_environments": json.dumps( {}, indent=4 - ), - "version_up_workfile": False + ) } diff --git a/server/settings/tools.py b/server/settings/tools.py index fb8430a71c..15f24db2fd 100644 --- a/server/settings/tools.py +++ b/server/settings/tools.py @@ -119,6 +119,10 @@ class WorkfilesLockProfile(BaseSettingsModel): class WorkfilesToolModel(BaseSettingsModel): + version_up_workfile: bool = SettingsField( + False, + title="Version Up Workfile" + ) workfile_template_profiles: list[WorkfileTemplateProfile] = SettingsField( default_factory=list, title="Workfile template profiles" @@ -407,6 +411,7 @@ DEFAULT_TOOLS_VALUES = { ] }, "Workfiles": { + "version_up_workfile": False, "workfile_template_profiles": [ { "task_types": [], From 7ebdb7be41c7576fc050a37fcc2398848de2323b Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 29 May 2024 20:28:58 +0800 Subject: [PATCH 11/88] make sure divider doesn't exist when the version up option is being disabled --- client/ayon_core/hosts/maya/api/menu.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/client/ayon_core/hosts/maya/api/menu.py b/client/ayon_core/hosts/maya/api/menu.py index 92759e933c..cdd494224b 100644 --- a/client/ayon_core/hosts/maya/api/menu.py +++ b/client/ayon_core/hosts/maya/api/menu.py @@ -75,9 +75,8 @@ def install(project_settings): cmds.setParent("..", menu=True) - cmds.menuItem(divider=True) - if project_settings["core"]["tools"]["Workfiles"].get("version_up_workfile"): + cmds.menuItem(divider=True) cmds.menuItem( "Version Up Workfile", command=lambda *args: version_up_workfile() From 39ca9922bb391bf295dc53ddae8638609be3cc7d Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 29 May 2024 20:36:16 +0800 Subject: [PATCH 12/88] add description explain what verion up workfile is --- server/settings/tools.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/settings/tools.py b/server/settings/tools.py index 15f24db2fd..e185cc71ad 100644 --- a/server/settings/tools.py +++ b/server/settings/tools.py @@ -121,7 +121,8 @@ class WorkfilesLockProfile(BaseSettingsModel): class WorkfilesToolModel(BaseSettingsModel): version_up_workfile: bool = SettingsField( False, - title="Version Up Workfile" + title="Version Up Workfile", + description="Add 'Version Up Workfile' to AYON menu" ) workfile_template_profiles: list[WorkfileTemplateProfile] = SettingsField( default_factory=list, From e523b47412ae149bb3869151be94524f27330a24 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 29 May 2024 23:44:08 +0800 Subject: [PATCH 13/88] add version up workfile in ayon menu which is located inside the workfiles in core addon --- client/ayon_core/hosts/maya/api/menu.py | 13 +++++++------ server/settings/tools.py | 13 +++++++++++-- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/client/ayon_core/hosts/maya/api/menu.py b/client/ayon_core/hosts/maya/api/menu.py index cdd494224b..dbf353d84b 100644 --- a/client/ayon_core/hosts/maya/api/menu.py +++ b/client/ayon_core/hosts/maya/api/menu.py @@ -75,12 +75,13 @@ def install(project_settings): cmds.setParent("..", menu=True) - if project_settings["core"]["tools"]["Workfiles"].get("version_up_workfile"): - cmds.menuItem(divider=True) - cmds.menuItem( - "Version Up Workfile", - command=lambda *args: version_up_workfile() - ) + if project_settings["core"]["tools"]["Workfiles"]["ayon_menu"].get( + "version_up_workfile"): + cmds.menuItem(divider=True) + cmds.menuItem( + "Version Up Workfile", + command=lambda *args: version_up_workfile() + ) cmds.menuItem(divider=True) diff --git a/server/settings/tools.py b/server/settings/tools.py index e185cc71ad..0fb11404c9 100644 --- a/server/settings/tools.py +++ b/server/settings/tools.py @@ -118,12 +118,19 @@ class WorkfilesLockProfile(BaseSettingsModel): enabled: bool = SettingsField(True, title="Enabled") -class WorkfilesToolModel(BaseSettingsModel): +class AyonMenuModel(BaseSettingsModel): version_up_workfile: bool = SettingsField( False, title="Version Up Workfile", description="Add 'Version Up Workfile' to AYON menu" ) + + +class WorkfilesToolModel(BaseSettingsModel): + ayon_menu: AyonMenuModel = SettingsField( + default_factory=AyonMenuModel, + title="AYON Menu" + ) workfile_template_profiles: list[WorkfileTemplateProfile] = SettingsField( default_factory=list, title="Workfile template profiles" @@ -412,7 +419,9 @@ DEFAULT_TOOLS_VALUES = { ] }, "Workfiles": { - "version_up_workfile": False, + "ayon_menu": { + "version_up_workfile": False + }, "workfile_template_profiles": [ { "task_types": [], From 7077b78c3393ad766e28c01ca5a7f8caba97ccd2 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Thu, 30 May 2024 16:00:29 +0800 Subject: [PATCH 14/88] add debug message --- client/ayon_core/pipeline/context_tools.py | 1 + 1 file changed, 1 insertion(+) diff --git a/client/ayon_core/pipeline/context_tools.py b/client/ayon_core/pipeline/context_tools.py index 399946cb84..d92c43da04 100644 --- a/client/ayon_core/pipeline/context_tools.py +++ b/client/ayon_core/pipeline/context_tools.py @@ -587,6 +587,7 @@ def version_up_workfile(): host = registered_host() current_file = host.get_current_workfile() if not current_file: + log.debug("Current file not found.") return None filepath = version_up(current_file) host.save_workfile(filepath) From c2504bdd04b27db316af1cadec984f77431a223a Mon Sep 17 00:00:00 2001 From: Kayla Man <64118225+moonyuet@users.noreply.github.com> Date: Thu, 30 May 2024 16:06:51 +0800 Subject: [PATCH 15/88] Update client/ayon_core/pipeline/context_tools.py Co-authored-by: Roy Nieterau --- client/ayon_core/pipeline/context_tools.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/client/ayon_core/pipeline/context_tools.py b/client/ayon_core/pipeline/context_tools.py index d92c43da04..f47c1f12f0 100644 --- a/client/ayon_core/pipeline/context_tools.py +++ b/client/ayon_core/pipeline/context_tools.py @@ -587,7 +587,9 @@ def version_up_workfile(): host = registered_host() current_file = host.get_current_workfile() if not current_file: - log.debug("Current file not found.") + log.debug( + "Current file is unsaved and can't be versioned up. " + "Please save your file first.") return None filepath = version_up(current_file) host.save_workfile(filepath) From af26054c2b176b0bfe8e0576aae2b045eedc5fec Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 30 May 2024 12:05:26 +0200 Subject: [PATCH 16/88] move harmony client code next to server codebase --- .../harmony/harmony/ayon_harmony}/__init__.py | 0 .../harmony/harmony/ayon_harmony}/addon.py | 0 .../harmony/harmony/ayon_harmony}/api/README.md | 0 .../harmony/ayon_harmony}/api/TB_sceneOpened.js | 0 .../harmony/harmony/ayon_harmony}/api/__init__.py | 0 .../harmony/ayon_harmony}/api/js/.eslintrc.json | 0 .../harmony/ayon_harmony}/api/js/AvalonHarmony.js | 0 .../harmony/ayon_harmony}/api/js/package.json | 0 .../harmony/ayon_harmony}/api/launch_script.py | 0 .../harmony/harmony/ayon_harmony}/api/lib.py | 0 .../harmony/harmony/ayon_harmony}/api/pipeline.py | 0 .../harmony/harmony/ayon_harmony}/api/plugin.py | 0 .../harmony/harmony/ayon_harmony}/api/server.py | 0 .../harmony/harmony/ayon_harmony}/api/temp.zip | Bin .../harmony/harmony/ayon_harmony}/api/workio.py | 0 .../harmony/ayon_harmony}/hooks/pre_launch_args.py | 0 .../harmony/harmony/ayon_harmony}/js/.eslintrc.json | 0 .../harmony/harmony/ayon_harmony}/js/PypeHarmony.js | 0 .../harmony/harmony/ayon_harmony}/js/README.md | 0 .../ayon_harmony}/js/creators/CreateRender.js | 0 .../ayon_harmony}/js/loaders/ImageSequenceLoader.js | 0 .../ayon_harmony}/js/loaders/TemplateLoader.js | 0 .../harmony/harmony/ayon_harmony}/js/package.json | 0 .../ayon_harmony}/js/publish/CollectCurrentFile.js | 0 .../ayon_harmony}/js/publish/CollectFarmRender.js | 0 .../ayon_harmony}/js/publish/CollectPalettes.js | 0 .../ayon_harmony}/js/publish/ExtractPalette.js | 0 .../ayon_harmony}/js/publish/ExtractTemplate.js | 0 .../harmony/ayon_harmony}/plugins/__init__.py | 0 .../plugins/create/create_farm_render.py | 0 .../ayon_harmony}/plugins/create/create_render.py | 0 .../ayon_harmony}/plugins/create/create_template.py | 0 .../ayon_harmony}/plugins/load/load_audio.py | 0 .../ayon_harmony}/plugins/load/load_background.py | 0 .../plugins/load/load_imagesequence.py | 0 .../ayon_harmony}/plugins/load/load_palette.py | 0 .../ayon_harmony}/plugins/load/load_template.py | 0 .../plugins/load/load_template_workfile.py | 0 .../ayon_harmony}/plugins/publish/collect_audio.py | 0 .../plugins/publish/collect_current_file.py | 0 .../plugins/publish/collect_farm_render.py | 0 .../plugins/publish/collect_instances.py | 0 .../plugins/publish/collect_palettes.py | 0 .../ayon_harmony}/plugins/publish/collect_scene.py | 0 .../plugins/publish/collect_workfile.py | 0 .../plugins/publish/extract_palette.py | 0 .../ayon_harmony}/plugins/publish/extract_render.py | 0 .../plugins/publish/extract_save_scene.py | 0 .../plugins/publish/extract_template.py | 0 .../plugins/publish/extract_workfile.py | 0 .../plugins/publish/help/validate_audio.xml | 0 .../plugins/publish/help/validate_instances.xml | 0 .../publish/help/validate_scene_settings.xml | 0 .../plugins/publish/increment_workfile.py | 0 .../ayon_harmony}/plugins/publish/validate_audio.py | 0 .../plugins/publish/validate_instances.py | 0 .../plugins/publish/validate_scene_settings.py | 0 .../harmony/ayon_harmony}/vendor/.eslintrc.json | 0 .../ayon_harmony}/vendor/OpenHarmony/.gitattributes | 0 .../ayon_harmony}/vendor/OpenHarmony/.gitignore | 0 .../ayon_harmony}/vendor/OpenHarmony/Install.bat | 0 .../ayon_harmony}/vendor/OpenHarmony/LICENSE | 0 .../ayon_harmony}/vendor/OpenHarmony/README.md | 0 .../ayon_harmony}/vendor/OpenHarmony/build_doc.bat | 0 .../vendor/OpenHarmony/documentation.json | 0 .../ayon_harmony}/vendor/OpenHarmony/install.sh | 0 .../ayon_harmony}/vendor/OpenHarmony/oH_DOM.jpg | Bin .../ayon_harmony}/vendor/OpenHarmony/openHarmony.js | 0 .../OpenHarmony/openHarmony/openHarmony_actions.js | 0 .../openHarmony/openHarmony_application.js | 0 .../openHarmony/openHarmony_attribute.js | 0 .../OpenHarmony/openHarmony/openHarmony_backdrop.js | 0 .../OpenHarmony/openHarmony/openHarmony_color.js | 0 .../OpenHarmony/openHarmony/openHarmony_column.js | 0 .../OpenHarmony/openHarmony/openHarmony_database.js | 0 .../OpenHarmony/openHarmony/openHarmony_dialog.js | 0 .../OpenHarmony/openHarmony/openHarmony_drawing.js | 0 .../OpenHarmony/openHarmony/openHarmony_element.js | 0 .../OpenHarmony/openHarmony/openHarmony_file.js | 0 .../OpenHarmony/openHarmony/openHarmony_frame.js | 0 .../OpenHarmony/openHarmony/openHarmony_list.js | 0 .../OpenHarmony/openHarmony/openHarmony_math.js | 0 .../OpenHarmony/openHarmony/openHarmony_metadata.js | 0 .../OpenHarmony/openHarmony/openHarmony_misc.js | 0 .../OpenHarmony/openHarmony/openHarmony_network.js | 0 .../OpenHarmony/openHarmony/openHarmony_node.js | 0 .../openHarmony/openHarmony_nodeAttributes.js | 0 .../OpenHarmony/openHarmony/openHarmony_nodeLink.js | 0 .../OpenHarmony/openHarmony/openHarmony_palette.js | 0 .../OpenHarmony/openHarmony/openHarmony_path.js | 0 .../openHarmony/openHarmony_preferencedoc.js | 0 .../openHarmony/openHarmony_preferences.js | 0 .../OpenHarmony/openHarmony/openHarmony_scene.js | 0 .../openHarmony/openHarmony_threading.js | 0 .../OpenHarmony/openHarmony/openHarmony_timeline.js | 0 .../OpenHarmony/openHarmony/openHarmony_tool.js | 0 .../openHarmony/openHarmony_toolInstall.ui | 0 .../vendor/OpenHarmony/openHarmony_install.js | 0 .../vendor/OpenHarmony/openHarmony_tools.js | 0 .../ayon_harmony}/vendor/OpenHarmony/package.json | 0 .../Reference_view_currentToolManager().txt | 0 .../ayon_harmony}/vendor/OpenHarmony/tbpackage.json | 0 .../OpenHarmony/tools/OpenHarmony_basic/INSTALL | 0 .../OpenHarmony/tools/OpenHarmony_basic/README | 0 .../OpenHarmony_basic/openHarmony_anim_tools.js | 0 .../openHarmony_basic_backdropPicker.ui | 0 .../OpenHarmony_basic/openHarmony_rigging_tools.js | 0 107 files changed, 0 insertions(+), 0 deletions(-) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/__init__.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/addon.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/api/README.md (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/api/TB_sceneOpened.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/api/__init__.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/api/js/.eslintrc.json (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/api/js/AvalonHarmony.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/api/js/package.json (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/api/launch_script.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/api/lib.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/api/pipeline.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/api/plugin.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/api/server.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/api/temp.zip (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/api/workio.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/hooks/pre_launch_args.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/js/.eslintrc.json (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/js/PypeHarmony.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/js/README.md (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/js/creators/CreateRender.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/js/loaders/ImageSequenceLoader.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/js/loaders/TemplateLoader.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/js/package.json (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/js/publish/CollectCurrentFile.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/js/publish/CollectFarmRender.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/js/publish/CollectPalettes.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/js/publish/ExtractPalette.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/js/publish/ExtractTemplate.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/__init__.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/create/create_farm_render.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/create/create_render.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/create/create_template.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/load/load_audio.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/load/load_background.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/load/load_imagesequence.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/load/load_palette.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/load/load_template.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/load/load_template_workfile.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/collect_audio.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/collect_current_file.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/collect_farm_render.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/collect_instances.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/collect_palettes.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/collect_scene.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/collect_workfile.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/extract_palette.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/extract_render.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/extract_save_scene.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/extract_template.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/extract_workfile.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/help/validate_audio.xml (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/help/validate_instances.xml (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/help/validate_scene_settings.xml (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/increment_workfile.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/validate_audio.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/validate_instances.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/plugins/publish/validate_scene_settings.py (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/.eslintrc.json (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/.gitattributes (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/.gitignore (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/Install.bat (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/LICENSE (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/README.md (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/build_doc.bat (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/documentation.json (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/install.sh (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/oH_DOM.jpg (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_actions.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_application.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_attribute.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_backdrop.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_color.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_column.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_database.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_dialog.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_drawing.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_element.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_file.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_frame.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_list.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_math.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_metadata.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_misc.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_network.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_node.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_nodeAttributes.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_nodeLink.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_palette.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_path.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_preferencedoc.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_preferences.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_scene.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_threading.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_timeline.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_tool.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony/openHarmony_toolInstall.ui (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony_install.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/openHarmony_tools.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/package.json (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/reference/Reference_view_currentToolManager().txt (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/tbpackage.json (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/tools/OpenHarmony_basic/INSTALL (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/tools/OpenHarmony_basic/README (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_anim_tools.js (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_basic_backdropPicker.ui (100%) rename {client/ayon_core/hosts/harmony => server_addon/harmony/harmony/ayon_harmony}/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_rigging_tools.js (100%) diff --git a/client/ayon_core/hosts/harmony/__init__.py b/server_addon/harmony/harmony/ayon_harmony/__init__.py similarity index 100% rename from client/ayon_core/hosts/harmony/__init__.py rename to server_addon/harmony/harmony/ayon_harmony/__init__.py diff --git a/client/ayon_core/hosts/harmony/addon.py b/server_addon/harmony/harmony/ayon_harmony/addon.py similarity index 100% rename from client/ayon_core/hosts/harmony/addon.py rename to server_addon/harmony/harmony/ayon_harmony/addon.py diff --git a/client/ayon_core/hosts/harmony/api/README.md b/server_addon/harmony/harmony/ayon_harmony/api/README.md similarity index 100% rename from client/ayon_core/hosts/harmony/api/README.md rename to server_addon/harmony/harmony/ayon_harmony/api/README.md diff --git a/client/ayon_core/hosts/harmony/api/TB_sceneOpened.js b/server_addon/harmony/harmony/ayon_harmony/api/TB_sceneOpened.js similarity index 100% rename from client/ayon_core/hosts/harmony/api/TB_sceneOpened.js rename to server_addon/harmony/harmony/ayon_harmony/api/TB_sceneOpened.js diff --git a/client/ayon_core/hosts/harmony/api/__init__.py b/server_addon/harmony/harmony/ayon_harmony/api/__init__.py similarity index 100% rename from client/ayon_core/hosts/harmony/api/__init__.py rename to server_addon/harmony/harmony/ayon_harmony/api/__init__.py diff --git a/client/ayon_core/hosts/harmony/api/js/.eslintrc.json b/server_addon/harmony/harmony/ayon_harmony/api/js/.eslintrc.json similarity index 100% rename from client/ayon_core/hosts/harmony/api/js/.eslintrc.json rename to server_addon/harmony/harmony/ayon_harmony/api/js/.eslintrc.json diff --git a/client/ayon_core/hosts/harmony/api/js/AvalonHarmony.js b/server_addon/harmony/harmony/ayon_harmony/api/js/AvalonHarmony.js similarity index 100% rename from client/ayon_core/hosts/harmony/api/js/AvalonHarmony.js rename to server_addon/harmony/harmony/ayon_harmony/api/js/AvalonHarmony.js diff --git a/client/ayon_core/hosts/harmony/api/js/package.json b/server_addon/harmony/harmony/ayon_harmony/api/js/package.json similarity index 100% rename from client/ayon_core/hosts/harmony/api/js/package.json rename to server_addon/harmony/harmony/ayon_harmony/api/js/package.json diff --git a/client/ayon_core/hosts/harmony/api/launch_script.py b/server_addon/harmony/harmony/ayon_harmony/api/launch_script.py similarity index 100% rename from client/ayon_core/hosts/harmony/api/launch_script.py rename to server_addon/harmony/harmony/ayon_harmony/api/launch_script.py diff --git a/client/ayon_core/hosts/harmony/api/lib.py b/server_addon/harmony/harmony/ayon_harmony/api/lib.py similarity index 100% rename from client/ayon_core/hosts/harmony/api/lib.py rename to server_addon/harmony/harmony/ayon_harmony/api/lib.py diff --git a/client/ayon_core/hosts/harmony/api/pipeline.py b/server_addon/harmony/harmony/ayon_harmony/api/pipeline.py similarity index 100% rename from client/ayon_core/hosts/harmony/api/pipeline.py rename to server_addon/harmony/harmony/ayon_harmony/api/pipeline.py diff --git a/client/ayon_core/hosts/harmony/api/plugin.py b/server_addon/harmony/harmony/ayon_harmony/api/plugin.py similarity index 100% rename from client/ayon_core/hosts/harmony/api/plugin.py rename to server_addon/harmony/harmony/ayon_harmony/api/plugin.py diff --git a/client/ayon_core/hosts/harmony/api/server.py b/server_addon/harmony/harmony/ayon_harmony/api/server.py similarity index 100% rename from client/ayon_core/hosts/harmony/api/server.py rename to server_addon/harmony/harmony/ayon_harmony/api/server.py diff --git a/client/ayon_core/hosts/harmony/api/temp.zip b/server_addon/harmony/harmony/ayon_harmony/api/temp.zip similarity index 100% rename from client/ayon_core/hosts/harmony/api/temp.zip rename to server_addon/harmony/harmony/ayon_harmony/api/temp.zip diff --git a/client/ayon_core/hosts/harmony/api/workio.py b/server_addon/harmony/harmony/ayon_harmony/api/workio.py similarity index 100% rename from client/ayon_core/hosts/harmony/api/workio.py rename to server_addon/harmony/harmony/ayon_harmony/api/workio.py diff --git a/client/ayon_core/hosts/harmony/hooks/pre_launch_args.py b/server_addon/harmony/harmony/ayon_harmony/hooks/pre_launch_args.py similarity index 100% rename from client/ayon_core/hosts/harmony/hooks/pre_launch_args.py rename to server_addon/harmony/harmony/ayon_harmony/hooks/pre_launch_args.py diff --git a/client/ayon_core/hosts/harmony/js/.eslintrc.json b/server_addon/harmony/harmony/ayon_harmony/js/.eslintrc.json similarity index 100% rename from client/ayon_core/hosts/harmony/js/.eslintrc.json rename to server_addon/harmony/harmony/ayon_harmony/js/.eslintrc.json diff --git a/client/ayon_core/hosts/harmony/js/PypeHarmony.js b/server_addon/harmony/harmony/ayon_harmony/js/PypeHarmony.js similarity index 100% rename from client/ayon_core/hosts/harmony/js/PypeHarmony.js rename to server_addon/harmony/harmony/ayon_harmony/js/PypeHarmony.js diff --git a/client/ayon_core/hosts/harmony/js/README.md b/server_addon/harmony/harmony/ayon_harmony/js/README.md similarity index 100% rename from client/ayon_core/hosts/harmony/js/README.md rename to server_addon/harmony/harmony/ayon_harmony/js/README.md diff --git a/client/ayon_core/hosts/harmony/js/creators/CreateRender.js b/server_addon/harmony/harmony/ayon_harmony/js/creators/CreateRender.js similarity index 100% rename from client/ayon_core/hosts/harmony/js/creators/CreateRender.js rename to server_addon/harmony/harmony/ayon_harmony/js/creators/CreateRender.js diff --git a/client/ayon_core/hosts/harmony/js/loaders/ImageSequenceLoader.js b/server_addon/harmony/harmony/ayon_harmony/js/loaders/ImageSequenceLoader.js similarity index 100% rename from client/ayon_core/hosts/harmony/js/loaders/ImageSequenceLoader.js rename to server_addon/harmony/harmony/ayon_harmony/js/loaders/ImageSequenceLoader.js diff --git a/client/ayon_core/hosts/harmony/js/loaders/TemplateLoader.js b/server_addon/harmony/harmony/ayon_harmony/js/loaders/TemplateLoader.js similarity index 100% rename from client/ayon_core/hosts/harmony/js/loaders/TemplateLoader.js rename to server_addon/harmony/harmony/ayon_harmony/js/loaders/TemplateLoader.js diff --git a/client/ayon_core/hosts/harmony/js/package.json b/server_addon/harmony/harmony/ayon_harmony/js/package.json similarity index 100% rename from client/ayon_core/hosts/harmony/js/package.json rename to server_addon/harmony/harmony/ayon_harmony/js/package.json diff --git a/client/ayon_core/hosts/harmony/js/publish/CollectCurrentFile.js b/server_addon/harmony/harmony/ayon_harmony/js/publish/CollectCurrentFile.js similarity index 100% rename from client/ayon_core/hosts/harmony/js/publish/CollectCurrentFile.js rename to server_addon/harmony/harmony/ayon_harmony/js/publish/CollectCurrentFile.js diff --git a/client/ayon_core/hosts/harmony/js/publish/CollectFarmRender.js b/server_addon/harmony/harmony/ayon_harmony/js/publish/CollectFarmRender.js similarity index 100% rename from client/ayon_core/hosts/harmony/js/publish/CollectFarmRender.js rename to server_addon/harmony/harmony/ayon_harmony/js/publish/CollectFarmRender.js diff --git a/client/ayon_core/hosts/harmony/js/publish/CollectPalettes.js b/server_addon/harmony/harmony/ayon_harmony/js/publish/CollectPalettes.js similarity index 100% rename from client/ayon_core/hosts/harmony/js/publish/CollectPalettes.js rename to server_addon/harmony/harmony/ayon_harmony/js/publish/CollectPalettes.js diff --git a/client/ayon_core/hosts/harmony/js/publish/ExtractPalette.js b/server_addon/harmony/harmony/ayon_harmony/js/publish/ExtractPalette.js similarity index 100% rename from client/ayon_core/hosts/harmony/js/publish/ExtractPalette.js rename to server_addon/harmony/harmony/ayon_harmony/js/publish/ExtractPalette.js diff --git a/client/ayon_core/hosts/harmony/js/publish/ExtractTemplate.js b/server_addon/harmony/harmony/ayon_harmony/js/publish/ExtractTemplate.js similarity index 100% rename from client/ayon_core/hosts/harmony/js/publish/ExtractTemplate.js rename to server_addon/harmony/harmony/ayon_harmony/js/publish/ExtractTemplate.js diff --git a/client/ayon_core/hosts/harmony/plugins/__init__.py b/server_addon/harmony/harmony/ayon_harmony/plugins/__init__.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/__init__.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/__init__.py diff --git a/client/ayon_core/hosts/harmony/plugins/create/create_farm_render.py b/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_farm_render.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/create/create_farm_render.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/create/create_farm_render.py diff --git a/client/ayon_core/hosts/harmony/plugins/create/create_render.py b/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_render.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/create/create_render.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/create/create_render.py diff --git a/client/ayon_core/hosts/harmony/plugins/create/create_template.py b/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_template.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/create/create_template.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/create/create_template.py diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_audio.py b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_audio.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/load/load_audio.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/load/load_audio.py diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_background.py b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_background.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/load/load_background.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/load/load_background.py diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_imagesequence.py b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_imagesequence.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/load/load_imagesequence.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/load/load_imagesequence.py diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_palette.py b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_palette.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/load/load_palette.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/load/load_palette.py diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_template.py b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_template.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/load/load_template.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/load/load_template.py diff --git a/client/ayon_core/hosts/harmony/plugins/load/load_template_workfile.py b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_template_workfile.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/load/load_template_workfile.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/load/load_template_workfile.py diff --git a/client/ayon_core/hosts/harmony/plugins/publish/collect_audio.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_audio.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/collect_audio.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_audio.py diff --git a/client/ayon_core/hosts/harmony/plugins/publish/collect_current_file.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_current_file.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/collect_current_file.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_current_file.py diff --git a/client/ayon_core/hosts/harmony/plugins/publish/collect_farm_render.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_farm_render.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/collect_farm_render.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_farm_render.py diff --git a/client/ayon_core/hosts/harmony/plugins/publish/collect_instances.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_instances.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/collect_instances.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_instances.py diff --git a/client/ayon_core/hosts/harmony/plugins/publish/collect_palettes.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_palettes.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/collect_palettes.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_palettes.py diff --git a/client/ayon_core/hosts/harmony/plugins/publish/collect_scene.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_scene.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/collect_scene.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_scene.py diff --git a/client/ayon_core/hosts/harmony/plugins/publish/collect_workfile.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_workfile.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/collect_workfile.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_workfile.py diff --git a/client/ayon_core/hosts/harmony/plugins/publish/extract_palette.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_palette.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/extract_palette.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_palette.py diff --git a/client/ayon_core/hosts/harmony/plugins/publish/extract_render.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_render.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/extract_render.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_render.py diff --git a/client/ayon_core/hosts/harmony/plugins/publish/extract_save_scene.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_save_scene.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/extract_save_scene.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_save_scene.py diff --git a/client/ayon_core/hosts/harmony/plugins/publish/extract_template.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_template.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/extract_template.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_template.py diff --git a/client/ayon_core/hosts/harmony/plugins/publish/extract_workfile.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_workfile.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/extract_workfile.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_workfile.py diff --git a/client/ayon_core/hosts/harmony/plugins/publish/help/validate_audio.xml b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/help/validate_audio.xml similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/help/validate_audio.xml rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/help/validate_audio.xml diff --git a/client/ayon_core/hosts/harmony/plugins/publish/help/validate_instances.xml b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/help/validate_instances.xml similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/help/validate_instances.xml rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/help/validate_instances.xml diff --git a/client/ayon_core/hosts/harmony/plugins/publish/help/validate_scene_settings.xml b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/help/validate_scene_settings.xml similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/help/validate_scene_settings.xml rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/help/validate_scene_settings.xml diff --git a/client/ayon_core/hosts/harmony/plugins/publish/increment_workfile.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/increment_workfile.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/increment_workfile.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/increment_workfile.py diff --git a/client/ayon_core/hosts/harmony/plugins/publish/validate_audio.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_audio.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/validate_audio.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_audio.py diff --git a/client/ayon_core/hosts/harmony/plugins/publish/validate_instances.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_instances.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/validate_instances.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_instances.py diff --git a/client/ayon_core/hosts/harmony/plugins/publish/validate_scene_settings.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_scene_settings.py similarity index 100% rename from client/ayon_core/hosts/harmony/plugins/publish/validate_scene_settings.py rename to server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_scene_settings.py diff --git a/client/ayon_core/hosts/harmony/vendor/.eslintrc.json b/server_addon/harmony/harmony/ayon_harmony/vendor/.eslintrc.json similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/.eslintrc.json rename to server_addon/harmony/harmony/ayon_harmony/vendor/.eslintrc.json diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/.gitattributes b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/.gitattributes similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/.gitattributes rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/.gitattributes diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/.gitignore b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/.gitignore similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/.gitignore rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/.gitignore diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/Install.bat b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/Install.bat similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/Install.bat rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/Install.bat diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/LICENSE b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/LICENSE similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/LICENSE rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/LICENSE diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/README.md b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/README.md similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/README.md rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/README.md diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/build_doc.bat b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/build_doc.bat similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/build_doc.bat rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/build_doc.bat diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/documentation.json b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/documentation.json similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/documentation.json rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/documentation.json diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/install.sh b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/install.sh similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/install.sh rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/install.sh diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/oH_DOM.jpg b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/oH_DOM.jpg similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/oH_DOM.jpg rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/oH_DOM.jpg diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_actions.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_actions.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_actions.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_actions.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_application.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_application.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_application.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_application.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_attribute.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_attribute.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_attribute.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_attribute.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_backdrop.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_backdrop.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_backdrop.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_backdrop.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_color.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_color.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_color.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_color.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_column.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_column.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_column.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_column.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_database.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_database.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_database.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_database.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_dialog.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_dialog.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_dialog.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_dialog.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_drawing.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_drawing.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_drawing.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_drawing.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_element.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_element.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_element.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_element.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_file.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_file.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_file.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_file.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_frame.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_frame.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_frame.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_frame.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_list.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_list.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_list.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_list.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_math.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_math.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_math.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_math.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_metadata.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_metadata.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_metadata.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_metadata.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_misc.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_misc.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_misc.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_misc.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_network.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_network.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_network.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_network.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_node.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_node.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_node.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_node.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeAttributes.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeAttributes.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeAttributes.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeAttributes.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeLink.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeLink.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeLink.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeLink.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_palette.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_palette.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_palette.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_palette.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_path.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_path.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_path.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_path.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferencedoc.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferencedoc.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferencedoc.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferencedoc.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferences.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferences.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferences.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferences.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_scene.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_scene.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_scene.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_scene.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_threading.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_threading.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_threading.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_threading.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_timeline.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_timeline.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_timeline.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_timeline.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_tool.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_tool.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_tool.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_tool.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_toolInstall.ui b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_toolInstall.ui similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony/openHarmony_toolInstall.ui rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_toolInstall.ui diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony_install.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony_install.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony_install.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony_install.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony_tools.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony_tools.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/openHarmony_tools.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony_tools.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/package.json b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/package.json similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/package.json rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/package.json diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/reference/Reference_view_currentToolManager().txt b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/reference/Reference_view_currentToolManager().txt similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/reference/Reference_view_currentToolManager().txt rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/reference/Reference_view_currentToolManager().txt diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/tbpackage.json b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tbpackage.json similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/tbpackage.json rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tbpackage.json diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/INSTALL b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/INSTALL similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/INSTALL rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/INSTALL diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/README b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/README similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/README rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/README diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_anim_tools.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_anim_tools.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_anim_tools.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_anim_tools.js diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_basic_backdropPicker.ui b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_basic_backdropPicker.ui similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_basic_backdropPicker.ui rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_basic_backdropPicker.ui diff --git a/client/ayon_core/hosts/harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_rigging_tools.js b/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_rigging_tools.js similarity index 100% rename from client/ayon_core/hosts/harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_rigging_tools.js rename to server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_rigging_tools.js From a0636eec089217c4240688dcfbd795893ea25e8b Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 30 May 2024 12:52:59 +0200 Subject: [PATCH 17/88] fix imports --- .../harmony/ayon_harmony/api/README.md | 22 +++++++++---------- .../ayon_harmony/api/TB_sceneOpened.js | 18 +++++++-------- .../harmony/ayon_harmony/api/launch_script.py | 2 +- .../harmony/harmony/ayon_harmony/api/lib.py | 4 ++-- .../harmony/ayon_harmony/api/pipeline.py | 6 ++--- .../harmony/ayon_harmony/api/plugin.py | 2 +- .../ayon_harmony/hooks/pre_launch_args.py | 2 +- .../plugins/create/create_farm_render.py | 4 ++-- .../plugins/create/create_render.py | 4 ++-- .../plugins/create/create_template.py | 2 +- .../ayon_harmony/plugins/load/load_audio.py | 2 +- .../plugins/load/load_background.py | 2 +- .../plugins/load/load_imagesequence.py | 2 +- .../ayon_harmony/plugins/load/load_palette.py | 2 +- .../plugins/load/load_template.py | 2 +- .../plugins/load/load_template_workfile.py | 2 +- .../plugins/publish/collect_current_file.py | 2 +- .../plugins/publish/collect_farm_render.py | 2 +- .../plugins/publish/collect_instances.py | 2 +- .../plugins/publish/collect_palettes.py | 2 +- .../plugins/publish/collect_scene.py | 2 +- .../plugins/publish/extract_palette.py | 2 +- .../plugins/publish/extract_render.py | 2 +- .../plugins/publish/extract_save_scene.py | 2 +- .../plugins/publish/extract_template.py | 2 +- .../plugins/publish/increment_workfile.py | 2 +- .../plugins/publish/validate_audio.py | 2 +- .../plugins/publish/validate_instances.py | 2 +- .../publish/validate_scene_settings.py | 2 +- 29 files changed, 52 insertions(+), 52 deletions(-) diff --git a/server_addon/harmony/harmony/ayon_harmony/api/README.md b/server_addon/harmony/harmony/ayon_harmony/api/README.md index b8d1dbc100..6666ede83c 100644 --- a/server_addon/harmony/harmony/ayon_harmony/api/README.md +++ b/server_addon/harmony/harmony/ayon_harmony/api/README.md @@ -5,7 +5,7 @@ The easiest way to setup for using Toon Boom Harmony is to use the built-in launch: ``` -python -c "import ayon_core.hosts.harmony.api as harmony;harmony.launch("path/to/harmony/executable")" +python -c "import ayon_harmony.api as harmony;harmony.launch("path/to/harmony/executable")" ``` Communication with Harmony happens with a server/client relationship where the server is in the Python process and the client is in the Harmony process. Messages between Python and Harmony are required to be dictionaries, which are serialized to strings: @@ -59,7 +59,7 @@ You can show the Workfiles app when Harmony launches by setting environment vari ### Low level messaging To send from Python to Harmony you can use the exposed method: ```python -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony from uuid import uuid4 @@ -75,7 +75,7 @@ print(harmony.send({"function": func, "args": ["Python"]})["result"]) To send a function with multiple arguments its best to declare the arguments within the function: ```python -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony from uuid import uuid4 signature = str(uuid4()).replace("-", "_") @@ -114,7 +114,7 @@ PypeHarmony.myAwesomeFunction = function() { Then you can call that javascript code from your Python like: ```Python -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony harmony.send({"function": "PypeHarmony.myAwesomeFunction"}); @@ -159,7 +159,7 @@ Now in python, just read all those files and send them to Harmony. ```python from pathlib import Path -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony path_to_js = Path('/path/to/my/js') script_to_send = "" @@ -178,7 +178,7 @@ harmony.send({"function": "Master.Boo.B"}) ### Scene Save Instead of sending a request to Harmony with `scene.saveAll` please use: ```python -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony harmony.save_scene() ``` @@ -195,7 +195,7 @@ These plugins were made with the [polly config](https://github.com/mindbender-st #### Creator Plugin ```python -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony from uuid import uuid4 @@ -213,7 +213,7 @@ class CreateComposite(harmony.Creator): The creator plugin can be configured to use other node types. For example here is a write node creator: ```python from uuid import uuid4 -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony class CreateRender(harmony.Creator): @@ -244,7 +244,7 @@ class CreateRender(harmony.Creator): ```python import pyblish.api from ayon_core.pipeline import AYON_INSTANCE_ID, AVALON_INSTANCE_ID -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony class CollectInstances(pyblish.api.ContextPlugin): @@ -292,7 +292,7 @@ import os from uuid import uuid4 import pyblish.api -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony import clique @@ -423,7 +423,7 @@ class ExtractImage(pyblish.api.InstancePlugin): import os from uuid import uuid4 -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony signature = str(uuid4()).replace("-", "_") copy_files = """function copyFile(srcFilename, dstFilename) diff --git a/server_addon/harmony/harmony/ayon_harmony/api/TB_sceneOpened.js b/server_addon/harmony/harmony/ayon_harmony/api/TB_sceneOpened.js index cdf60c1aa8..00858b6de1 100644 --- a/server_addon/harmony/harmony/ayon_harmony/api/TB_sceneOpened.js +++ b/server_addon/harmony/harmony/ayon_harmony/api/TB_sceneOpened.js @@ -387,7 +387,7 @@ function start() { */ self.onCreator = function() { app.avalonClient.send({ - 'module': 'ayon_core.hosts.harmony.api.lib', + 'module': 'ayon_harmony.api.lib', 'method': 'show', 'args': ['creator'] }, false); @@ -402,7 +402,7 @@ function start() { */ self.onWorkfiles = function() { app.avalonClient.send({ - 'module': 'ayon_core.hosts.harmony.api.lib', + 'module': 'ayon_harmony.api.lib', 'method': 'show', 'args': ['workfiles'] }, false); @@ -417,7 +417,7 @@ function start() { */ self.onLoad = function() { app.avalonClient.send({ - 'module': 'ayon_core.hosts.harmony.api.lib', + 'module': 'ayon_harmony.api.lib', 'method': 'show', 'args': ['loader'] }, false); @@ -433,7 +433,7 @@ function start() { */ self.onPublish = function() { app.avalonClient.send({ - 'module': 'ayon_core.hosts.harmony.api.lib', + 'module': 'ayon_harmony.api.lib', 'method': 'show', 'args': ['publish'] }, false); @@ -449,7 +449,7 @@ function start() { */ self.onManage = function() { app.avalonClient.send({ - 'module': 'ayon_core.hosts.harmony.api.lib', + 'module': 'ayon_harmony.api.lib', 'method': 'show', 'args': ['sceneinventory'] }, false); @@ -465,7 +465,7 @@ function start() { */ self.onSubsetManage = function() { app.avalonClient.send({ - 'module': 'ayon_core.hosts.harmony.api.lib', + 'module': 'ayon_harmony.api.lib', 'method': 'show', 'args': ['subsetmanager'] }, false); @@ -482,7 +482,7 @@ function start() { self.onSetSceneSettings = function() { app.avalonClient.send( { - "module": "ayon_core.hosts.harmony.api", + "module": "ayon_harmony.api", "method": "ensure_scene_settings", "args": [] }, @@ -500,7 +500,7 @@ function start() { */ self.onExperimentalTools = function() { app.avalonClient.send({ - 'module': 'ayon_core.hosts.harmony.api.lib', + 'module': 'ayon_harmony.api.lib', 'method': 'show', 'args': ['experimental_tools'] }, false); @@ -550,7 +550,7 @@ function ensureSceneSettings() { var app = QCoreApplication.instance(); app.avalonClient.send( { - "module": "ayon_core.hosts.harmony.api", + "module": "ayon_harmony.api", "method": "ensure_scene_settings", "args": [] }, diff --git a/server_addon/harmony/harmony/ayon_harmony/api/launch_script.py b/server_addon/harmony/harmony/ayon_harmony/api/launch_script.py index 3c809e210f..6327682a43 100644 --- a/server_addon/harmony/harmony/ayon_harmony/api/launch_script.py +++ b/server_addon/harmony/harmony/ayon_harmony/api/launch_script.py @@ -8,7 +8,7 @@ workfile or others. import os import sys -from ayon_core.hosts.harmony.api.lib import main as host_main +from ayon_harmony.api.lib import main as host_main # Get current file to locate start point of sys.argv CURRENT_FILE = os.path.abspath(__file__) diff --git a/server_addon/harmony/harmony/ayon_harmony/api/lib.py b/server_addon/harmony/harmony/ayon_harmony/api/lib.py index f9980cb65e..900d66fa0c 100644 --- a/server_addon/harmony/harmony/ayon_harmony/api/lib.py +++ b/server_addon/harmony/harmony/ayon_harmony/api/lib.py @@ -186,7 +186,7 @@ def launch(application_path, *args): """ from ayon_core.pipeline import install_host - from ayon_core.hosts.harmony import api as harmony + from ayon_harmony import api as harmony install_host(harmony) @@ -486,7 +486,7 @@ def imprint(node_id, data, remove=False): remove (bool): Removes the data from the scene. Example: - >>> from ayon_core.hosts.harmony.api import lib + >>> from ayon_harmony.api import lib >>> node = "Top/Display" >>> data = {"str": "something", "int": 1, "float": 0.32, "bool": True} >>> lib.imprint(layer, data) diff --git a/server_addon/harmony/harmony/ayon_harmony/api/pipeline.py b/server_addon/harmony/harmony/ayon_harmony/api/pipeline.py index 1e3ea0ba21..229dcf307e 100644 --- a/server_addon/harmony/harmony/ayon_harmony/api/pipeline.py +++ b/server_addon/harmony/harmony/ayon_harmony/api/pipeline.py @@ -15,11 +15,11 @@ from ayon_core.pipeline import ( from ayon_core.pipeline.load import get_outdated_containers from ayon_core.pipeline.context_tools import get_current_folder_entity -from ayon_core.hosts.harmony import HARMONY_ADDON_ROOT -import ayon_core.hosts.harmony.api as harmony +from ayon_harmony import HARMONY_ADDON_ROOT +import ayon_harmony.api as harmony -log = logging.getLogger("ayon_core.hosts.harmony") +log = logging.getLogger("ayon_harmony") PLUGINS_DIR = os.path.join(HARMONY_ADDON_ROOT, "plugins") PUBLISH_PATH = os.path.join(PLUGINS_DIR, "publish") diff --git a/server_addon/harmony/harmony/ayon_harmony/api/plugin.py b/server_addon/harmony/harmony/ayon_harmony/api/plugin.py index 29ebdb2b8d..6ec876af62 100644 --- a/server_addon/harmony/harmony/ayon_harmony/api/plugin.py +++ b/server_addon/harmony/harmony/ayon_harmony/api/plugin.py @@ -1,5 +1,5 @@ from ayon_core.pipeline import LegacyCreator -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony class Creator(LegacyCreator): diff --git a/server_addon/harmony/harmony/ayon_harmony/hooks/pre_launch_args.py b/server_addon/harmony/harmony/ayon_harmony/hooks/pre_launch_args.py index 4d38cd09b3..2fdb5ae620 100644 --- a/server_addon/harmony/harmony/ayon_harmony/hooks/pre_launch_args.py +++ b/server_addon/harmony/harmony/ayon_harmony/hooks/pre_launch_args.py @@ -7,7 +7,7 @@ from ayon_core.lib import ( is_using_ayon_console, ) from ayon_applications import PreLaunchHook, LaunchTypes -from ayon_core.hosts.harmony import get_launch_script_path +from ayon_harmony import get_launch_script_path def get_launch_kwargs(kwargs): diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_farm_render.py b/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_farm_render.py index 3039d56ead..270acdd199 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_farm_render.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_farm_render.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- """Create Composite node for render on farm.""" -import ayon_core.hosts.harmony.api as harmony -from ayon_core.hosts.harmony.api import plugin +import ayon_harmony.api as harmony +from ayon_harmony.api import plugin class CreateFarmRender(plugin.Creator): diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_render.py b/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_render.py index 23e02bd8a5..d4622a3202 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_render.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_render.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- """Create render node.""" -import ayon_core.hosts.harmony.api as harmony -from ayon_core.hosts.harmony.api import plugin +import ayon_harmony.api as harmony +from ayon_harmony.api import plugin class CreateRender(plugin.Creator): diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_template.py b/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_template.py index c16e429436..79fd315998 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_template.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_template.py @@ -1,4 +1,4 @@ -from ayon_core.hosts.harmony.api import plugin +from ayon_harmony.api import plugin class CreateTemplate(plugin.Creator): diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_audio.py b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_audio.py index d23f3ed034..3ba27d005f 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_audio.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_audio.py @@ -2,7 +2,7 @@ from ayon_core.pipeline import ( load, get_representation_path, ) -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony sig = harmony.signature() func = """ diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_background.py b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_background.py index dad6ac2f22..7f0e5c5563 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_background.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_background.py @@ -6,7 +6,7 @@ from ayon_core.pipeline import ( get_representation_path, ) from ayon_core.pipeline.context_tools import is_representation_from_latest -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony copy_files = """function copyFile(srcFilename, dstFilename) diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_imagesequence.py b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_imagesequence.py index f81ebca9af..a1b890300c 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_imagesequence.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_imagesequence.py @@ -11,7 +11,7 @@ from ayon_core.pipeline import ( get_representation_path, ) from ayon_core.pipeline.context_tools import is_representation_from_latest -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony class ImageSequenceLoader(load.LoaderPlugin): diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_palette.py b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_palette.py index 24f4b4e8d4..930792aacf 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_palette.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_palette.py @@ -5,7 +5,7 @@ from ayon_core.pipeline import ( load, get_representation_path, ) -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony class ImportPaletteLoader(load.LoaderPlugin): diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_template.py b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_template.py index 96dadb0375..1d183ed156 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_template.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_template.py @@ -11,7 +11,7 @@ from ayon_core.pipeline import ( get_representation_path, ) from ayon_core.pipeline.context_tools import is_representation_from_latest -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony class TemplateLoader(load.LoaderPlugin): diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_template_workfile.py b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_template_workfile.py index fa5ffe5105..0967eb9a30 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_template_workfile.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_template_workfile.py @@ -7,7 +7,7 @@ from ayon_core.pipeline import ( load, get_representation_path, ) -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony class ImportTemplateLoader(load.LoaderPlugin): diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_current_file.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_current_file.py index ebe123eacc..cfa14aaa05 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_current_file.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_current_file.py @@ -3,7 +3,7 @@ import os import pyblish.api -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony class CollectCurrentFile(pyblish.api.ContextPlugin): diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_farm_render.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_farm_render.py index c63eb114e5..4730821dd8 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_farm_render.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_farm_render.py @@ -7,7 +7,7 @@ import attr from ayon_core.lib import get_formatted_current_time from ayon_core.pipeline import publish from ayon_core.pipeline.publish import RenderInstance -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony @attr.s diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_instances.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_instances.py index 5aad7d4751..a98ee3e98b 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_instances.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_instances.py @@ -3,7 +3,7 @@ import json import pyblish.api -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony class CollectInstances(pyblish.api.ContextPlugin): diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_palettes.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_palettes.py index 9e0b500663..818d9afc8a 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_palettes.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_palettes.py @@ -4,7 +4,7 @@ import json import re import pyblish.api -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony class CollectPalettes(pyblish.api.ContextPlugin): diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_scene.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_scene.py index bc2ccca1be..48f8aa0d3b 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_scene.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_scene.py @@ -3,7 +3,7 @@ import os import pyblish.api -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony class CollectScene(pyblish.api.ContextPlugin): diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_palette.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_palette.py index 9f12c78d9f..ad1d38e862 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_palette.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_palette.py @@ -5,7 +5,7 @@ import csv from PIL import Image, ImageDraw, ImageFont -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony from ayon_core.pipeline import publish diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_render.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_render.py index 391661a118..407a44c81a 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_render.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_render.py @@ -3,7 +3,7 @@ import tempfile import subprocess import pyblish.api -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony import ayon_core.lib import clique diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_save_scene.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_save_scene.py index 1be74ba3a4..77ebc5b5a6 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_save_scene.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_save_scene.py @@ -1,5 +1,5 @@ import pyblish.api -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony class ExtractSaveScene(pyblish.api.ContextPlugin): diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_template.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_template.py index b2c7fa8174..650765771c 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_template.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_template.py @@ -4,7 +4,7 @@ import os import shutil from ayon_core.pipeline import publish -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony class ExtractTemplate(publish.Extractor): diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/increment_workfile.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/increment_workfile.py index 16332a5283..fa43455b0d 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/increment_workfile.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/increment_workfile.py @@ -3,7 +3,7 @@ import os import pyblish.api from ayon_core.pipeline.publish import get_errored_plugins_from_context from ayon_core.lib import version_up -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony class IncrementWorkfile(pyblish.api.InstancePlugin): diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_audio.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_audio.py index 808734a061..f2c1cfc9b4 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_audio.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_audio.py @@ -2,7 +2,7 @@ import os import pyblish.api -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony from ayon_core.pipeline import PublishXmlValidationError diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_instances.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_instances.py index 1200f6266b..8152aeeadf 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_instances.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_instances.py @@ -1,6 +1,6 @@ import pyblish.api -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony from ayon_core.pipeline import get_current_folder_path from ayon_core.pipeline.publish import ( ValidateContentsOrder, diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_scene_settings.py b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_scene_settings.py index dc3db3b544..3a4847d9fe 100644 --- a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_scene_settings.py +++ b/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_scene_settings.py @@ -6,7 +6,7 @@ import re import pyblish.api -import ayon_core.hosts.harmony.api as harmony +import ayon_harmony.api as harmony from ayon_core.pipeline import PublishXmlValidationError From 931b09cdcca8e0b17c781c16171e9bad4b5c66a3 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 30 May 2024 12:53:20 +0200 Subject: [PATCH 18/88] change stdout broker import --- .../ayon_core/tools/stdout_broker/__init__.py | 5 + client/ayon_core/tools/stdout_broker/app.py | 181 +----------------- .../ayon_core/tools/stdout_broker/broker.py | 174 +++++++++++++++++ .../harmony/harmony/ayon_harmony/api/lib.py | 2 +- 4 files changed, 190 insertions(+), 172 deletions(-) create mode 100644 client/ayon_core/tools/stdout_broker/broker.py diff --git a/client/ayon_core/tools/stdout_broker/__init__.py b/client/ayon_core/tools/stdout_broker/__init__.py index e69de29bb2..e104c60573 100644 --- a/client/ayon_core/tools/stdout_broker/__init__.py +++ b/client/ayon_core/tools/stdout_broker/__init__.py @@ -0,0 +1,5 @@ +from .broker import StdOutBroker + +__all__ = ( + "StdOutBroker", +) diff --git a/client/ayon_core/tools/stdout_broker/app.py b/client/ayon_core/tools/stdout_broker/app.py index 15447b608b..ae73db1bb9 100644 --- a/client/ayon_core/tools/stdout_broker/app.py +++ b/client/ayon_core/tools/stdout_broker/app.py @@ -1,173 +1,12 @@ -import os -import sys -import threading -import collections -import websocket -import json -from datetime import datetime +import warnings +from .broker import StdOutBroker -from ayon_core.lib import Logger -from openpype_modules.webserver.host_console_listener import MsgAction +warnings.warn( + ( + "Import of 'StdOutBroker' from 'ayon_core.tools.stdout_broker.app'" + " is deprecated. Please use 'ayon_core.tools.stdout_broker' instead." + ), + DeprecationWarning +) -log = Logger.get_logger(__name__) - - -class StdOutBroker: - """ - Application showing console in Services tray for non python hosts - instead of cmd window. - """ - MAX_LINES = 10000 - TIMER_TIMEOUT = 0.200 - - def __init__(self, host_name): - self.host_name = host_name - self.webserver_client = None - - self.original_stdout_write = None - self.original_stderr_write = None - self.log_queue = collections.deque() - - date_str = datetime.now().strftime("%d%m%Y%H%M%S") - self.host_id = "{}_{}".format(self.host_name, date_str) - - self._std_available = False - self._is_running = False - self._catch_std_outputs() - - self._timer = None - - @property - def send_to_tray(self): - """Checks if connected to tray and have access to logs.""" - return self.webserver_client and self._std_available - - def start(self): - """Start app, create and start timer""" - if not self._std_available or self._is_running: - return - self._is_running = True - self._create_timer() - self._connect_to_tray() - - def stop(self): - """Disconnect from Tray, process last logs""" - if not self._is_running: - return - self._is_running = False - self._process_queue() - self._disconnect_from_tray() - - def host_connected(self): - """Send to Tray console that host is ready - icon change. """ - log.info("Host {} connected".format(self.host_id)) - - payload = { - "host": self.host_id, - "action": MsgAction.INITIALIZED, - "text": "Integration with {}".format( - str.capitalize(self.host_name)) - } - self._send(payload) - - def _create_timer(self): - timer = threading.Timer(self.TIMER_TIMEOUT, self._timer_callback) - timer.start() - self._timer = timer - - def _timer_callback(self): - if not self._is_running: - return - self._process_queue() - self._create_timer() - - def _connect_to_tray(self): - """Connect to Tray webserver to pass console output. """ - if not self._std_available: # not content to log - return - ws = websocket.WebSocket() - webserver_url = os.environ.get("AYON_WEBSERVER_URL") - - if not webserver_url: - print("Unknown webserver url, cannot connect to pass log") - return - - webserver_url = webserver_url.replace("http", "ws") - ws.connect("{}/ws/host_listener".format(webserver_url)) - self.webserver_client = ws - - payload = { - "host": self.host_id, - "action": MsgAction.CONNECTING, - "text": "Integration with {}".format( - str.capitalize(self.host_name)) - } - self._send(payload) - - def _disconnect_from_tray(self): - """Send to Tray that host is closing - remove from Services. """ - print("Host {} closing".format(self.host_name)) - if not self.webserver_client: - return - - payload = { - "host": self.host_id, - "action": MsgAction.CLOSE, - "text": "Integration with {}".format( - str.capitalize(self.host_name)) - } - - self._send(payload) - self.webserver_client.close() - - def _catch_std_outputs(self): - """Redirects standard out and error to own functions""" - if sys.stdout: - self.original_stdout_write = sys.stdout.write - sys.stdout.write = self._my_stdout_write - self._std_available = True - - if sys.stderr: - self.original_stderr_write = sys.stderr.write - sys.stderr.write = self._my_stderr_write - self._std_available = True - - def _my_stdout_write(self, text): - """Appends outputted text to queue, keep writing to original stdout""" - if self.original_stdout_write is not None: - self.original_stdout_write(text) - if self.send_to_tray: - self.log_queue.append(text) - - def _my_stderr_write(self, text): - """Appends outputted text to queue, keep writing to original stderr""" - if self.original_stderr_write is not None: - self.original_stderr_write(text) - if self.send_to_tray: - self.log_queue.append(text) - - def _process_queue(self): - """Sends lines and purges queue""" - if not self.send_to_tray: - return - - lines = tuple(self.log_queue) - self.log_queue.clear() - if lines: - payload = { - "host": self.host_id, - "action": MsgAction.ADD, - "text": "\n".join(lines) - } - - self._send(payload) - - def _send(self, payload): - """Worker method to send to existing websocket connection.""" - if not self.send_to_tray: - return - - try: - self.webserver_client.send(json.dumps(payload)) - except ConnectionResetError: # Tray closed - self._connect_to_tray() +__all__ = ("StdOutBroker", ) diff --git a/client/ayon_core/tools/stdout_broker/broker.py b/client/ayon_core/tools/stdout_broker/broker.py new file mode 100644 index 0000000000..e31eb0057e --- /dev/null +++ b/client/ayon_core/tools/stdout_broker/broker.py @@ -0,0 +1,174 @@ +import os +import sys +import threading +import collections +import json +from datetime import datetime + +import websocket + +from ayon_core.lib import Logger +from ayon_core.modules.webserver.host_console_listener import MsgAction + +log = Logger.get_logger(__name__) + + +class StdOutBroker: + """ + Application showing console in Services tray for non python hosts + instead of cmd window. + """ + MAX_LINES = 10000 + TIMER_TIMEOUT = 0.200 + + def __init__(self, host_name): + self.host_name = host_name + self.webserver_client = None + + self.original_stdout_write = None + self.original_stderr_write = None + self.log_queue = collections.deque() + + date_str = datetime.now().strftime("%d%m%Y%H%M%S") + self.host_id = "{}_{}".format(self.host_name, date_str) + + self._std_available = False + self._is_running = False + self._catch_std_outputs() + + self._timer = None + + @property + def send_to_tray(self): + """Checks if connected to tray and have access to logs.""" + return self.webserver_client and self._std_available + + def start(self): + """Start app, create and start timer""" + if not self._std_available or self._is_running: + return + self._is_running = True + self._create_timer() + self._connect_to_tray() + + def stop(self): + """Disconnect from Tray, process last logs""" + if not self._is_running: + return + self._is_running = False + self._process_queue() + self._disconnect_from_tray() + + def host_connected(self): + """Send to Tray console that host is ready - icon change. """ + log.info("Host {} connected".format(self.host_id)) + + payload = { + "host": self.host_id, + "action": MsgAction.INITIALIZED, + "text": "Integration with {}".format( + str.capitalize(self.host_name)) + } + self._send(payload) + + def _create_timer(self): + timer = threading.Timer(self.TIMER_TIMEOUT, self._timer_callback) + timer.start() + self._timer = timer + + def _timer_callback(self): + if not self._is_running: + return + self._process_queue() + self._create_timer() + + def _connect_to_tray(self): + """Connect to Tray webserver to pass console output. """ + if not self._std_available: # not content to log + return + ws = websocket.WebSocket() + webserver_url = os.environ.get("AYON_WEBSERVER_URL") + + if not webserver_url: + print("Unknown webserver url, cannot connect to pass log") + return + + webserver_url = webserver_url.replace("http", "ws") + ws.connect("{}/ws/host_listener".format(webserver_url)) + self.webserver_client = ws + + payload = { + "host": self.host_id, + "action": MsgAction.CONNECTING, + "text": "Integration with {}".format( + str.capitalize(self.host_name)) + } + self._send(payload) + + def _disconnect_from_tray(self): + """Send to Tray that host is closing - remove from Services. """ + print("Host {} closing".format(self.host_name)) + if not self.webserver_client: + return + + payload = { + "host": self.host_id, + "action": MsgAction.CLOSE, + "text": "Integration with {}".format( + str.capitalize(self.host_name)) + } + + self._send(payload) + self.webserver_client.close() + + def _catch_std_outputs(self): + """Redirects standard out and error to own functions""" + if sys.stdout: + self.original_stdout_write = sys.stdout.write + sys.stdout.write = self._my_stdout_write + self._std_available = True + + if sys.stderr: + self.original_stderr_write = sys.stderr.write + sys.stderr.write = self._my_stderr_write + self._std_available = True + + def _my_stdout_write(self, text): + """Appends outputted text to queue, keep writing to original stdout""" + if self.original_stdout_write is not None: + self.original_stdout_write(text) + if self.send_to_tray: + self.log_queue.append(text) + + def _my_stderr_write(self, text): + """Appends outputted text to queue, keep writing to original stderr""" + if self.original_stderr_write is not None: + self.original_stderr_write(text) + if self.send_to_tray: + self.log_queue.append(text) + + def _process_queue(self): + """Sends lines and purges queue""" + if not self.send_to_tray: + return + + lines = tuple(self.log_queue) + self.log_queue.clear() + if lines: + payload = { + "host": self.host_id, + "action": MsgAction.ADD, + "text": "\n".join(lines) + } + + self._send(payload) + + def _send(self, payload): + """Worker method to send to existing websocket connection.""" + if not self.send_to_tray: + return + + try: + self.webserver_client.send(json.dumps(payload)) + except ConnectionResetError: # Tray closed + self._connect_to_tray() diff --git a/server_addon/harmony/harmony/ayon_harmony/api/lib.py b/server_addon/harmony/harmony/ayon_harmony/api/lib.py index 900d66fa0c..46a5318430 100644 --- a/server_addon/harmony/harmony/ayon_harmony/api/lib.py +++ b/server_addon/harmony/harmony/ayon_harmony/api/lib.py @@ -20,7 +20,7 @@ import collections from qtpy import QtWidgets, QtCore, QtGui from ayon_core.lib import is_using_ayon_console -from ayon_core.tools.stdout_broker.app import StdOutBroker +from ayon_core.tools.stdout_broker import StdOutBroker from ayon_core.tools.utils import host_tools from ayon_core import style From 9a3bcec6732ac8ed8c837e16b4822aeb99e405c6 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 30 May 2024 12:55:39 +0200 Subject: [PATCH 19/88] added TODO --- server_addon/harmony/harmony/ayon_harmony/api/server.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server_addon/harmony/harmony/ayon_harmony/api/server.py b/server_addon/harmony/harmony/ayon_harmony/api/server.py index 04048e5c84..7e1e36c2ed 100644 --- a/server_addon/harmony/harmony/ayon_harmony/api/server.py +++ b/server_addon/harmony/harmony/ayon_harmony/api/server.py @@ -69,6 +69,8 @@ class Server(threading.Thread): self.log.debug( f"[{self.timestamp()}] Processing request:\n{pretty}") + # TODO javascript should not define which module is imported and + # which function is called. It should send predefined requests. try: module = importlib.import_module(request["module"]) method = getattr(module, request["method"]) From dcb85b0ac19a8b2725955686191fea7777c68a77 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 30 May 2024 12:59:48 +0200 Subject: [PATCH 20/88] added more information to package.py --- server_addon/harmony/package.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/server_addon/harmony/package.py b/server_addon/harmony/package.py index 00824cedef..af0006ec3b 100644 --- a/server_addon/harmony/package.py +++ b/server_addon/harmony/package.py @@ -1,3 +1,9 @@ name = "harmony" title = "Harmony" -version = "0.1.3" +version = "0.2.0" +client_dir = "ayon_harmony" + +ayon_required_addons = { + "core": ">0.3.2", +} +ayon_compatible_addons = {} From 9afb14d02d58caee83d3f0c4e0c237084dc6497d Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 30 May 2024 12:59:56 +0200 Subject: [PATCH 21/88] added version to client addon --- server_addon/harmony/harmony/ayon_harmony/__init__.py | 3 +++ server_addon/harmony/harmony/ayon_harmony/addon.py | 3 +++ server_addon/harmony/harmony/ayon_harmony/version.py | 3 +++ 3 files changed, 9 insertions(+) create mode 100644 server_addon/harmony/harmony/ayon_harmony/version.py diff --git a/server_addon/harmony/harmony/ayon_harmony/__init__.py b/server_addon/harmony/harmony/ayon_harmony/__init__.py index 6454d6f9d7..425439a603 100644 --- a/server_addon/harmony/harmony/ayon_harmony/__init__.py +++ b/server_addon/harmony/harmony/ayon_harmony/__init__.py @@ -1,3 +1,4 @@ +from .version import __version__ from .addon import ( HARMONY_ADDON_ROOT, HarmonyAddon, @@ -6,6 +7,8 @@ from .addon import ( __all__ = ( + "__version__", + "HARMONY_ADDON_ROOT", "HarmonyAddon", "get_launch_script_path", diff --git a/server_addon/harmony/harmony/ayon_harmony/addon.py b/server_addon/harmony/harmony/ayon_harmony/addon.py index 1915a7eb6f..ef96cf03f7 100644 --- a/server_addon/harmony/harmony/ayon_harmony/addon.py +++ b/server_addon/harmony/harmony/ayon_harmony/addon.py @@ -1,11 +1,14 @@ import os from ayon_core.addon import AYONAddon, IHostAddon +from .version import __version__ + HARMONY_ADDON_ROOT = os.path.dirname(os.path.abspath(__file__)) class HarmonyAddon(AYONAddon, IHostAddon): name = "harmony" + version = __version__ host_name = "harmony" def add_implementation_envs(self, env, _app): diff --git a/server_addon/harmony/harmony/ayon_harmony/version.py b/server_addon/harmony/harmony/ayon_harmony/version.py new file mode 100644 index 0000000000..e2a19655e2 --- /dev/null +++ b/server_addon/harmony/harmony/ayon_harmony/version.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +"""Package declaring AYON addon 'harmony' version.""" +__version__ = "0.2.0" From 140b370b21ca811cc06340ada776223ea53f852a Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 30 May 2024 13:00:32 +0200 Subject: [PATCH 22/88] rename 'harmoy' to 'client' --- .../{harmony => client}/ayon_harmony/__init__.py | 0 .../{harmony => client}/ayon_harmony/addon.py | 0 .../{harmony => client}/ayon_harmony/api/README.md | 0 .../ayon_harmony/api/TB_sceneOpened.js | 0 .../ayon_harmony/api/__init__.py | 0 .../ayon_harmony/api/js/.eslintrc.json | 0 .../ayon_harmony/api/js/AvalonHarmony.js | 0 .../ayon_harmony/api/js/package.json | 0 .../ayon_harmony/api/launch_script.py | 0 .../{harmony => client}/ayon_harmony/api/lib.py | 0 .../ayon_harmony/api/pipeline.py | 0 .../{harmony => client}/ayon_harmony/api/plugin.py | 0 .../{harmony => client}/ayon_harmony/api/server.py | 0 .../{harmony => client}/ayon_harmony/api/temp.zip | Bin .../{harmony => client}/ayon_harmony/api/workio.py | 0 .../ayon_harmony/hooks/pre_launch_args.py | 0 .../ayon_harmony/js/.eslintrc.json | 0 .../ayon_harmony/js/PypeHarmony.js | 0 .../{harmony => client}/ayon_harmony/js/README.md | 0 .../ayon_harmony/js/creators/CreateRender.js | 0 .../ayon_harmony/js/loaders/ImageSequenceLoader.js | 0 .../ayon_harmony/js/loaders/TemplateLoader.js | 0 .../ayon_harmony/js/package.json | 0 .../ayon_harmony/js/publish/CollectCurrentFile.js | 0 .../ayon_harmony/js/publish/CollectFarmRender.js | 0 .../ayon_harmony/js/publish/CollectPalettes.js | 0 .../ayon_harmony/js/publish/ExtractPalette.js | 0 .../ayon_harmony/js/publish/ExtractTemplate.js | 0 .../ayon_harmony/plugins/__init__.py | 0 .../plugins/create/create_farm_render.py | 0 .../ayon_harmony/plugins/create/create_render.py | 0 .../ayon_harmony/plugins/create/create_template.py | 0 .../ayon_harmony/plugins/load/load_audio.py | 0 .../ayon_harmony/plugins/load/load_background.py | 0 .../ayon_harmony/plugins/load/load_imagesequence.py | 0 .../ayon_harmony/plugins/load/load_palette.py | 0 .../ayon_harmony/plugins/load/load_template.py | 0 .../plugins/load/load_template_workfile.py | 0 .../ayon_harmony/plugins/publish/collect_audio.py | 0 .../plugins/publish/collect_current_file.py | 0 .../plugins/publish/collect_farm_render.py | 0 .../plugins/publish/collect_instances.py | 0 .../plugins/publish/collect_palettes.py | 0 .../ayon_harmony/plugins/publish/collect_scene.py | 0 .../plugins/publish/collect_workfile.py | 0 .../ayon_harmony/plugins/publish/extract_palette.py | 0 .../ayon_harmony/plugins/publish/extract_render.py | 0 .../plugins/publish/extract_save_scene.py | 0 .../plugins/publish/extract_template.py | 0 .../plugins/publish/extract_workfile.py | 0 .../plugins/publish/help/validate_audio.xml | 0 .../plugins/publish/help/validate_instances.xml | 0 .../publish/help/validate_scene_settings.xml | 0 .../plugins/publish/increment_workfile.py | 0 .../ayon_harmony/plugins/publish/validate_audio.py | 0 .../plugins/publish/validate_instances.py | 0 .../plugins/publish/validate_scene_settings.py | 0 .../ayon_harmony/vendor/.eslintrc.json | 0 .../ayon_harmony/vendor/OpenHarmony/.gitattributes | 0 .../ayon_harmony/vendor/OpenHarmony/.gitignore | 0 .../ayon_harmony/vendor/OpenHarmony/Install.bat | 0 .../ayon_harmony/vendor/OpenHarmony/LICENSE | 0 .../ayon_harmony/vendor/OpenHarmony/README.md | 0 .../ayon_harmony/vendor/OpenHarmony/build_doc.bat | 0 .../vendor/OpenHarmony/documentation.json | 0 .../ayon_harmony/vendor/OpenHarmony/install.sh | 0 .../ayon_harmony/vendor/OpenHarmony/oH_DOM.jpg | Bin .../ayon_harmony/vendor/OpenHarmony/openHarmony.js | 0 .../OpenHarmony/openHarmony/openHarmony_actions.js | 0 .../openHarmony/openHarmony_application.js | 0 .../openHarmony/openHarmony_attribute.js | 0 .../OpenHarmony/openHarmony/openHarmony_backdrop.js | 0 .../OpenHarmony/openHarmony/openHarmony_color.js | 0 .../OpenHarmony/openHarmony/openHarmony_column.js | 0 .../OpenHarmony/openHarmony/openHarmony_database.js | 0 .../OpenHarmony/openHarmony/openHarmony_dialog.js | 0 .../OpenHarmony/openHarmony/openHarmony_drawing.js | 0 .../OpenHarmony/openHarmony/openHarmony_element.js | 0 .../OpenHarmony/openHarmony/openHarmony_file.js | 0 .../OpenHarmony/openHarmony/openHarmony_frame.js | 0 .../OpenHarmony/openHarmony/openHarmony_list.js | 0 .../OpenHarmony/openHarmony/openHarmony_math.js | 0 .../OpenHarmony/openHarmony/openHarmony_metadata.js | 0 .../OpenHarmony/openHarmony/openHarmony_misc.js | 0 .../OpenHarmony/openHarmony/openHarmony_network.js | 0 .../OpenHarmony/openHarmony/openHarmony_node.js | 0 .../openHarmony/openHarmony_nodeAttributes.js | 0 .../OpenHarmony/openHarmony/openHarmony_nodeLink.js | 0 .../OpenHarmony/openHarmony/openHarmony_palette.js | 0 .../OpenHarmony/openHarmony/openHarmony_path.js | 0 .../openHarmony/openHarmony_preferencedoc.js | 0 .../openHarmony/openHarmony_preferences.js | 0 .../OpenHarmony/openHarmony/openHarmony_scene.js | 0 .../openHarmony/openHarmony_threading.js | 0 .../OpenHarmony/openHarmony/openHarmony_timeline.js | 0 .../OpenHarmony/openHarmony/openHarmony_tool.js | 0 .../openHarmony/openHarmony_toolInstall.ui | 0 .../vendor/OpenHarmony/openHarmony_install.js | 0 .../vendor/OpenHarmony/openHarmony_tools.js | 0 .../ayon_harmony/vendor/OpenHarmony/package.json | 0 .../Reference_view_currentToolManager().txt | 0 .../ayon_harmony/vendor/OpenHarmony/tbpackage.json | 0 .../OpenHarmony/tools/OpenHarmony_basic/INSTALL | 0 .../OpenHarmony/tools/OpenHarmony_basic/README | 0 .../OpenHarmony_basic/openHarmony_anim_tools.js | 0 .../openHarmony_basic_backdropPicker.ui | 0 .../OpenHarmony_basic/openHarmony_rigging_tools.js | 0 .../{harmony => client}/ayon_harmony/version.py | 0 108 files changed, 0 insertions(+), 0 deletions(-) rename server_addon/harmony/{harmony => client}/ayon_harmony/__init__.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/addon.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/api/README.md (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/api/TB_sceneOpened.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/api/__init__.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/api/js/.eslintrc.json (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/api/js/AvalonHarmony.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/api/js/package.json (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/api/launch_script.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/api/lib.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/api/pipeline.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/api/plugin.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/api/server.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/api/temp.zip (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/api/workio.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/hooks/pre_launch_args.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/js/.eslintrc.json (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/js/PypeHarmony.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/js/README.md (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/js/creators/CreateRender.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/js/loaders/ImageSequenceLoader.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/js/loaders/TemplateLoader.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/js/package.json (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/js/publish/CollectCurrentFile.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/js/publish/CollectFarmRender.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/js/publish/CollectPalettes.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/js/publish/ExtractPalette.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/js/publish/ExtractTemplate.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/__init__.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/create/create_farm_render.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/create/create_render.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/create/create_template.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/load/load_audio.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/load/load_background.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/load/load_imagesequence.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/load/load_palette.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/load/load_template.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/load/load_template_workfile.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/collect_audio.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/collect_current_file.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/collect_farm_render.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/collect_instances.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/collect_palettes.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/collect_scene.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/collect_workfile.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/extract_palette.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/extract_render.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/extract_save_scene.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/extract_template.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/extract_workfile.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/help/validate_audio.xml (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/help/validate_instances.xml (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/help/validate_scene_settings.xml (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/increment_workfile.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/validate_audio.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/validate_instances.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/plugins/publish/validate_scene_settings.py (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/.eslintrc.json (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/.gitattributes (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/.gitignore (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/Install.bat (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/LICENSE (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/README.md (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/build_doc.bat (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/documentation.json (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/install.sh (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/oH_DOM.jpg (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_actions.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_application.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_attribute.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_backdrop.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_color.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_column.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_database.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_dialog.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_drawing.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_element.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_file.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_frame.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_list.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_math.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_metadata.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_misc.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_network.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_node.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeAttributes.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeLink.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_palette.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_path.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferencedoc.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferences.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_scene.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_threading.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_timeline.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_tool.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_toolInstall.ui (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony_install.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/openHarmony_tools.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/package.json (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/reference/Reference_view_currentToolManager().txt (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/tbpackage.json (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/INSTALL (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/README (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_anim_tools.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_basic_backdropPicker.ui (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_rigging_tools.js (100%) rename server_addon/harmony/{harmony => client}/ayon_harmony/version.py (100%) diff --git a/server_addon/harmony/harmony/ayon_harmony/__init__.py b/server_addon/harmony/client/ayon_harmony/__init__.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/__init__.py rename to server_addon/harmony/client/ayon_harmony/__init__.py diff --git a/server_addon/harmony/harmony/ayon_harmony/addon.py b/server_addon/harmony/client/ayon_harmony/addon.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/addon.py rename to server_addon/harmony/client/ayon_harmony/addon.py diff --git a/server_addon/harmony/harmony/ayon_harmony/api/README.md b/server_addon/harmony/client/ayon_harmony/api/README.md similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/api/README.md rename to server_addon/harmony/client/ayon_harmony/api/README.md diff --git a/server_addon/harmony/harmony/ayon_harmony/api/TB_sceneOpened.js b/server_addon/harmony/client/ayon_harmony/api/TB_sceneOpened.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/api/TB_sceneOpened.js rename to server_addon/harmony/client/ayon_harmony/api/TB_sceneOpened.js diff --git a/server_addon/harmony/harmony/ayon_harmony/api/__init__.py b/server_addon/harmony/client/ayon_harmony/api/__init__.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/api/__init__.py rename to server_addon/harmony/client/ayon_harmony/api/__init__.py diff --git a/server_addon/harmony/harmony/ayon_harmony/api/js/.eslintrc.json b/server_addon/harmony/client/ayon_harmony/api/js/.eslintrc.json similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/api/js/.eslintrc.json rename to server_addon/harmony/client/ayon_harmony/api/js/.eslintrc.json diff --git a/server_addon/harmony/harmony/ayon_harmony/api/js/AvalonHarmony.js b/server_addon/harmony/client/ayon_harmony/api/js/AvalonHarmony.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/api/js/AvalonHarmony.js rename to server_addon/harmony/client/ayon_harmony/api/js/AvalonHarmony.js diff --git a/server_addon/harmony/harmony/ayon_harmony/api/js/package.json b/server_addon/harmony/client/ayon_harmony/api/js/package.json similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/api/js/package.json rename to server_addon/harmony/client/ayon_harmony/api/js/package.json diff --git a/server_addon/harmony/harmony/ayon_harmony/api/launch_script.py b/server_addon/harmony/client/ayon_harmony/api/launch_script.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/api/launch_script.py rename to server_addon/harmony/client/ayon_harmony/api/launch_script.py diff --git a/server_addon/harmony/harmony/ayon_harmony/api/lib.py b/server_addon/harmony/client/ayon_harmony/api/lib.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/api/lib.py rename to server_addon/harmony/client/ayon_harmony/api/lib.py diff --git a/server_addon/harmony/harmony/ayon_harmony/api/pipeline.py b/server_addon/harmony/client/ayon_harmony/api/pipeline.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/api/pipeline.py rename to server_addon/harmony/client/ayon_harmony/api/pipeline.py diff --git a/server_addon/harmony/harmony/ayon_harmony/api/plugin.py b/server_addon/harmony/client/ayon_harmony/api/plugin.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/api/plugin.py rename to server_addon/harmony/client/ayon_harmony/api/plugin.py diff --git a/server_addon/harmony/harmony/ayon_harmony/api/server.py b/server_addon/harmony/client/ayon_harmony/api/server.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/api/server.py rename to server_addon/harmony/client/ayon_harmony/api/server.py diff --git a/server_addon/harmony/harmony/ayon_harmony/api/temp.zip b/server_addon/harmony/client/ayon_harmony/api/temp.zip similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/api/temp.zip rename to server_addon/harmony/client/ayon_harmony/api/temp.zip diff --git a/server_addon/harmony/harmony/ayon_harmony/api/workio.py b/server_addon/harmony/client/ayon_harmony/api/workio.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/api/workio.py rename to server_addon/harmony/client/ayon_harmony/api/workio.py diff --git a/server_addon/harmony/harmony/ayon_harmony/hooks/pre_launch_args.py b/server_addon/harmony/client/ayon_harmony/hooks/pre_launch_args.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/hooks/pre_launch_args.py rename to server_addon/harmony/client/ayon_harmony/hooks/pre_launch_args.py diff --git a/server_addon/harmony/harmony/ayon_harmony/js/.eslintrc.json b/server_addon/harmony/client/ayon_harmony/js/.eslintrc.json similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/js/.eslintrc.json rename to server_addon/harmony/client/ayon_harmony/js/.eslintrc.json diff --git a/server_addon/harmony/harmony/ayon_harmony/js/PypeHarmony.js b/server_addon/harmony/client/ayon_harmony/js/PypeHarmony.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/js/PypeHarmony.js rename to server_addon/harmony/client/ayon_harmony/js/PypeHarmony.js diff --git a/server_addon/harmony/harmony/ayon_harmony/js/README.md b/server_addon/harmony/client/ayon_harmony/js/README.md similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/js/README.md rename to server_addon/harmony/client/ayon_harmony/js/README.md diff --git a/server_addon/harmony/harmony/ayon_harmony/js/creators/CreateRender.js b/server_addon/harmony/client/ayon_harmony/js/creators/CreateRender.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/js/creators/CreateRender.js rename to server_addon/harmony/client/ayon_harmony/js/creators/CreateRender.js diff --git a/server_addon/harmony/harmony/ayon_harmony/js/loaders/ImageSequenceLoader.js b/server_addon/harmony/client/ayon_harmony/js/loaders/ImageSequenceLoader.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/js/loaders/ImageSequenceLoader.js rename to server_addon/harmony/client/ayon_harmony/js/loaders/ImageSequenceLoader.js diff --git a/server_addon/harmony/harmony/ayon_harmony/js/loaders/TemplateLoader.js b/server_addon/harmony/client/ayon_harmony/js/loaders/TemplateLoader.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/js/loaders/TemplateLoader.js rename to server_addon/harmony/client/ayon_harmony/js/loaders/TemplateLoader.js diff --git a/server_addon/harmony/harmony/ayon_harmony/js/package.json b/server_addon/harmony/client/ayon_harmony/js/package.json similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/js/package.json rename to server_addon/harmony/client/ayon_harmony/js/package.json diff --git a/server_addon/harmony/harmony/ayon_harmony/js/publish/CollectCurrentFile.js b/server_addon/harmony/client/ayon_harmony/js/publish/CollectCurrentFile.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/js/publish/CollectCurrentFile.js rename to server_addon/harmony/client/ayon_harmony/js/publish/CollectCurrentFile.js diff --git a/server_addon/harmony/harmony/ayon_harmony/js/publish/CollectFarmRender.js b/server_addon/harmony/client/ayon_harmony/js/publish/CollectFarmRender.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/js/publish/CollectFarmRender.js rename to server_addon/harmony/client/ayon_harmony/js/publish/CollectFarmRender.js diff --git a/server_addon/harmony/harmony/ayon_harmony/js/publish/CollectPalettes.js b/server_addon/harmony/client/ayon_harmony/js/publish/CollectPalettes.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/js/publish/CollectPalettes.js rename to server_addon/harmony/client/ayon_harmony/js/publish/CollectPalettes.js diff --git a/server_addon/harmony/harmony/ayon_harmony/js/publish/ExtractPalette.js b/server_addon/harmony/client/ayon_harmony/js/publish/ExtractPalette.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/js/publish/ExtractPalette.js rename to server_addon/harmony/client/ayon_harmony/js/publish/ExtractPalette.js diff --git a/server_addon/harmony/harmony/ayon_harmony/js/publish/ExtractTemplate.js b/server_addon/harmony/client/ayon_harmony/js/publish/ExtractTemplate.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/js/publish/ExtractTemplate.js rename to server_addon/harmony/client/ayon_harmony/js/publish/ExtractTemplate.js diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/__init__.py b/server_addon/harmony/client/ayon_harmony/plugins/__init__.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/__init__.py rename to server_addon/harmony/client/ayon_harmony/plugins/__init__.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_farm_render.py b/server_addon/harmony/client/ayon_harmony/plugins/create/create_farm_render.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/create/create_farm_render.py rename to server_addon/harmony/client/ayon_harmony/plugins/create/create_farm_render.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_render.py b/server_addon/harmony/client/ayon_harmony/plugins/create/create_render.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/create/create_render.py rename to server_addon/harmony/client/ayon_harmony/plugins/create/create_render.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/create/create_template.py b/server_addon/harmony/client/ayon_harmony/plugins/create/create_template.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/create/create_template.py rename to server_addon/harmony/client/ayon_harmony/plugins/create/create_template.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_audio.py b/server_addon/harmony/client/ayon_harmony/plugins/load/load_audio.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/load/load_audio.py rename to server_addon/harmony/client/ayon_harmony/plugins/load/load_audio.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_background.py b/server_addon/harmony/client/ayon_harmony/plugins/load/load_background.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/load/load_background.py rename to server_addon/harmony/client/ayon_harmony/plugins/load/load_background.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_imagesequence.py b/server_addon/harmony/client/ayon_harmony/plugins/load/load_imagesequence.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/load/load_imagesequence.py rename to server_addon/harmony/client/ayon_harmony/plugins/load/load_imagesequence.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_palette.py b/server_addon/harmony/client/ayon_harmony/plugins/load/load_palette.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/load/load_palette.py rename to server_addon/harmony/client/ayon_harmony/plugins/load/load_palette.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_template.py b/server_addon/harmony/client/ayon_harmony/plugins/load/load_template.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/load/load_template.py rename to server_addon/harmony/client/ayon_harmony/plugins/load/load_template.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/load/load_template_workfile.py b/server_addon/harmony/client/ayon_harmony/plugins/load/load_template_workfile.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/load/load_template_workfile.py rename to server_addon/harmony/client/ayon_harmony/plugins/load/load_template_workfile.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_audio.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/collect_audio.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_audio.py rename to server_addon/harmony/client/ayon_harmony/plugins/publish/collect_audio.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_current_file.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/collect_current_file.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_current_file.py rename to server_addon/harmony/client/ayon_harmony/plugins/publish/collect_current_file.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_farm_render.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/collect_farm_render.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_farm_render.py rename to server_addon/harmony/client/ayon_harmony/plugins/publish/collect_farm_render.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_instances.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/collect_instances.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_instances.py rename to server_addon/harmony/client/ayon_harmony/plugins/publish/collect_instances.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_palettes.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/collect_palettes.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_palettes.py rename to server_addon/harmony/client/ayon_harmony/plugins/publish/collect_palettes.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_scene.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/collect_scene.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_scene.py rename to server_addon/harmony/client/ayon_harmony/plugins/publish/collect_scene.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_workfile.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/collect_workfile.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/collect_workfile.py rename to server_addon/harmony/client/ayon_harmony/plugins/publish/collect_workfile.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_palette.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/extract_palette.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_palette.py rename to server_addon/harmony/client/ayon_harmony/plugins/publish/extract_palette.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_render.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/extract_render.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_render.py rename to server_addon/harmony/client/ayon_harmony/plugins/publish/extract_render.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_save_scene.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/extract_save_scene.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_save_scene.py rename to server_addon/harmony/client/ayon_harmony/plugins/publish/extract_save_scene.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_template.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/extract_template.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_template.py rename to server_addon/harmony/client/ayon_harmony/plugins/publish/extract_template.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_workfile.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/extract_workfile.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/extract_workfile.py rename to server_addon/harmony/client/ayon_harmony/plugins/publish/extract_workfile.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/help/validate_audio.xml b/server_addon/harmony/client/ayon_harmony/plugins/publish/help/validate_audio.xml similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/help/validate_audio.xml rename to server_addon/harmony/client/ayon_harmony/plugins/publish/help/validate_audio.xml diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/help/validate_instances.xml b/server_addon/harmony/client/ayon_harmony/plugins/publish/help/validate_instances.xml similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/help/validate_instances.xml rename to server_addon/harmony/client/ayon_harmony/plugins/publish/help/validate_instances.xml diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/help/validate_scene_settings.xml b/server_addon/harmony/client/ayon_harmony/plugins/publish/help/validate_scene_settings.xml similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/help/validate_scene_settings.xml rename to server_addon/harmony/client/ayon_harmony/plugins/publish/help/validate_scene_settings.xml diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/increment_workfile.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/increment_workfile.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/increment_workfile.py rename to server_addon/harmony/client/ayon_harmony/plugins/publish/increment_workfile.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_audio.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/validate_audio.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_audio.py rename to server_addon/harmony/client/ayon_harmony/plugins/publish/validate_audio.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_instances.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/validate_instances.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_instances.py rename to server_addon/harmony/client/ayon_harmony/plugins/publish/validate_instances.py diff --git a/server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_scene_settings.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/validate_scene_settings.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/plugins/publish/validate_scene_settings.py rename to server_addon/harmony/client/ayon_harmony/plugins/publish/validate_scene_settings.py diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/.eslintrc.json b/server_addon/harmony/client/ayon_harmony/vendor/.eslintrc.json similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/.eslintrc.json rename to server_addon/harmony/client/ayon_harmony/vendor/.eslintrc.json diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/.gitattributes b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/.gitattributes similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/.gitattributes rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/.gitattributes diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/.gitignore b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/.gitignore similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/.gitignore rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/.gitignore diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/Install.bat b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/Install.bat similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/Install.bat rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/Install.bat diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/LICENSE b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/LICENSE similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/LICENSE rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/LICENSE diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/README.md b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/README.md similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/README.md rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/README.md diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/build_doc.bat b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/build_doc.bat similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/build_doc.bat rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/build_doc.bat diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/documentation.json b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/documentation.json similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/documentation.json rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/documentation.json diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/install.sh b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/install.sh similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/install.sh rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/install.sh diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/oH_DOM.jpg b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/oH_DOM.jpg similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/oH_DOM.jpg rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/oH_DOM.jpg diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_actions.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_actions.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_actions.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_actions.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_application.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_application.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_application.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_application.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_attribute.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_attribute.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_attribute.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_attribute.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_backdrop.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_backdrop.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_backdrop.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_backdrop.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_color.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_color.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_color.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_color.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_column.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_column.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_column.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_column.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_database.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_database.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_database.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_database.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_dialog.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_dialog.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_dialog.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_dialog.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_drawing.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_drawing.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_drawing.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_drawing.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_element.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_element.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_element.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_element.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_file.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_file.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_file.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_file.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_frame.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_frame.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_frame.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_frame.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_list.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_list.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_list.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_list.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_math.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_math.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_math.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_math.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_metadata.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_metadata.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_metadata.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_metadata.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_misc.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_misc.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_misc.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_misc.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_network.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_network.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_network.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_network.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_node.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_node.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_node.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_node.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeAttributes.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeAttributes.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeAttributes.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeAttributes.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeLink.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeLink.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeLink.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_nodeLink.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_palette.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_palette.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_palette.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_palette.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_path.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_path.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_path.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_path.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferencedoc.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferencedoc.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferencedoc.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferencedoc.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferences.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferences.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferences.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_preferences.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_scene.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_scene.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_scene.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_scene.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_threading.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_threading.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_threading.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_threading.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_timeline.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_timeline.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_timeline.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_timeline.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_tool.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_tool.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_tool.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_tool.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_toolInstall.ui b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_toolInstall.ui similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_toolInstall.ui rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony/openHarmony_toolInstall.ui diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony_install.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony_install.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony_install.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony_install.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony_tools.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony_tools.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/openHarmony_tools.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/openHarmony_tools.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/package.json b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/package.json similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/package.json rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/package.json diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/reference/Reference_view_currentToolManager().txt b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/reference/Reference_view_currentToolManager().txt similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/reference/Reference_view_currentToolManager().txt rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/reference/Reference_view_currentToolManager().txt diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tbpackage.json b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/tbpackage.json similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tbpackage.json rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/tbpackage.json diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/INSTALL b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/INSTALL similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/INSTALL rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/INSTALL diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/README b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/README similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/README rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/README diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_anim_tools.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_anim_tools.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_anim_tools.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_anim_tools.js diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_basic_backdropPicker.ui b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_basic_backdropPicker.ui similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_basic_backdropPicker.ui rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_basic_backdropPicker.ui diff --git a/server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_rigging_tools.js b/server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_rigging_tools.js similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_rigging_tools.js rename to server_addon/harmony/client/ayon_harmony/vendor/OpenHarmony/tools/OpenHarmony_basic/openHarmony_rigging_tools.js diff --git a/server_addon/harmony/harmony/ayon_harmony/version.py b/server_addon/harmony/client/ayon_harmony/version.py similarity index 100% rename from server_addon/harmony/harmony/ayon_harmony/version.py rename to server_addon/harmony/client/ayon_harmony/version.py From 3f3ab62b0a53cba82b19d9f0e3aa96c877e2d354 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 30 May 2024 13:03:45 +0200 Subject: [PATCH 23/88] add settings category --- .../client/ayon_harmony/plugins/publish/collect_palettes.py | 2 ++ .../client/ayon_harmony/plugins/publish/validate_audio.py | 1 + .../ayon_harmony/plugins/publish/validate_scene_settings.py | 1 + 3 files changed, 4 insertions(+) diff --git a/server_addon/harmony/client/ayon_harmony/plugins/publish/collect_palettes.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/collect_palettes.py index 818d9afc8a..fb40196510 100644 --- a/server_addon/harmony/client/ayon_harmony/plugins/publish/collect_palettes.py +++ b/server_addon/harmony/client/ayon_harmony/plugins/publish/collect_palettes.py @@ -14,6 +14,8 @@ class CollectPalettes(pyblish.api.ContextPlugin): order = pyblish.api.CollectorOrder + 0.003 hosts = ["harmony"] + settings_category = "harmony" + # list of regexes for task names where collecting should happen allowed_tasks = [] diff --git a/server_addon/harmony/client/ayon_harmony/plugins/publish/validate_audio.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/validate_audio.py index f2c1cfc9b4..6caa12c1e1 100644 --- a/server_addon/harmony/client/ayon_harmony/plugins/publish/validate_audio.py +++ b/server_addon/harmony/client/ayon_harmony/plugins/publish/validate_audio.py @@ -18,6 +18,7 @@ class ValidateAudio(pyblish.api.InstancePlugin): label = "Validate Audio" families = ["render"] hosts = ["harmony"] + settings_category = "harmony" optional = True def process(self, instance): diff --git a/server_addon/harmony/client/ayon_harmony/plugins/publish/validate_scene_settings.py b/server_addon/harmony/client/ayon_harmony/plugins/publish/validate_scene_settings.py index 3a4847d9fe..082eb4f1dd 100644 --- a/server_addon/harmony/client/ayon_harmony/plugins/publish/validate_scene_settings.py +++ b/server_addon/harmony/client/ayon_harmony/plugins/publish/validate_scene_settings.py @@ -42,6 +42,7 @@ class ValidateSceneSettings(pyblish.api.InstancePlugin): families = ["workfile"] hosts = ["harmony"] actions = [ValidateSceneSettingsRepair] + settings_category = "harmony" optional = True # skip frameEnd check if asset contains any of: From 770658dd3a32dcc66a6353e1b15efca2e7c2689c Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 30 May 2024 13:37:22 +0200 Subject: [PATCH 24/88] added harmony milestone --- client/ayon_core/addon/base.py | 1 + 1 file changed, 1 insertion(+) diff --git a/client/ayon_core/addon/base.py b/client/ayon_core/addon/base.py index d60da05f44..203d135faa 100644 --- a/client/ayon_core/addon/base.py +++ b/client/ayon_core/addon/base.py @@ -54,6 +54,7 @@ MOVED_ADDON_MILESTONE_VERSIONS = { "celaction": VersionInfo(0, 2, 0), "clockify": VersionInfo(0, 2, 0), "flame": VersionInfo(0, 2, 0), + "harmony": VersionInfo(0, 2, 0), "traypublisher": VersionInfo(0, 2, 0), "tvpaint": VersionInfo(0, 2, 0), "nuke": VersionInfo(0, 2, 0), From 6c9948704d89e0d6c9b6a6a688df19002f5a98b0 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Thu, 30 May 2024 17:42:23 +0200 Subject: [PATCH 25/88] AY-5647 - use On/off toggle for RoaylRender --- client/ayon_core/modules/royalrender/addon.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/client/ayon_core/modules/royalrender/addon.py b/client/ayon_core/modules/royalrender/addon.py index e69cf9feec..8365f41bc4 100644 --- a/client/ayon_core/modules/royalrender/addon.py +++ b/client/ayon_core/modules/royalrender/addon.py @@ -20,7 +20,10 @@ class RoyalRenderAddon(AYONAddon, IPluginPaths): def initialize(self, studio_settings): # type: (dict) -> None - self.enabled = self.name in studio_settings + self.enabled = False + addon_settings = studio_settings.get(self.name) + if addon_settings: + self.enabled = addon_settings["enabled"] @staticmethod def get_plugin_paths(): From 18139a8a03364f584606429b4f713a602cda16c6 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Thu, 30 May 2024 17:42:49 +0200 Subject: [PATCH 26/88] AY-5647 - removed commented code --- client/ayon_core/modules/royalrender/addon.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/client/ayon_core/modules/royalrender/addon.py b/client/ayon_core/modules/royalrender/addon.py index 8365f41bc4..f7b035b1cd 100644 --- a/client/ayon_core/modules/royalrender/addon.py +++ b/client/ayon_core/modules/royalrender/addon.py @@ -9,15 +9,6 @@ class RoyalRenderAddon(AYONAddon, IPluginPaths): """Class providing basic Royal Render implementation logic.""" name = "royalrender" - # _rr_api = None - # @property - # def rr_api(self): - # if not self._rr_api: - # # import royal render modules - # from .api import Api - # self._rr_api = Api(self.settings) - # return self._rr_api - def initialize(self, studio_settings): # type: (dict) -> None self.enabled = False From ed638a47fe2e8549e9fa4296468db36d04f5f0cf Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Fri, 31 May 2024 16:41:57 +0200 Subject: [PATCH 27/88] moved aftereffects next to server codebase --- .../client/ayon_aftereffects}/__init__.py | 0 .../aftereffects/client/ayon_aftereffects}/addon.py | 0 .../client/ayon_aftereffects}/api/README.md | 0 .../client/ayon_aftereffects}/api/__init__.py | 0 .../client/ayon_aftereffects}/api/extension.zxp | Bin .../client/ayon_aftereffects}/api/extension/.debug | 0 .../api/extension/CSXS/manifest.xml | 0 .../api/extension/css/boilerplate.css | 0 .../ayon_aftereffects}/api/extension/css/styles.css | 0 .../api/extension/css/topcoat-desktop-dark.min.css | 0 .../api/extension/icons/ayon_logo.png | Bin .../api/extension/icons/iconDarkNormal.png | Bin .../api/extension/icons/iconDarkRollover.png | Bin .../api/extension/icons/iconDisabled.png | Bin .../api/extension/icons/iconNormal.png | Bin .../api/extension/icons/iconRollover.png | Bin .../ayon_aftereffects}/api/extension/index.html | 0 .../api/extension/js/libs/CSInterface.js | 0 .../api/extension/js/libs/jquery-2.0.2.min.js | 0 .../api/extension/js/libs/json.js | 0 .../api/extension/js/libs/loglevel.min.js | 0 .../api/extension/js/libs/wsrpc.js | 0 .../api/extension/js/libs/wsrpc.min.js | 0 .../ayon_aftereffects}/api/extension/js/main.js | 0 .../api/extension/js/themeManager.js | 0 .../api/extension/jsx/hostscript.jsx | 0 .../client/ayon_aftereffects}/api/launch_logic.py | 0 .../client/ayon_aftereffects}/api/launch_script.py | 0 .../client/ayon_aftereffects}/api/lib.py | 0 .../client/ayon_aftereffects}/api/panel.png | Bin .../client/ayon_aftereffects}/api/panel_failure.png | Bin .../client/ayon_aftereffects}/api/pipeline.py | 0 .../client/ayon_aftereffects}/api/plugin.py | 0 .../api/workfile_template_builder.py | 0 .../client/ayon_aftereffects}/api/ws_stub.py | 0 .../ayon_aftereffects}/hooks/pre_launch_args.py | 0 .../client/ayon_aftereffects}/plugins/__init__.py | 0 .../plugins/create/create_render.py | 0 .../plugins/create/workfile_creator.py | 0 .../plugins/load/load_background.py | 0 .../ayon_aftereffects}/plugins/load/load_file.py | 0 .../plugins/publish/add_publish_highlight.py | 0 .../ayon_aftereffects}/plugins/publish/closeAE.py | 0 .../plugins/publish/collect_audio.py | 0 .../plugins/publish/collect_current_file.py | 0 .../plugins/publish/collect_extension_version.py | 0 .../plugins/publish/collect_render.py | 0 .../plugins/publish/collect_review.py | 0 .../plugins/publish/collect_workfile.py | 0 .../plugins/publish/extract_local_render.py | 0 .../plugins/publish/extract_save_scene.py | 0 .../plugins/publish/help/validate_footage_items.xml | 0 .../publish/help/validate_instance_asset.xml | 0 .../publish/help/validate_scene_settings.xml | 0 .../plugins/publish/increment_workfile.py | 0 .../plugins/publish/remove_publish_highlight.py | 0 .../plugins/publish/validate_footage_items.py | 0 .../plugins/publish/validate_instance_asset.py | 0 .../plugins/publish/validate_scene_settings.py | 0 .../plugins/workfile_build/create_placeholder.py | 0 .../plugins/workfile_build/load_placeholder.py | 0 .../ayon_aftereffects}/resources/template.aep | Bin 62 files changed, 0 insertions(+), 0 deletions(-) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/__init__.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/addon.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/README.md (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/__init__.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension.zxp (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/.debug (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/CSXS/manifest.xml (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/css/boilerplate.css (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/css/styles.css (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/css/topcoat-desktop-dark.min.css (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/icons/ayon_logo.png (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/icons/iconDarkNormal.png (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/icons/iconDarkRollover.png (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/icons/iconDisabled.png (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/icons/iconNormal.png (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/icons/iconRollover.png (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/index.html (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/js/libs/CSInterface.js (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/js/libs/jquery-2.0.2.min.js (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/js/libs/json.js (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/js/libs/loglevel.min.js (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/js/libs/wsrpc.js (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/js/libs/wsrpc.min.js (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/js/main.js (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/js/themeManager.js (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/extension/jsx/hostscript.jsx (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/launch_logic.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/launch_script.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/lib.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/panel.png (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/panel_failure.png (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/pipeline.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/plugin.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/workfile_template_builder.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/api/ws_stub.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/hooks/pre_launch_args.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/__init__.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/create/create_render.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/create/workfile_creator.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/load/load_background.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/load/load_file.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/add_publish_highlight.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/closeAE.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/collect_audio.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/collect_current_file.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/collect_extension_version.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/collect_render.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/collect_review.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/collect_workfile.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/extract_local_render.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/extract_save_scene.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/help/validate_footage_items.xml (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/help/validate_instance_asset.xml (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/help/validate_scene_settings.xml (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/increment_workfile.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/remove_publish_highlight.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/validate_footage_items.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/validate_instance_asset.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/publish/validate_scene_settings.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/workfile_build/create_placeholder.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/plugins/workfile_build/load_placeholder.py (100%) rename {client/ayon_core/hosts/aftereffects => server_addon/aftereffects/client/ayon_aftereffects}/resources/template.aep (100%) diff --git a/client/ayon_core/hosts/aftereffects/__init__.py b/server_addon/aftereffects/client/ayon_aftereffects/__init__.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/__init__.py rename to server_addon/aftereffects/client/ayon_aftereffects/__init__.py diff --git a/client/ayon_core/hosts/aftereffects/addon.py b/server_addon/aftereffects/client/ayon_aftereffects/addon.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/addon.py rename to server_addon/aftereffects/client/ayon_aftereffects/addon.py diff --git a/client/ayon_core/hosts/aftereffects/api/README.md b/server_addon/aftereffects/client/ayon_aftereffects/api/README.md similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/README.md rename to server_addon/aftereffects/client/ayon_aftereffects/api/README.md diff --git a/client/ayon_core/hosts/aftereffects/api/__init__.py b/server_addon/aftereffects/client/ayon_aftereffects/api/__init__.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/__init__.py rename to server_addon/aftereffects/client/ayon_aftereffects/api/__init__.py diff --git a/client/ayon_core/hosts/aftereffects/api/extension.zxp b/server_addon/aftereffects/client/ayon_aftereffects/api/extension.zxp similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension.zxp rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension.zxp diff --git a/client/ayon_core/hosts/aftereffects/api/extension/.debug b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/.debug similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/.debug rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/.debug diff --git a/client/ayon_core/hosts/aftereffects/api/extension/CSXS/manifest.xml b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/CSXS/manifest.xml similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/CSXS/manifest.xml rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/CSXS/manifest.xml diff --git a/client/ayon_core/hosts/aftereffects/api/extension/css/boilerplate.css b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/boilerplate.css similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/css/boilerplate.css rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/boilerplate.css diff --git a/client/ayon_core/hosts/aftereffects/api/extension/css/styles.css b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/styles.css similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/css/styles.css rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/styles.css diff --git a/client/ayon_core/hosts/aftereffects/api/extension/css/topcoat-desktop-dark.min.css b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/topcoat-desktop-dark.min.css similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/css/topcoat-desktop-dark.min.css rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/css/topcoat-desktop-dark.min.css diff --git a/client/ayon_core/hosts/aftereffects/api/extension/icons/ayon_logo.png b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/ayon_logo.png similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/icons/ayon_logo.png rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/ayon_logo.png diff --git a/client/ayon_core/hosts/aftereffects/api/extension/icons/iconDarkNormal.png b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconDarkNormal.png similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/icons/iconDarkNormal.png rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconDarkNormal.png diff --git a/client/ayon_core/hosts/aftereffects/api/extension/icons/iconDarkRollover.png b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconDarkRollover.png similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/icons/iconDarkRollover.png rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconDarkRollover.png diff --git a/client/ayon_core/hosts/aftereffects/api/extension/icons/iconDisabled.png b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconDisabled.png similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/icons/iconDisabled.png rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconDisabled.png diff --git a/client/ayon_core/hosts/aftereffects/api/extension/icons/iconNormal.png b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconNormal.png similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/icons/iconNormal.png rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconNormal.png diff --git a/client/ayon_core/hosts/aftereffects/api/extension/icons/iconRollover.png b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconRollover.png similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/icons/iconRollover.png rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/icons/iconRollover.png diff --git a/client/ayon_core/hosts/aftereffects/api/extension/index.html b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/index.html similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/index.html rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/index.html diff --git a/client/ayon_core/hosts/aftereffects/api/extension/js/libs/CSInterface.js b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/CSInterface.js similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/js/libs/CSInterface.js rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/CSInterface.js diff --git a/client/ayon_core/hosts/aftereffects/api/extension/js/libs/jquery-2.0.2.min.js b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/jquery-2.0.2.min.js similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/js/libs/jquery-2.0.2.min.js rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/jquery-2.0.2.min.js diff --git a/client/ayon_core/hosts/aftereffects/api/extension/js/libs/json.js b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/json.js similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/js/libs/json.js rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/json.js diff --git a/client/ayon_core/hosts/aftereffects/api/extension/js/libs/loglevel.min.js b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/loglevel.min.js similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/js/libs/loglevel.min.js rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/loglevel.min.js diff --git a/client/ayon_core/hosts/aftereffects/api/extension/js/libs/wsrpc.js b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/wsrpc.js similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/js/libs/wsrpc.js rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/wsrpc.js diff --git a/client/ayon_core/hosts/aftereffects/api/extension/js/libs/wsrpc.min.js b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/wsrpc.min.js similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/js/libs/wsrpc.min.js rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/wsrpc.min.js diff --git a/client/ayon_core/hosts/aftereffects/api/extension/js/main.js b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/main.js similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/js/main.js rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/main.js diff --git a/client/ayon_core/hosts/aftereffects/api/extension/js/themeManager.js b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/themeManager.js similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/js/themeManager.js rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/themeManager.js diff --git a/client/ayon_core/hosts/aftereffects/api/extension/jsx/hostscript.jsx b/server_addon/aftereffects/client/ayon_aftereffects/api/extension/jsx/hostscript.jsx similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/extension/jsx/hostscript.jsx rename to server_addon/aftereffects/client/ayon_aftereffects/api/extension/jsx/hostscript.jsx diff --git a/client/ayon_core/hosts/aftereffects/api/launch_logic.py b/server_addon/aftereffects/client/ayon_aftereffects/api/launch_logic.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/launch_logic.py rename to server_addon/aftereffects/client/ayon_aftereffects/api/launch_logic.py diff --git a/client/ayon_core/hosts/aftereffects/api/launch_script.py b/server_addon/aftereffects/client/ayon_aftereffects/api/launch_script.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/launch_script.py rename to server_addon/aftereffects/client/ayon_aftereffects/api/launch_script.py diff --git a/client/ayon_core/hosts/aftereffects/api/lib.py b/server_addon/aftereffects/client/ayon_aftereffects/api/lib.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/lib.py rename to server_addon/aftereffects/client/ayon_aftereffects/api/lib.py diff --git a/client/ayon_core/hosts/aftereffects/api/panel.png b/server_addon/aftereffects/client/ayon_aftereffects/api/panel.png similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/panel.png rename to server_addon/aftereffects/client/ayon_aftereffects/api/panel.png diff --git a/client/ayon_core/hosts/aftereffects/api/panel_failure.png b/server_addon/aftereffects/client/ayon_aftereffects/api/panel_failure.png similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/panel_failure.png rename to server_addon/aftereffects/client/ayon_aftereffects/api/panel_failure.png diff --git a/client/ayon_core/hosts/aftereffects/api/pipeline.py b/server_addon/aftereffects/client/ayon_aftereffects/api/pipeline.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/pipeline.py rename to server_addon/aftereffects/client/ayon_aftereffects/api/pipeline.py diff --git a/client/ayon_core/hosts/aftereffects/api/plugin.py b/server_addon/aftereffects/client/ayon_aftereffects/api/plugin.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/plugin.py rename to server_addon/aftereffects/client/ayon_aftereffects/api/plugin.py diff --git a/client/ayon_core/hosts/aftereffects/api/workfile_template_builder.py b/server_addon/aftereffects/client/ayon_aftereffects/api/workfile_template_builder.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/workfile_template_builder.py rename to server_addon/aftereffects/client/ayon_aftereffects/api/workfile_template_builder.py diff --git a/client/ayon_core/hosts/aftereffects/api/ws_stub.py b/server_addon/aftereffects/client/ayon_aftereffects/api/ws_stub.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/api/ws_stub.py rename to server_addon/aftereffects/client/ayon_aftereffects/api/ws_stub.py diff --git a/client/ayon_core/hosts/aftereffects/hooks/pre_launch_args.py b/server_addon/aftereffects/client/ayon_aftereffects/hooks/pre_launch_args.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/hooks/pre_launch_args.py rename to server_addon/aftereffects/client/ayon_aftereffects/hooks/pre_launch_args.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/__init__.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/__init__.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/__init__.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/__init__.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/create/create_render.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/create/create_render.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/create/create_render.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/create/create_render.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/create/workfile_creator.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/create/workfile_creator.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/create/workfile_creator.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/create/workfile_creator.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/load/load_background.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/load/load_background.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/load/load_background.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/load/load_background.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/load/load_file.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/load/load_file.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/load/load_file.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/load/load_file.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/add_publish_highlight.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/add_publish_highlight.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/add_publish_highlight.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/add_publish_highlight.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/closeAE.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/closeAE.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/closeAE.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/closeAE.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/collect_audio.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_audio.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/collect_audio.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_audio.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/collect_current_file.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_current_file.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/collect_current_file.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_current_file.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/collect_extension_version.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_extension_version.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/collect_extension_version.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_extension_version.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/collect_render.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_render.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/collect_render.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_render.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/collect_review.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_review.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/collect_review.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_review.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/collect_workfile.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_workfile.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/collect_workfile.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_workfile.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/extract_local_render.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/extract_local_render.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/extract_local_render.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/extract_local_render.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/extract_save_scene.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/extract_save_scene.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/extract_save_scene.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/extract_save_scene.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/help/validate_footage_items.xml b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/help/validate_footage_items.xml similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/help/validate_footage_items.xml rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/help/validate_footage_items.xml diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/help/validate_instance_asset.xml b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/help/validate_instance_asset.xml similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/help/validate_instance_asset.xml rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/help/validate_instance_asset.xml diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/help/validate_scene_settings.xml b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/help/validate_scene_settings.xml similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/help/validate_scene_settings.xml rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/help/validate_scene_settings.xml diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/increment_workfile.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/increment_workfile.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/increment_workfile.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/increment_workfile.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/remove_publish_highlight.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/remove_publish_highlight.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/remove_publish_highlight.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/remove_publish_highlight.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/validate_footage_items.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_footage_items.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/validate_footage_items.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_footage_items.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/validate_instance_asset.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_instance_asset.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/validate_instance_asset.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_instance_asset.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/publish/validate_scene_settings.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_scene_settings.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/publish/validate_scene_settings.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_scene_settings.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/workfile_build/create_placeholder.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/workfile_build/create_placeholder.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/workfile_build/create_placeholder.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/workfile_build/create_placeholder.py diff --git a/client/ayon_core/hosts/aftereffects/plugins/workfile_build/load_placeholder.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/workfile_build/load_placeholder.py similarity index 100% rename from client/ayon_core/hosts/aftereffects/plugins/workfile_build/load_placeholder.py rename to server_addon/aftereffects/client/ayon_aftereffects/plugins/workfile_build/load_placeholder.py diff --git a/client/ayon_core/hosts/aftereffects/resources/template.aep b/server_addon/aftereffects/client/ayon_aftereffects/resources/template.aep similarity index 100% rename from client/ayon_core/hosts/aftereffects/resources/template.aep rename to server_addon/aftereffects/client/ayon_aftereffects/resources/template.aep From 4b0540aee89b678ef07375e7228e0ec4070558ab Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Fri, 31 May 2024 16:49:07 +0200 Subject: [PATCH 28/88] fix imports --- .../aftereffects/client/ayon_aftereffects/api/README.md | 2 +- .../client/ayon_aftereffects/api/launch_logic.py | 8 ++++---- .../client/ayon_aftereffects/api/launch_script.py | 2 +- .../aftereffects/client/ayon_aftereffects/api/pipeline.py | 8 ++------ .../ayon_aftereffects/api/workfile_template_builder.py | 2 +- .../client/ayon_aftereffects/hooks/pre_launch_args.py | 2 +- .../ayon_aftereffects/plugins/create/create_render.py | 6 +++--- .../ayon_aftereffects/plugins/create/workfile_creator.py | 4 ++-- .../ayon_aftereffects/plugins/load/load_background.py | 4 ++-- .../client/ayon_aftereffects/plugins/load/load_file.py | 4 ++-- .../plugins/publish/add_publish_highlight.py | 2 +- .../client/ayon_aftereffects/plugins/publish/closeAE.py | 2 +- .../ayon_aftereffects/plugins/publish/collect_audio.py | 2 +- .../plugins/publish/collect_current_file.py | 2 +- .../plugins/publish/collect_extension_version.py | 2 +- .../ayon_aftereffects/plugins/publish/collect_render.py | 2 +- .../plugins/publish/extract_local_render.py | 2 +- .../plugins/publish/extract_save_scene.py | 2 +- .../plugins/publish/increment_workfile.py | 2 +- .../plugins/publish/remove_publish_highlight.py | 2 +- .../plugins/publish/validate_footage_items.py | 2 +- .../plugins/publish/validate_instance_asset.py | 2 +- .../plugins/publish/validate_scene_settings.py | 2 +- .../plugins/workfile_build/create_placeholder.py | 8 +++++--- .../plugins/workfile_build/load_placeholder.py | 6 ++++-- 25 files changed, 41 insertions(+), 41 deletions(-) diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/README.md b/server_addon/aftereffects/client/ayon_aftereffects/api/README.md index 53eb896255..ca7d5b9b13 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/api/README.md +++ b/server_addon/aftereffects/client/ayon_aftereffects/api/README.md @@ -25,7 +25,7 @@ download [Anastasiy’s Extension Manager](https://install.anastasiy.com/) The easiest way to get the server and After Effects launch is with: ``` -python -c ^"import ayon_core.hosts.photoshop;ayon_core.hosts.aftereffects.launch(""c:\Program Files\Adobe\Adobe After Effects 2020\Support Files\AfterFX.exe"")^" +python -c ^"import ayon_core.hosts.photoshop;ayon_aftereffects.launch(""c:\Program Files\Adobe\Adobe After Effects 2020\Support Files\AfterFX.exe"")^" ``` `avalon.aftereffects.launch` launches the application and server, and also closes the server when After Effects exists. diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/launch_logic.py b/server_addon/aftereffects/client/ayon_aftereffects/api/launch_logic.py index da6887668a..fb8702e20b 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/api/launch_logic.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/api/launch_logic.py @@ -35,7 +35,7 @@ def main(*subprocess_args): """Main entrypoint to AE launching, called from pre hook.""" sys.excepthook = safe_excepthook - from ayon_core.hosts.aftereffects.api import AfterEffectsHost + from ayon_aftereffects.api import AfterEffectsHost host = AfterEffectsHost() install_host(host) @@ -355,7 +355,7 @@ class AfterEffectsRoute(WebSocketRoute): return "nothing" def create_placeholder_route(self): - from ayon_core.hosts.aftereffects.api.workfile_template_builder import \ + from ayon_aftereffects.api.workfile_template_builder import \ create_placeholder partial_method = functools.partial(create_placeholder) @@ -365,7 +365,7 @@ class AfterEffectsRoute(WebSocketRoute): return "nothing" def update_placeholder_route(self): - from ayon_core.hosts.aftereffects.api.workfile_template_builder import \ + from ayon_aftereffects.api.workfile_template_builder import \ update_placeholder partial_method = functools.partial(update_placeholder) @@ -375,7 +375,7 @@ class AfterEffectsRoute(WebSocketRoute): return "nothing" def build_workfile_template_route(self): - from ayon_core.hosts.aftereffects.api.workfile_template_builder import \ + from ayon_aftereffects.api.workfile_template_builder import \ build_workfile_template partial_method = functools.partial(build_workfile_template) diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/launch_script.py b/server_addon/aftereffects/client/ayon_aftereffects/api/launch_script.py index 87926c022b..6b7f12ca43 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/api/launch_script.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/api/launch_script.py @@ -8,7 +8,7 @@ workfile or others. import os import sys -from ayon_core.hosts.aftereffects.api.launch_logic import main as host_main +from ayon_aftereffects.api.launch_logic import main as host_main # Get current file to locate start point of sys.argv CURRENT_FILE = os.path.abspath(__file__) diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/pipeline.py b/server_addon/aftereffects/client/ayon_aftereffects/api/pipeline.py index 2239040f09..4bc51a324b 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/api/pipeline.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/api/pipeline.py @@ -14,8 +14,6 @@ from ayon_core.pipeline import ( AYON_INSTANCE_ID, ) from ayon_core.pipeline.load import any_outdated_containers -import ayon_core.hosts.aftereffects - from ayon_core.host import ( HostBase, IWorkfileHost, @@ -23,6 +21,7 @@ from ayon_core.host import ( IPublishHost ) from ayon_core.tools.utils import get_ayon_qt_app +from ayon_aftereffects import AFTEREFFECTS_ADDON_ROOT from .launch_logic import get_stub from .ws_stub import ConnectionNotEstablishedYet @@ -30,10 +29,7 @@ from .ws_stub import ConnectionNotEstablishedYet log = Logger.get_logger(__name__) -HOST_DIR = os.path.dirname( - os.path.abspath(ayon_core.hosts.aftereffects.__file__) -) -PLUGINS_DIR = os.path.join(HOST_DIR, "plugins") +PLUGINS_DIR = os.path.join(AFTEREFFECTS_ADDON_ROOT, "plugins") PUBLISH_PATH = os.path.join(PLUGINS_DIR, "publish") LOAD_PATH = os.path.join(PLUGINS_DIR, "load") CREATE_PATH = os.path.join(PLUGINS_DIR, "create") diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/workfile_template_builder.py b/server_addon/aftereffects/client/ayon_aftereffects/api/workfile_template_builder.py index 99d5bbb938..77fd1059b5 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/api/workfile_template_builder.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/api/workfile_template_builder.py @@ -12,7 +12,7 @@ from ayon_core.pipeline.workfile.workfile_template_builder import ( PlaceholderPlugin, PlaceholderItem ) -from ayon_core.hosts.aftereffects.api import get_stub +from ayon_aftereffects.api import get_stub PLACEHOLDER_SET = "PLACEHOLDERS_SET" PLACEHOLDER_ID = "openpype.placeholder" diff --git a/server_addon/aftereffects/client/ayon_aftereffects/hooks/pre_launch_args.py b/server_addon/aftereffects/client/ayon_aftereffects/hooks/pre_launch_args.py index a37481566e..6a8b434953 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/hooks/pre_launch_args.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/hooks/pre_launch_args.py @@ -7,7 +7,7 @@ from ayon_core.lib import ( is_using_ayon_console, ) from ayon_applications import PreLaunchHook, LaunchTypes -from ayon_core.hosts.aftereffects import get_launch_script_path +from ayon_aftereffects import get_launch_script_path def get_launch_kwargs(kwargs): diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/create/create_render.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/create/create_render.py index 29df34876a..eafe845247 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/create/create_render.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/create/create_render.py @@ -2,16 +2,16 @@ import re from ayon_core import resources from ayon_core.lib import BoolDef, UISeparatorDef -from ayon_core.hosts.aftereffects import api from ayon_core.pipeline import ( Creator, CreatedInstance, CreatorError ) -from ayon_core.hosts.aftereffects.api.pipeline import cache_and_get_instances -from ayon_core.hosts.aftereffects.api.lib import set_settings from ayon_core.lib import prepare_template_data from ayon_core.pipeline.create import PRODUCT_NAME_ALLOWED_SYMBOLS +from ayon_aftereffects import api +from ayon_aftereffects.api.pipeline import cache_and_get_instances +from ayon_aftereffects.api.lib import set_settings class RenderCreator(Creator): diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/create/workfile_creator.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/create/workfile_creator.py index b46e82bf1a..fcf25a3944 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/create/workfile_creator.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/create/workfile_creator.py @@ -1,11 +1,11 @@ import ayon_api -import ayon_core.hosts.aftereffects.api as api from ayon_core.pipeline import ( AutoCreator, CreatedInstance ) -from ayon_core.hosts.aftereffects.api.pipeline import cache_and_get_instances +from ayon_aftereffects import api +from ayon_aftereffects.api.pipeline import cache_and_get_instances class AEWorkfileCreator(AutoCreator): diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/load/load_background.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/load/load_background.py index 5685011d5f..62a4e24482 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/load/load_background.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/load/load_background.py @@ -1,9 +1,9 @@ import re from ayon_core.pipeline import get_representation_path -from ayon_core.hosts.aftereffects import api -from ayon_core.hosts.aftereffects.api.lib import ( +from ayon_aftereffects import api +from ayon_aftereffects.api.lib import ( get_background_layers, get_unique_layer_name, ) diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/load/load_file.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/load/load_file.py index 4b81201722..05749885c9 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/load/load_file.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/load/load_file.py @@ -1,8 +1,8 @@ import re from ayon_core.pipeline import get_representation_path -from ayon_core.hosts.aftereffects import api -from ayon_core.hosts.aftereffects.api.lib import get_unique_layer_name +from ayon_aftereffects import api +from ayon_aftereffects.api.lib import get_unique_layer_name class FileLoader(api.AfterEffectsLoader): diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/add_publish_highlight.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/add_publish_highlight.py index 331d5281ed..b8a36bce44 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/add_publish_highlight.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/add_publish_highlight.py @@ -1,6 +1,6 @@ import pyblish.api -from ayon_core.hosts.aftereffects.api import get_stub +from ayon_aftereffects.api import get_stub class AddPublishHighlight(pyblish.api.InstancePlugin): diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/closeAE.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/closeAE.py index c00591729e..3aa0a01854 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/closeAE.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/closeAE.py @@ -2,7 +2,7 @@ """Close AE after publish. For Webpublishing only.""" import pyblish.api -from ayon_core.hosts.aftereffects.api import get_stub +from ayon_aftereffects.api import get_stub class CloseAE(pyblish.api.ContextPlugin): diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_audio.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_audio.py index c0ef0b71a4..3f7108186c 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_audio.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_audio.py @@ -2,7 +2,7 @@ import os import pyblish.api -from ayon_core.hosts.aftereffects.api import get_stub +from ayon_aftereffects.api import get_stub class CollectAudio(pyblish.api.ContextPlugin): diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_current_file.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_current_file.py index aead872461..6a247d5234 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_current_file.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_current_file.py @@ -2,7 +2,7 @@ import os import pyblish.api -from ayon_core.hosts.aftereffects.api import get_stub +from ayon_aftereffects.api import get_stub class CollectCurrentFile(pyblish.api.ContextPlugin): diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_extension_version.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_extension_version.py index 5b8393a49a..968943abc4 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_extension_version.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_extension_version.py @@ -2,7 +2,7 @@ import os import re import pyblish.api -from ayon_core.hosts.aftereffects.api import ( +from ayon_aftereffects.api import ( get_stub, get_extension_manifest_path ) diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_render.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_render.py index ebd4b8f944..3508512cba 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_render.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_render.py @@ -6,8 +6,8 @@ import pyblish.api from ayon_core.pipeline import publish from ayon_core.pipeline.publish import RenderInstance -from ayon_core.hosts.aftereffects.api import get_stub +from ayon_aftereffects.api import get_stub @attr.s class AERenderInstance(RenderInstance): diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/extract_local_render.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/extract_local_render.py index c5e62a2f54..9f152414e5 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/extract_local_render.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/extract_local_render.py @@ -1,8 +1,8 @@ import os from ayon_core.pipeline import publish -from ayon_core.hosts.aftereffects.api import get_stub +from ayon_aftereffects.api import get_stub class ExtractLocalRender(publish.Extractor): """Render RenderQueue locally.""" diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/extract_save_scene.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/extract_save_scene.py index f0007f96d9..165d1d081a 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/extract_save_scene.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/extract_save_scene.py @@ -1,7 +1,7 @@ import pyblish.api from ayon_core.pipeline import publish -from ayon_core.hosts.aftereffects.api import get_stub +from ayon_aftereffects.api import get_stub class ExtractSaveScene(pyblish.api.ContextPlugin): diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/increment_workfile.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/increment_workfile.py index fc51ff9176..9c1f79c477 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/increment_workfile.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/increment_workfile.py @@ -2,7 +2,7 @@ import pyblish.api from ayon_core.lib import version_up from ayon_core.pipeline.publish import get_errored_plugins_from_context -from ayon_core.hosts.aftereffects.api import get_stub +from ayon_aftereffects.api import get_stub class IncrementWorkfile(pyblish.api.InstancePlugin): diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/remove_publish_highlight.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/remove_publish_highlight.py index 70b6efecb0..3367fa4e94 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/remove_publish_highlight.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/remove_publish_highlight.py @@ -1,5 +1,5 @@ from ayon_core.pipeline import publish -from ayon_core.hosts.aftereffects.api import get_stub +from ayon_aftereffects.api import get_stub class RemovePublishHighlight(publish.Extractor): diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_footage_items.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_footage_items.py index ae20102417..1f23b1ef7c 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_footage_items.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_footage_items.py @@ -9,7 +9,7 @@ import pyblish.api from ayon_core.pipeline import ( PublishXmlValidationError ) -from ayon_core.hosts.aftereffects.api import get_stub +from ayon_aftereffects.api import get_stub class ValidateFootageItems(pyblish.api.InstancePlugin): diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_instance_asset.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_instance_asset.py index c4411bd4c2..01d046938b 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_instance_asset.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_instance_asset.py @@ -5,7 +5,7 @@ from ayon_core.pipeline.publish import ( ValidateContentsOrder, PublishXmlValidationError, ) -from ayon_core.hosts.aftereffects.api import get_stub +from ayon_aftereffects.api import get_stub class ValidateInstanceFolderRepair(pyblish.api.Action): diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_scene_settings.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_scene_settings.py index 6375f5cc61..f5dd3ae1d0 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_scene_settings.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_scene_settings.py @@ -13,7 +13,7 @@ from ayon_core.pipeline import ( PublishXmlValidationError, OptionalPyblishPluginMixin ) -from ayon_core.hosts.aftereffects.api import get_folder_settings +from ayon_aftereffects.api import get_folder_settings class ValidateSceneSettings(OptionalPyblishPluginMixin, diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/workfile_build/create_placeholder.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/workfile_build/create_placeholder.py index c7927f176f..79b820b01a 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/workfile_build/create_placeholder.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/workfile_build/create_placeholder.py @@ -2,9 +2,11 @@ from ayon_core.pipeline.workfile.workfile_template_builder import ( CreatePlaceholderItem, PlaceholderCreateMixin ) -from ayon_core.hosts.aftereffects.api import get_stub -from ayon_core.hosts.aftereffects.api.lib import set_settings -import ayon_core.hosts.aftereffects.api.workfile_template_builder as wtb +from ayon_aftereffects.api import ( + get_stub, + workfile_template_builder as wtb, +) +from ayon_aftereffects.api.lib import set_settings class AEPlaceholderCreatePlugin(wtb.AEPlaceholderPlugin, diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/workfile_build/load_placeholder.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/workfile_build/load_placeholder.py index 7f7e4f49ce..e4f021e5ff 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/workfile_build/load_placeholder.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/workfile_build/load_placeholder.py @@ -2,8 +2,10 @@ from ayon_core.pipeline.workfile.workfile_template_builder import ( LoadPlaceholderItem, PlaceholderLoadMixin ) -from ayon_core.hosts.aftereffects.api import get_stub -import ayon_core.hosts.aftereffects.api.workfile_template_builder as wtb +from ayon_aftereffects.api import ( + get_stub, + workfile_template_builder as wtb, +) class AEPlaceholderLoadPlugin(wtb.AEPlaceholderPlugin, PlaceholderLoadMixin): From bf390e4d1490eb64c723da80fd512cf92fe75b4d Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Fri, 31 May 2024 16:50:24 +0200 Subject: [PATCH 29/88] updated package.py and bumped version --- client/ayon_core/addon/base.py | 1 + .../aftereffects/client/ayon_aftereffects/__init__.py | 3 +++ .../aftereffects/client/ayon_aftereffects/addon.py | 3 +++ .../aftereffects/client/ayon_aftereffects/version.py | 3 +++ server_addon/aftereffects/client/pyproject.toml | 6 ++++++ server_addon/aftereffects/package.py | 9 ++++++++- 6 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 server_addon/aftereffects/client/ayon_aftereffects/version.py create mode 100644 server_addon/aftereffects/client/pyproject.toml diff --git a/client/ayon_core/addon/base.py b/client/ayon_core/addon/base.py index 56d5c46858..63914a283b 100644 --- a/client/ayon_core/addon/base.py +++ b/client/ayon_core/addon/base.py @@ -50,6 +50,7 @@ IGNORED_MODULES_IN_AYON = set() # When addon was moved from ayon-core codebase # - this is used to log the missing addon MOVED_ADDON_MILESTONE_VERSIONS = { + "aftereffects": VersionInfo(0, 2, 0), "applications": VersionInfo(0, 2, 0), "celaction": VersionInfo(0, 2, 0), "clockify": VersionInfo(0, 2, 0), diff --git a/server_addon/aftereffects/client/ayon_aftereffects/__init__.py b/server_addon/aftereffects/client/ayon_aftereffects/__init__.py index 02ab287629..e8de12e42e 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/__init__.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/__init__.py @@ -1,3 +1,4 @@ +from .version import __version__ from .addon import ( AFTEREFFECTS_ADDON_ROOT, AfterEffectsAddon, @@ -6,6 +7,8 @@ from .addon import ( __all__ = ( + "__version__", + "AFTEREFFECTS_ADDON_ROOT", "AfterEffectsAddon", "get_launch_script_path", diff --git a/server_addon/aftereffects/client/ayon_aftereffects/addon.py b/server_addon/aftereffects/client/ayon_aftereffects/addon.py index fc54043c1d..f659eba1cb 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/addon.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/addon.py @@ -2,11 +2,14 @@ import os from ayon_core.addon import AYONAddon, IHostAddon +from .version import __version__ + AFTEREFFECTS_ADDON_ROOT = os.path.dirname(os.path.abspath(__file__)) class AfterEffectsAddon(AYONAddon, IHostAddon): name = "aftereffects" + version = __version__ host_name = "aftereffects" def add_implementation_envs(self, env, _app): diff --git a/server_addon/aftereffects/client/ayon_aftereffects/version.py b/server_addon/aftereffects/client/ayon_aftereffects/version.py new file mode 100644 index 0000000000..8ab87ea78c --- /dev/null +++ b/server_addon/aftereffects/client/ayon_aftereffects/version.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +"""Package declaring AYON addon 'aftereffects' version.""" +__version__ = "0.2.0" diff --git a/server_addon/aftereffects/client/pyproject.toml b/server_addon/aftereffects/client/pyproject.toml new file mode 100644 index 0000000000..dcfaab09e6 --- /dev/null +++ b/server_addon/aftereffects/client/pyproject.toml @@ -0,0 +1,6 @@ +[project] +name="aftereffects" +description="AYON AfterEffects addon." + +[ayon.runtimeDependencies] +wsrpc_aiohttp = "^3.1.1" # websocket server diff --git a/server_addon/aftereffects/package.py b/server_addon/aftereffects/package.py index 7a2f9bc7af..8e4e70fc3b 100644 --- a/server_addon/aftereffects/package.py +++ b/server_addon/aftereffects/package.py @@ -1,3 +1,10 @@ name = "aftereffects" title = "AfterEffects" -version = "0.1.4" +version = "0.2.0" + +client_dir = "ayon_aftereffects" + +ayon_required_addons = { + "core": ">0.3.2", +} +ayon_compatible_addons = {} From 7365f9637260853d4fc33c9996379096a6ab2870 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Fri, 31 May 2024 16:52:35 +0200 Subject: [PATCH 30/88] added webserver to cliend codebase --- .../ayon_aftereffects/api/launch_logic.py | 2 +- .../client/ayon_aftereffects/api/webserver.py | 241 ++++++++++++++++++ .../client/ayon_aftereffects/api/ws_stub.py | 3 +- 3 files changed, 244 insertions(+), 2 deletions(-) create mode 100644 server_addon/aftereffects/client/ayon_aftereffects/api/webserver.py diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/launch_logic.py b/server_addon/aftereffects/client/ayon_aftereffects/api/launch_logic.py index fb8702e20b..3a4fd0e719 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/api/launch_logic.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/api/launch_logic.py @@ -18,8 +18,8 @@ from ayon_core.lib import Logger, is_in_tests from ayon_core.pipeline import install_host from ayon_core.addon import AddonsManager from ayon_core.tools.utils import host_tools, get_ayon_qt_app -from ayon_core.tools.adobe_webserver.app import WebServerTool +from .webserver import WebServerTool from .ws_stub import get_stub from .lib import set_settings diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/webserver.py b/server_addon/aftereffects/client/ayon_aftereffects/api/webserver.py new file mode 100644 index 0000000000..aaecaa4c05 --- /dev/null +++ b/server_addon/aftereffects/client/ayon_aftereffects/api/webserver.py @@ -0,0 +1,241 @@ +"""Webserver for communication with AfterEffects. + +Aiohttp (Asyncio) based websocket server used for communication with host +application. + +This webserver is started in spawned Python process that opens DCC during +its launch, waits for connection from DCC and handles communication going +forward. Server is closed before Python process is killed. +""" +import os +import logging +import urllib +import threading +import asyncio +import socket + +from aiohttp import web + +from wsrpc_aiohttp import WSRPCClient + +from ayon_core.pipeline import get_global_context + +log = logging.getLogger(__name__) + + +class WebServerTool: + """ + Basic POC implementation of asychronic websocket RPC server. + Uses class in external_app_1.py to mimic implementation for single + external application. + 'test_client' folder contains two test implementations of client + """ + _instance = None + + def __init__(self): + WebServerTool._instance = self + + self.client = None + self.handlers = {} + self.on_stop_callbacks = [] + + port = None + host_name = "localhost" + websocket_url = os.getenv("WEBSOCKET_URL") + if websocket_url: + parsed = urllib.parse.urlparse(websocket_url) + port = parsed.port + host_name = parsed.netloc.split(":")[0] + if not port: + port = 8098 # fallback + + self.port = port + self.host_name = host_name + + self.app = web.Application() + + # add route with multiple methods for single "external app" + self.webserver_thread = WebServerThread(self, self.port) + + def add_route(self, *args, **kwargs): + self.app.router.add_route(*args, **kwargs) + + def add_static(self, *args, **kwargs): + self.app.router.add_static(*args, **kwargs) + + def start_server(self): + if self.webserver_thread and not self.webserver_thread.is_alive(): + self.webserver_thread.start() + + def stop_server(self): + self.stop() + + async def send_context_change(self, host): + """ + Calls running webserver to inform about context change + + Used when new PS/AE should be triggered, + but one already running, without + this publish would point to old context. + """ + client = WSRPCClient(os.getenv("WEBSOCKET_URL"), + loop=asyncio.get_event_loop()) + await client.connect() + + context = get_global_context() + project_name = context["project_name"] + folder_path = context["folder_path"] + task_name = context["task_name"] + log.info("Sending context change to {}{}/{}".format( + project_name, folder_path, task_name + )) + + await client.call( + '{}.set_context'.format(host), + project=project_name, + folder=folder_path, + task=task_name + ) + await client.close() + + def port_occupied(self, host_name, port): + """ + Check if 'url' is already occupied. + + This could mean, that app is already running and we are trying open it + again. In that case, use existing running webserver. + Check here is easier than capturing exception from thread. + """ + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as con: + result = con.connect_ex((host_name, port)) == 0 + + if result: + print(f"Port {port} is already in use") + return result + + def call(self, func): + log.debug("websocket.call {}".format(func)) + future = asyncio.run_coroutine_threadsafe( + func, + self.webserver_thread.loop + ) + result = future.result() + return result + + @staticmethod + def get_instance(): + if WebServerTool._instance is None: + WebServerTool() + return WebServerTool._instance + + @property + def is_running(self): + if not self.webserver_thread: + return False + return self.webserver_thread.is_running + + def stop(self): + if not self.is_running: + return + try: + log.debug("Stopping websocket server") + self.webserver_thread.is_running = False + self.webserver_thread.stop() + except Exception: + log.warning( + "Error has happened during Killing websocket server", + exc_info=True + ) + + def thread_stopped(self): + for callback in self.on_stop_callbacks: + callback() + + +class WebServerThread(threading.Thread): + """ Listener for websocket rpc requests. + + It would be probably better to "attach" this to main thread (as for + example Harmony needs to run something on main thread), but currently + it creates separate thread and separate asyncio event loop + """ + def __init__(self, module, port): + super(WebServerThread, self).__init__() + + self.is_running = False + self.port = port + self.module = module + self.loop = None + self.runner = None + self.site = None + self.tasks = [] + + def run(self): + self.is_running = True + + try: + log.info("Starting web server") + self.loop = asyncio.new_event_loop() # create new loop for thread + asyncio.set_event_loop(self.loop) + + self.loop.run_until_complete(self.start_server()) + + websocket_url = "ws://localhost:{}/ws".format(self.port) + + log.debug( + "Running Websocket server on URL: \"{}\"".format(websocket_url) + ) + + asyncio.ensure_future(self.check_shutdown(), loop=self.loop) + self.loop.run_forever() + except Exception: + self.is_running = False + log.warning( + "Websocket Server service has failed", exc_info=True + ) + raise + finally: + self.loop.close() # optional + + self.is_running = False + self.module.thread_stopped() + log.info("Websocket server stopped") + + async def start_server(self): + """ Starts runner and TCPsite """ + self.runner = web.AppRunner(self.module.app) + await self.runner.setup() + self.site = web.TCPSite(self.runner, 'localhost', self.port) + await self.site.start() + + def stop(self): + """Sets is_running flag to false, 'check_shutdown' shuts server down""" + self.is_running = False + + async def check_shutdown(self): + """ Future that is running and checks if server should be running + periodically. + """ + while self.is_running: + while self.tasks: + task = self.tasks.pop(0) + log.debug("waiting for task {}".format(task)) + await task + log.debug("returned value {}".format(task.result)) + + await asyncio.sleep(0.5) + + log.debug("Starting shutdown") + await self.site.stop() + log.debug("Site stopped") + await self.runner.cleanup() + log.debug("Runner stopped") + tasks = [task for task in asyncio.all_tasks() if + task is not asyncio.current_task()] + list(map(lambda task: task.cancel(), tasks)) # cancel all the tasks + results = await asyncio.gather(*tasks, return_exceptions=True) + log.debug(f'Finished awaiting cancelled tasks, results: {results}...') + await self.loop.shutdown_asyncgens() + # to really make sure everything else has time to stop + await asyncio.sleep(0.07) + self.loop.stop() diff --git a/server_addon/aftereffects/client/ayon_aftereffects/api/ws_stub.py b/server_addon/aftereffects/client/ayon_aftereffects/api/ws_stub.py index 869acc3405..60842e0612 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/api/ws_stub.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/api/ws_stub.py @@ -8,7 +8,8 @@ import logging import attr from wsrpc_aiohttp import WebSocketAsync -from ayon_core.tools.adobe_webserver.app import WebServerTool + +from .webserver import WebServerTool class ConnectionNotEstablishedYet(Exception): From 22e828bde5221d5e6a90281bba36556966e5173c Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Fri, 31 May 2024 16:53:02 +0200 Subject: [PATCH 31/88] removed adobe webserver tool --- client/ayon_core/tools/adobe_webserver/app.py | 239 ------------------ .../tools/adobe_webserver/readme.txt | 12 - 2 files changed, 251 deletions(-) delete mode 100644 client/ayon_core/tools/adobe_webserver/app.py delete mode 100644 client/ayon_core/tools/adobe_webserver/readme.txt diff --git a/client/ayon_core/tools/adobe_webserver/app.py b/client/ayon_core/tools/adobe_webserver/app.py deleted file mode 100644 index 26bf638c91..0000000000 --- a/client/ayon_core/tools/adobe_webserver/app.py +++ /dev/null @@ -1,239 +0,0 @@ -"""This Webserver tool is python 3 specific. - -Don't import directly to avalon.tools or implementation of Python 2 hosts -would break. -""" -import os -import logging -import urllib -import threading -import asyncio -import socket - -from aiohttp import web - -from wsrpc_aiohttp import ( - WSRPCClient -) - -from ayon_core.pipeline import get_global_context - -log = logging.getLogger(__name__) - - -class WebServerTool: - """ - Basic POC implementation of asychronic websocket RPC server. - Uses class in external_app_1.py to mimic implementation for single - external application. - 'test_client' folder contains two test implementations of client - """ - _instance = None - - def __init__(self): - WebServerTool._instance = self - - self.client = None - self.handlers = {} - self.on_stop_callbacks = [] - - port = None - host_name = "localhost" - websocket_url = os.getenv("WEBSOCKET_URL") - if websocket_url: - parsed = urllib.parse.urlparse(websocket_url) - port = parsed.port - host_name = parsed.netloc.split(":")[0] - if not port: - port = 8098 # fallback - - self.port = port - self.host_name = host_name - - self.app = web.Application() - - # add route with multiple methods for single "external app" - self.webserver_thread = WebServerThread(self, self.port) - - def add_route(self, *args, **kwargs): - self.app.router.add_route(*args, **kwargs) - - def add_static(self, *args, **kwargs): - self.app.router.add_static(*args, **kwargs) - - def start_server(self): - if self.webserver_thread and not self.webserver_thread.is_alive(): - self.webserver_thread.start() - - def stop_server(self): - self.stop() - - async def send_context_change(self, host): - """ - Calls running webserver to inform about context change - - Used when new PS/AE should be triggered, - but one already running, without - this publish would point to old context. - """ - client = WSRPCClient(os.getenv("WEBSOCKET_URL"), - loop=asyncio.get_event_loop()) - await client.connect() - - context = get_global_context() - project_name = context["project_name"] - folder_path = context["folder_path"] - task_name = context["task_name"] - log.info("Sending context change to {}{}/{}".format( - project_name, folder_path, task_name - )) - - await client.call( - '{}.set_context'.format(host), - project=project_name, - folder=folder_path, - task=task_name - ) - await client.close() - - def port_occupied(self, host_name, port): - """ - Check if 'url' is already occupied. - - This could mean, that app is already running and we are trying open it - again. In that case, use existing running webserver. - Check here is easier than capturing exception from thread. - """ - with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as con: - result = con.connect_ex((host_name, port)) == 0 - - if result: - print(f"Port {port} is already in use") - return result - - def call(self, func): - log.debug("websocket.call {}".format(func)) - future = asyncio.run_coroutine_threadsafe( - func, - self.webserver_thread.loop - ) - result = future.result() - return result - - @staticmethod - def get_instance(): - if WebServerTool._instance is None: - WebServerTool() - return WebServerTool._instance - - @property - def is_running(self): - if not self.webserver_thread: - return False - return self.webserver_thread.is_running - - def stop(self): - if not self.is_running: - return - try: - log.debug("Stopping websocket server") - self.webserver_thread.is_running = False - self.webserver_thread.stop() - except Exception: - log.warning( - "Error has happened during Killing websocket server", - exc_info=True - ) - - def thread_stopped(self): - for callback in self.on_stop_callbacks: - callback() - - -class WebServerThread(threading.Thread): - """ Listener for websocket rpc requests. - - It would be probably better to "attach" this to main thread (as for - example Harmony needs to run something on main thread), but currently - it creates separate thread and separate asyncio event loop - """ - def __init__(self, module, port): - super(WebServerThread, self).__init__() - - self.is_running = False - self.port = port - self.module = module - self.loop = None - self.runner = None - self.site = None - self.tasks = [] - - def run(self): - self.is_running = True - - try: - log.info("Starting web server") - self.loop = asyncio.new_event_loop() # create new loop for thread - asyncio.set_event_loop(self.loop) - - self.loop.run_until_complete(self.start_server()) - - websocket_url = "ws://localhost:{}/ws".format(self.port) - - log.debug( - "Running Websocket server on URL: \"{}\"".format(websocket_url) - ) - - asyncio.ensure_future(self.check_shutdown(), loop=self.loop) - self.loop.run_forever() - except Exception: - self.is_running = False - log.warning( - "Websocket Server service has failed", exc_info=True - ) - raise - finally: - self.loop.close() # optional - - self.is_running = False - self.module.thread_stopped() - log.info("Websocket server stopped") - - async def start_server(self): - """ Starts runner and TCPsite """ - self.runner = web.AppRunner(self.module.app) - await self.runner.setup() - self.site = web.TCPSite(self.runner, 'localhost', self.port) - await self.site.start() - - def stop(self): - """Sets is_running flag to false, 'check_shutdown' shuts server down""" - self.is_running = False - - async def check_shutdown(self): - """ Future that is running and checks if server should be running - periodically. - """ - while self.is_running: - while self.tasks: - task = self.tasks.pop(0) - log.debug("waiting for task {}".format(task)) - await task - log.debug("returned value {}".format(task.result)) - - await asyncio.sleep(0.5) - - log.debug("Starting shutdown") - await self.site.stop() - log.debug("Site stopped") - await self.runner.cleanup() - log.debug("Runner stopped") - tasks = [task for task in asyncio.all_tasks() if - task is not asyncio.current_task()] - list(map(lambda task: task.cancel(), tasks)) # cancel all the tasks - results = await asyncio.gather(*tasks, return_exceptions=True) - log.debug(f'Finished awaiting cancelled tasks, results: {results}...') - await self.loop.shutdown_asyncgens() - # to really make sure everything else has time to stop - await asyncio.sleep(0.07) - self.loop.stop() diff --git a/client/ayon_core/tools/adobe_webserver/readme.txt b/client/ayon_core/tools/adobe_webserver/readme.txt deleted file mode 100644 index d02d390277..0000000000 --- a/client/ayon_core/tools/adobe_webserver/readme.txt +++ /dev/null @@ -1,12 +0,0 @@ -Adobe webserver ---------------- -Aiohttp (Asyncio) based websocket server used for communication with host -applications, currently only for Adobe (but could be used for any non python -DCC which has websocket client). - -This webserver is started in spawned Python process that opens DCC during -its launch, waits for connection from DCC and handles communication going -forward. Server is closed before Python process is killed. - -(Different from `ayon_core/modules/webserver` as that one is running in Tray, -this one is running in spawn Python process.) \ No newline at end of file From 364e439f6c5085359f28d654fe6ba7ac76136d2f Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Fri, 31 May 2024 16:56:12 +0200 Subject: [PATCH 32/88] added settings category --- .../client/ayon_aftereffects/plugins/publish/collect_review.py | 1 + .../ayon_aftereffects/plugins/publish/validate_scene_settings.py | 1 + 2 files changed, 2 insertions(+) diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_review.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_review.py index 667e9cf8b9..8074342cc8 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_review.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/collect_review.py @@ -14,6 +14,7 @@ class CollectReview(pyblish.api.ContextPlugin): label = "Collect Review" hosts = ["aftereffects"] order = pyblish.api.CollectorOrder + 0.1 + settings_category = "aftereffects" def process(self, context): for instance in context: diff --git a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_scene_settings.py b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_scene_settings.py index f5dd3ae1d0..97fdee11ff 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_scene_settings.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/plugins/publish/validate_scene_settings.py @@ -60,6 +60,7 @@ class ValidateSceneSettings(OptionalPyblishPluginMixin, label = "Validate Scene Settings" families = ["render.farm", "render.local", "render"] hosts = ["aftereffects"] + settings_category = "aftereffects" optional = True skip_timelines_check = [".*"] # * >> skip for all From 8f823ac02a6d21c616d5c5f99f8cfe5e09fb3066 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Fri, 31 May 2024 17:06:54 +0200 Subject: [PATCH 33/88] added settings category to loader --- .../client/ayon_harmony/plugins/load/load_imagesequence.py | 1 + 1 file changed, 1 insertion(+) diff --git a/server_addon/harmony/client/ayon_harmony/plugins/load/load_imagesequence.py b/server_addon/harmony/client/ayon_harmony/plugins/load/load_imagesequence.py index a1b890300c..cc588a3442 100644 --- a/server_addon/harmony/client/ayon_harmony/plugins/load/load_imagesequence.py +++ b/server_addon/harmony/client/ayon_harmony/plugins/load/load_imagesequence.py @@ -30,6 +30,7 @@ class ImageSequenceLoader(load.LoaderPlugin): } representations = {"*"} extensions = {"jpeg", "png", "jpg"} + settings_category = "harmony" def load(self, context, name=None, namespace=None, data=None): """Plugin entry point. From fa3edd79c0c6a48d62759c200ab3c467029c7313 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Fri, 31 May 2024 17:25:23 +0200 Subject: [PATCH 34/88] moved blender integration next to server codebase --- .../blender/client/ayon_blender}/__init__.py | 0 .../blender/client/ayon_blender}/addon.py | 0 .../blender/client/ayon_blender}/api/__init__.py | 0 .../blender/client/ayon_blender}/api/action.py | 0 .../blender/client/ayon_blender}/api/capture.py | 0 .../blender/client/ayon_blender}/api/colorspace.py | 0 .../ayon_blender}/api/icons/pyblish-32x32.png | Bin .../blender/client/ayon_blender}/api/lib.py | 0 .../blender/client/ayon_blender}/api/ops.py | 0 .../blender/client/ayon_blender}/api/pipeline.py | 0 .../blender/client/ayon_blender}/api/plugin.py | 0 .../blender/client/ayon_blender}/api/render_lib.py | 0 .../blender/client/ayon_blender}/api/workio.py | 0 .../ayon_blender}/blender_addon/startup/init.py | 0 .../hooks/pre_add_run_python_script_arg.py | 0 .../ayon_blender}/hooks/pre_pyside_install.py | 0 .../ayon_blender}/hooks/pre_windows_console.py | 0 .../ayon_blender}/plugins/create/convert_legacy.py | 0 .../ayon_blender}/plugins/create/create_action.py | 0 .../plugins/create/create_animation.py | 0 .../plugins/create/create_blendScene.py | 0 .../ayon_blender}/plugins/create/create_camera.py | 0 .../ayon_blender}/plugins/create/create_layout.py | 0 .../ayon_blender}/plugins/create/create_model.py | 0 .../plugins/create/create_pointcache.py | 0 .../ayon_blender}/plugins/create/create_render.py | 0 .../ayon_blender}/plugins/create/create_review.py | 0 .../ayon_blender}/plugins/create/create_rig.py | 0 .../ayon_blender}/plugins/create/create_usd.py | 0 .../ayon_blender}/plugins/create/create_workfile.py | 0 .../ayon_blender}/plugins/load/import_workfile.py | 0 .../ayon_blender}/plugins/load/load_action.py | 0 .../ayon_blender}/plugins/load/load_animation.py | 0 .../client/ayon_blender}/plugins/load/load_audio.py | 0 .../client/ayon_blender}/plugins/load/load_blend.py | 0 .../ayon_blender}/plugins/load/load_blendscene.py | 0 .../client/ayon_blender}/plugins/load/load_cache.py | 0 .../ayon_blender}/plugins/load/load_camera_abc.py | 0 .../ayon_blender}/plugins/load/load_camera_fbx.py | 0 .../client/ayon_blender}/plugins/load/load_fbx.py | 0 .../ayon_blender}/plugins/load/load_layout_json.py | 0 .../client/ayon_blender}/plugins/load/load_look.py | 0 .../plugins/publish/collect_current_file.py | 0 .../plugins/publish/collect_instance.py | 0 .../ayon_blender}/plugins/publish/collect_render.py | 0 .../ayon_blender}/plugins/publish/collect_review.py | 0 .../plugins/publish/collect_workfile.py | 0 .../ayon_blender}/plugins/publish/extract_abc.py | 0 .../plugins/publish/extract_abc_animation.py | 0 .../ayon_blender}/plugins/publish/extract_blend.py | 0 .../plugins/publish/extract_blend_animation.py | 0 .../plugins/publish/extract_camera_abc.py | 0 .../plugins/publish/extract_camera_fbx.py | 0 .../ayon_blender}/plugins/publish/extract_fbx.py | 0 .../plugins/publish/extract_fbx_animation.py | 0 .../ayon_blender}/plugins/publish/extract_layout.py | 0 .../plugins/publish/extract_playblast.py | 0 .../plugins/publish/extract_thumbnail.py | 0 .../ayon_blender}/plugins/publish/extract_usd.py | 0 .../plugins/publish/increment_workfile_version.py | 0 .../plugins/publish/integrate_animation.py | 0 .../publish/validate_camera_zero_keyframe.py | 0 .../plugins/publish/validate_deadline_publish.py | 0 .../plugins/publish/validate_file_saved.py | 0 .../plugins/publish/validate_instance_empty.py | 0 .../plugins/publish/validate_mesh_has_uv.py | 0 .../publish/validate_mesh_no_negative_scale.py | 0 .../plugins/publish/validate_model_uv_map1.py | 0 .../plugins/publish/validate_no_colons_in_name.py | 0 .../plugins/publish/validate_object_mode.py | 0 .../publish/validate_render_camera_is_set.py | 0 .../plugins/publish/validate_transform_zero.py | 0 72 files changed, 0 insertions(+), 0 deletions(-) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/__init__.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/addon.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/api/__init__.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/api/action.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/api/capture.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/api/colorspace.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/api/icons/pyblish-32x32.png (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/api/lib.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/api/ops.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/api/pipeline.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/api/plugin.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/api/render_lib.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/api/workio.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/blender_addon/startup/init.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/hooks/pre_add_run_python_script_arg.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/hooks/pre_pyside_install.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/hooks/pre_windows_console.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/create/convert_legacy.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/create/create_action.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/create/create_animation.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/create/create_blendScene.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/create/create_camera.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/create/create_layout.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/create/create_model.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/create/create_pointcache.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/create/create_render.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/create/create_review.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/create/create_rig.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/create/create_usd.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/create/create_workfile.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/load/import_workfile.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/load/load_action.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/load/load_animation.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/load/load_audio.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/load/load_blend.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/load/load_blendscene.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/load/load_cache.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/load/load_camera_abc.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/load/load_camera_fbx.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/load/load_fbx.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/load/load_layout_json.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/load/load_look.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/collect_current_file.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/collect_instance.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/collect_render.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/collect_review.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/collect_workfile.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/extract_abc.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/extract_abc_animation.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/extract_blend.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/extract_blend_animation.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/extract_camera_abc.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/extract_camera_fbx.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/extract_fbx.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/extract_fbx_animation.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/extract_layout.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/extract_playblast.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/extract_thumbnail.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/extract_usd.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/increment_workfile_version.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/integrate_animation.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/validate_camera_zero_keyframe.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/validate_deadline_publish.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/validate_file_saved.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/validate_instance_empty.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/validate_mesh_has_uv.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/validate_mesh_no_negative_scale.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/validate_model_uv_map1.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/validate_no_colons_in_name.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/validate_object_mode.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/validate_render_camera_is_set.py (100%) rename {client/ayon_core/hosts/blender => server_addon/blender/client/ayon_blender}/plugins/publish/validate_transform_zero.py (100%) diff --git a/client/ayon_core/hosts/blender/__init__.py b/server_addon/blender/client/ayon_blender/__init__.py similarity index 100% rename from client/ayon_core/hosts/blender/__init__.py rename to server_addon/blender/client/ayon_blender/__init__.py diff --git a/client/ayon_core/hosts/blender/addon.py b/server_addon/blender/client/ayon_blender/addon.py similarity index 100% rename from client/ayon_core/hosts/blender/addon.py rename to server_addon/blender/client/ayon_blender/addon.py diff --git a/client/ayon_core/hosts/blender/api/__init__.py b/server_addon/blender/client/ayon_blender/api/__init__.py similarity index 100% rename from client/ayon_core/hosts/blender/api/__init__.py rename to server_addon/blender/client/ayon_blender/api/__init__.py diff --git a/client/ayon_core/hosts/blender/api/action.py b/server_addon/blender/client/ayon_blender/api/action.py similarity index 100% rename from client/ayon_core/hosts/blender/api/action.py rename to server_addon/blender/client/ayon_blender/api/action.py diff --git a/client/ayon_core/hosts/blender/api/capture.py b/server_addon/blender/client/ayon_blender/api/capture.py similarity index 100% rename from client/ayon_core/hosts/blender/api/capture.py rename to server_addon/blender/client/ayon_blender/api/capture.py diff --git a/client/ayon_core/hosts/blender/api/colorspace.py b/server_addon/blender/client/ayon_blender/api/colorspace.py similarity index 100% rename from client/ayon_core/hosts/blender/api/colorspace.py rename to server_addon/blender/client/ayon_blender/api/colorspace.py diff --git a/client/ayon_core/hosts/blender/api/icons/pyblish-32x32.png b/server_addon/blender/client/ayon_blender/api/icons/pyblish-32x32.png similarity index 100% rename from client/ayon_core/hosts/blender/api/icons/pyblish-32x32.png rename to server_addon/blender/client/ayon_blender/api/icons/pyblish-32x32.png diff --git a/client/ayon_core/hosts/blender/api/lib.py b/server_addon/blender/client/ayon_blender/api/lib.py similarity index 100% rename from client/ayon_core/hosts/blender/api/lib.py rename to server_addon/blender/client/ayon_blender/api/lib.py diff --git a/client/ayon_core/hosts/blender/api/ops.py b/server_addon/blender/client/ayon_blender/api/ops.py similarity index 100% rename from client/ayon_core/hosts/blender/api/ops.py rename to server_addon/blender/client/ayon_blender/api/ops.py diff --git a/client/ayon_core/hosts/blender/api/pipeline.py b/server_addon/blender/client/ayon_blender/api/pipeline.py similarity index 100% rename from client/ayon_core/hosts/blender/api/pipeline.py rename to server_addon/blender/client/ayon_blender/api/pipeline.py diff --git a/client/ayon_core/hosts/blender/api/plugin.py b/server_addon/blender/client/ayon_blender/api/plugin.py similarity index 100% rename from client/ayon_core/hosts/blender/api/plugin.py rename to server_addon/blender/client/ayon_blender/api/plugin.py diff --git a/client/ayon_core/hosts/blender/api/render_lib.py b/server_addon/blender/client/ayon_blender/api/render_lib.py similarity index 100% rename from client/ayon_core/hosts/blender/api/render_lib.py rename to server_addon/blender/client/ayon_blender/api/render_lib.py diff --git a/client/ayon_core/hosts/blender/api/workio.py b/server_addon/blender/client/ayon_blender/api/workio.py similarity index 100% rename from client/ayon_core/hosts/blender/api/workio.py rename to server_addon/blender/client/ayon_blender/api/workio.py diff --git a/client/ayon_core/hosts/blender/blender_addon/startup/init.py b/server_addon/blender/client/ayon_blender/blender_addon/startup/init.py similarity index 100% rename from client/ayon_core/hosts/blender/blender_addon/startup/init.py rename to server_addon/blender/client/ayon_blender/blender_addon/startup/init.py diff --git a/client/ayon_core/hosts/blender/hooks/pre_add_run_python_script_arg.py b/server_addon/blender/client/ayon_blender/hooks/pre_add_run_python_script_arg.py similarity index 100% rename from client/ayon_core/hosts/blender/hooks/pre_add_run_python_script_arg.py rename to server_addon/blender/client/ayon_blender/hooks/pre_add_run_python_script_arg.py diff --git a/client/ayon_core/hosts/blender/hooks/pre_pyside_install.py b/server_addon/blender/client/ayon_blender/hooks/pre_pyside_install.py similarity index 100% rename from client/ayon_core/hosts/blender/hooks/pre_pyside_install.py rename to server_addon/blender/client/ayon_blender/hooks/pre_pyside_install.py diff --git a/client/ayon_core/hosts/blender/hooks/pre_windows_console.py b/server_addon/blender/client/ayon_blender/hooks/pre_windows_console.py similarity index 100% rename from client/ayon_core/hosts/blender/hooks/pre_windows_console.py rename to server_addon/blender/client/ayon_blender/hooks/pre_windows_console.py diff --git a/client/ayon_core/hosts/blender/plugins/create/convert_legacy.py b/server_addon/blender/client/ayon_blender/plugins/create/convert_legacy.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/create/convert_legacy.py rename to server_addon/blender/client/ayon_blender/plugins/create/convert_legacy.py diff --git a/client/ayon_core/hosts/blender/plugins/create/create_action.py b/server_addon/blender/client/ayon_blender/plugins/create/create_action.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/create/create_action.py rename to server_addon/blender/client/ayon_blender/plugins/create/create_action.py diff --git a/client/ayon_core/hosts/blender/plugins/create/create_animation.py b/server_addon/blender/client/ayon_blender/plugins/create/create_animation.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/create/create_animation.py rename to server_addon/blender/client/ayon_blender/plugins/create/create_animation.py diff --git a/client/ayon_core/hosts/blender/plugins/create/create_blendScene.py b/server_addon/blender/client/ayon_blender/plugins/create/create_blendScene.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/create/create_blendScene.py rename to server_addon/blender/client/ayon_blender/plugins/create/create_blendScene.py diff --git a/client/ayon_core/hosts/blender/plugins/create/create_camera.py b/server_addon/blender/client/ayon_blender/plugins/create/create_camera.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/create/create_camera.py rename to server_addon/blender/client/ayon_blender/plugins/create/create_camera.py diff --git a/client/ayon_core/hosts/blender/plugins/create/create_layout.py b/server_addon/blender/client/ayon_blender/plugins/create/create_layout.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/create/create_layout.py rename to server_addon/blender/client/ayon_blender/plugins/create/create_layout.py diff --git a/client/ayon_core/hosts/blender/plugins/create/create_model.py b/server_addon/blender/client/ayon_blender/plugins/create/create_model.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/create/create_model.py rename to server_addon/blender/client/ayon_blender/plugins/create/create_model.py diff --git a/client/ayon_core/hosts/blender/plugins/create/create_pointcache.py b/server_addon/blender/client/ayon_blender/plugins/create/create_pointcache.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/create/create_pointcache.py rename to server_addon/blender/client/ayon_blender/plugins/create/create_pointcache.py diff --git a/client/ayon_core/hosts/blender/plugins/create/create_render.py b/server_addon/blender/client/ayon_blender/plugins/create/create_render.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/create/create_render.py rename to server_addon/blender/client/ayon_blender/plugins/create/create_render.py diff --git a/client/ayon_core/hosts/blender/plugins/create/create_review.py b/server_addon/blender/client/ayon_blender/plugins/create/create_review.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/create/create_review.py rename to server_addon/blender/client/ayon_blender/plugins/create/create_review.py diff --git a/client/ayon_core/hosts/blender/plugins/create/create_rig.py b/server_addon/blender/client/ayon_blender/plugins/create/create_rig.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/create/create_rig.py rename to server_addon/blender/client/ayon_blender/plugins/create/create_rig.py diff --git a/client/ayon_core/hosts/blender/plugins/create/create_usd.py b/server_addon/blender/client/ayon_blender/plugins/create/create_usd.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/create/create_usd.py rename to server_addon/blender/client/ayon_blender/plugins/create/create_usd.py diff --git a/client/ayon_core/hosts/blender/plugins/create/create_workfile.py b/server_addon/blender/client/ayon_blender/plugins/create/create_workfile.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/create/create_workfile.py rename to server_addon/blender/client/ayon_blender/plugins/create/create_workfile.py diff --git a/client/ayon_core/hosts/blender/plugins/load/import_workfile.py b/server_addon/blender/client/ayon_blender/plugins/load/import_workfile.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/load/import_workfile.py rename to server_addon/blender/client/ayon_blender/plugins/load/import_workfile.py diff --git a/client/ayon_core/hosts/blender/plugins/load/load_action.py b/server_addon/blender/client/ayon_blender/plugins/load/load_action.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/load/load_action.py rename to server_addon/blender/client/ayon_blender/plugins/load/load_action.py diff --git a/client/ayon_core/hosts/blender/plugins/load/load_animation.py b/server_addon/blender/client/ayon_blender/plugins/load/load_animation.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/load/load_animation.py rename to server_addon/blender/client/ayon_blender/plugins/load/load_animation.py diff --git a/client/ayon_core/hosts/blender/plugins/load/load_audio.py b/server_addon/blender/client/ayon_blender/plugins/load/load_audio.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/load/load_audio.py rename to server_addon/blender/client/ayon_blender/plugins/load/load_audio.py diff --git a/client/ayon_core/hosts/blender/plugins/load/load_blend.py b/server_addon/blender/client/ayon_blender/plugins/load/load_blend.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/load/load_blend.py rename to server_addon/blender/client/ayon_blender/plugins/load/load_blend.py diff --git a/client/ayon_core/hosts/blender/plugins/load/load_blendscene.py b/server_addon/blender/client/ayon_blender/plugins/load/load_blendscene.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/load/load_blendscene.py rename to server_addon/blender/client/ayon_blender/plugins/load/load_blendscene.py diff --git a/client/ayon_core/hosts/blender/plugins/load/load_cache.py b/server_addon/blender/client/ayon_blender/plugins/load/load_cache.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/load/load_cache.py rename to server_addon/blender/client/ayon_blender/plugins/load/load_cache.py diff --git a/client/ayon_core/hosts/blender/plugins/load/load_camera_abc.py b/server_addon/blender/client/ayon_blender/plugins/load/load_camera_abc.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/load/load_camera_abc.py rename to server_addon/blender/client/ayon_blender/plugins/load/load_camera_abc.py diff --git a/client/ayon_core/hosts/blender/plugins/load/load_camera_fbx.py b/server_addon/blender/client/ayon_blender/plugins/load/load_camera_fbx.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/load/load_camera_fbx.py rename to server_addon/blender/client/ayon_blender/plugins/load/load_camera_fbx.py diff --git a/client/ayon_core/hosts/blender/plugins/load/load_fbx.py b/server_addon/blender/client/ayon_blender/plugins/load/load_fbx.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/load/load_fbx.py rename to server_addon/blender/client/ayon_blender/plugins/load/load_fbx.py diff --git a/client/ayon_core/hosts/blender/plugins/load/load_layout_json.py b/server_addon/blender/client/ayon_blender/plugins/load/load_layout_json.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/load/load_layout_json.py rename to server_addon/blender/client/ayon_blender/plugins/load/load_layout_json.py diff --git a/client/ayon_core/hosts/blender/plugins/load/load_look.py b/server_addon/blender/client/ayon_blender/plugins/load/load_look.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/load/load_look.py rename to server_addon/blender/client/ayon_blender/plugins/load/load_look.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/collect_current_file.py b/server_addon/blender/client/ayon_blender/plugins/publish/collect_current_file.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/collect_current_file.py rename to server_addon/blender/client/ayon_blender/plugins/publish/collect_current_file.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/collect_instance.py b/server_addon/blender/client/ayon_blender/plugins/publish/collect_instance.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/collect_instance.py rename to server_addon/blender/client/ayon_blender/plugins/publish/collect_instance.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/collect_render.py b/server_addon/blender/client/ayon_blender/plugins/publish/collect_render.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/collect_render.py rename to server_addon/blender/client/ayon_blender/plugins/publish/collect_render.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/collect_review.py b/server_addon/blender/client/ayon_blender/plugins/publish/collect_review.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/collect_review.py rename to server_addon/blender/client/ayon_blender/plugins/publish/collect_review.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/collect_workfile.py b/server_addon/blender/client/ayon_blender/plugins/publish/collect_workfile.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/collect_workfile.py rename to server_addon/blender/client/ayon_blender/plugins/publish/collect_workfile.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/extract_abc.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/extract_abc.py rename to server_addon/blender/client/ayon_blender/plugins/publish/extract_abc.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/extract_abc_animation.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc_animation.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/extract_abc_animation.py rename to server_addon/blender/client/ayon_blender/plugins/publish/extract_abc_animation.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/extract_blend.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_blend.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/extract_blend.py rename to server_addon/blender/client/ayon_blender/plugins/publish/extract_blend.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/extract_blend_animation.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_blend_animation.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/extract_blend_animation.py rename to server_addon/blender/client/ayon_blender/plugins/publish/extract_blend_animation.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/extract_camera_abc.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_abc.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/extract_camera_abc.py rename to server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_abc.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/extract_camera_fbx.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_fbx.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/extract_camera_fbx.py rename to server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_fbx.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/extract_fbx.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/extract_fbx.py rename to server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/extract_fbx_animation.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx_animation.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/extract_fbx_animation.py rename to server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx_animation.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/extract_layout.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_layout.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/extract_layout.py rename to server_addon/blender/client/ayon_blender/plugins/publish/extract_layout.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/extract_playblast.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_playblast.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/extract_playblast.py rename to server_addon/blender/client/ayon_blender/plugins/publish/extract_playblast.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/extract_thumbnail.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_thumbnail.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/extract_thumbnail.py rename to server_addon/blender/client/ayon_blender/plugins/publish/extract_thumbnail.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/extract_usd.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_usd.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/extract_usd.py rename to server_addon/blender/client/ayon_blender/plugins/publish/extract_usd.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/increment_workfile_version.py b/server_addon/blender/client/ayon_blender/plugins/publish/increment_workfile_version.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/increment_workfile_version.py rename to server_addon/blender/client/ayon_blender/plugins/publish/increment_workfile_version.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/integrate_animation.py b/server_addon/blender/client/ayon_blender/plugins/publish/integrate_animation.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/integrate_animation.py rename to server_addon/blender/client/ayon_blender/plugins/publish/integrate_animation.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/validate_camera_zero_keyframe.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_camera_zero_keyframe.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/validate_camera_zero_keyframe.py rename to server_addon/blender/client/ayon_blender/plugins/publish/validate_camera_zero_keyframe.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/validate_deadline_publish.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_deadline_publish.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/validate_deadline_publish.py rename to server_addon/blender/client/ayon_blender/plugins/publish/validate_deadline_publish.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/validate_file_saved.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_file_saved.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/validate_file_saved.py rename to server_addon/blender/client/ayon_blender/plugins/publish/validate_file_saved.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/validate_instance_empty.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_instance_empty.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/validate_instance_empty.py rename to server_addon/blender/client/ayon_blender/plugins/publish/validate_instance_empty.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/validate_mesh_has_uv.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_has_uv.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/validate_mesh_has_uv.py rename to server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_has_uv.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/validate_mesh_no_negative_scale.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_no_negative_scale.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/validate_mesh_no_negative_scale.py rename to server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_no_negative_scale.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/validate_model_uv_map1.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_model_uv_map1.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/validate_model_uv_map1.py rename to server_addon/blender/client/ayon_blender/plugins/publish/validate_model_uv_map1.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/validate_no_colons_in_name.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_no_colons_in_name.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/validate_no_colons_in_name.py rename to server_addon/blender/client/ayon_blender/plugins/publish/validate_no_colons_in_name.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/validate_object_mode.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_object_mode.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/validate_object_mode.py rename to server_addon/blender/client/ayon_blender/plugins/publish/validate_object_mode.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/validate_render_camera_is_set.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_render_camera_is_set.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/validate_render_camera_is_set.py rename to server_addon/blender/client/ayon_blender/plugins/publish/validate_render_camera_is_set.py diff --git a/client/ayon_core/hosts/blender/plugins/publish/validate_transform_zero.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_transform_zero.py similarity index 100% rename from client/ayon_core/hosts/blender/plugins/publish/validate_transform_zero.py rename to server_addon/blender/client/ayon_blender/plugins/publish/validate_transform_zero.py From 5ef9b5d17c2ebaa527b635e480a02da7fbe9d1c0 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Fri, 31 May 2024 17:28:03 +0200 Subject: [PATCH 35/88] fix imports --- server_addon/blender/client/ayon_blender/addon.py | 6 +++--- .../blender/client/ayon_blender/api/pipeline.py | 13 ++++++------- .../blender/client/ayon_blender/api/plugin.py | 2 +- .../ayon_blender/blender_addon/startup/init.py | 2 +- .../ayon_blender/plugins/create/convert_legacy.py | 2 +- .../ayon_blender/plugins/create/create_action.py | 2 +- .../ayon_blender/plugins/create/create_animation.py | 2 +- .../plugins/create/create_blendScene.py | 2 +- .../ayon_blender/plugins/create/create_camera.py | 4 ++-- .../ayon_blender/plugins/create/create_layout.py | 2 +- .../ayon_blender/plugins/create/create_model.py | 2 +- .../plugins/create/create_pointcache.py | 2 +- .../ayon_blender/plugins/create/create_render.py | 6 +++--- .../ayon_blender/plugins/create/create_review.py | 2 +- .../ayon_blender/plugins/create/create_rig.py | 2 +- .../ayon_blender/plugins/create/create_usd.py | 2 +- .../ayon_blender/plugins/create/create_workfile.py | 4 ++-- .../ayon_blender/plugins/load/import_workfile.py | 2 +- .../client/ayon_blender/plugins/load/load_action.py | 4 ++-- .../ayon_blender/plugins/load/load_animation.py | 4 ++-- .../client/ayon_blender/plugins/load/load_audio.py | 4 ++-- .../client/ayon_blender/plugins/load/load_blend.py | 6 +++--- .../ayon_blender/plugins/load/load_blendscene.py | 6 +++--- .../client/ayon_blender/plugins/load/load_cache.py | 4 ++-- .../ayon_blender/plugins/load/load_camera_abc.py | 4 ++-- .../ayon_blender/plugins/load/load_camera_fbx.py | 4 ++-- .../client/ayon_blender/plugins/load/load_fbx.py | 4 ++-- .../ayon_blender/plugins/load/load_layout_json.py | 4 ++-- .../client/ayon_blender/plugins/load/load_look.py | 4 ++-- .../plugins/publish/collect_current_file.py | 2 +- .../plugins/publish/collect_instance.py | 2 +- .../ayon_blender/plugins/publish/collect_render.py | 2 +- .../ayon_blender/plugins/publish/extract_abc.py | 2 +- .../plugins/publish/extract_abc_animation.py | 2 +- .../plugins/publish/extract_camera_abc.py | 2 +- .../plugins/publish/extract_camera_fbx.py | 2 +- .../ayon_blender/plugins/publish/extract_fbx.py | 2 +- .../plugins/publish/extract_fbx_animation.py | 4 ++-- .../ayon_blender/plugins/publish/extract_layout.py | 4 ++-- .../plugins/publish/extract_playblast.py | 4 ++-- .../plugins/publish/extract_thumbnail.py | 4 ++-- .../ayon_blender/plugins/publish/extract_usd.py | 2 +- .../plugins/publish/increment_workfile_version.py | 2 +- .../publish/validate_camera_zero_keyframe.py | 4 ++-- .../plugins/publish/validate_deadline_publish.py | 2 +- .../plugins/publish/validate_mesh_has_uv.py | 4 ++-- .../publish/validate_mesh_no_negative_scale.py | 4 ++-- .../plugins/publish/validate_model_uv_map1.py | 4 ++-- .../plugins/publish/validate_no_colons_in_name.py | 4 ++-- .../plugins/publish/validate_object_mode.py | 4 ++-- .../plugins/publish/validate_transform_zero.py | 6 +++--- 51 files changed, 87 insertions(+), 88 deletions(-) diff --git a/server_addon/blender/client/ayon_blender/addon.py b/server_addon/blender/client/ayon_blender/addon.py index 6a4b325365..d9a20e8dab 100644 --- a/server_addon/blender/client/ayon_blender/addon.py +++ b/server_addon/blender/client/ayon_blender/addon.py @@ -1,7 +1,7 @@ import os from ayon_core.addon import AYONAddon, IHostAddon -BLENDER_ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) +BLENDER_ADDON_ROOT = os.path.dirname(os.path.abspath(__file__)) class BlenderAddon(AYONAddon, IHostAddon): @@ -12,7 +12,7 @@ class BlenderAddon(AYONAddon, IHostAddon): """Modify environments to contain all required for implementation.""" # Prepare path to implementation script implementation_user_script_path = os.path.join( - BLENDER_ROOT_DIR, + BLENDER_ADDON_ROOT, "blender_addon" ) @@ -61,7 +61,7 @@ class BlenderAddon(AYONAddon, IHostAddon): if app.host_name != self.host_name: return [] return [ - os.path.join(BLENDER_ROOT_DIR, "hooks") + os.path.join(BLENDER_ADDON_ROOT, "hooks") ] def get_workfile_extensions(self): diff --git a/server_addon/blender/client/ayon_blender/api/pipeline.py b/server_addon/blender/client/ayon_blender/api/pipeline.py index 84e78d0883..d2ff129a48 100644 --- a/server_addon/blender/client/ayon_blender/api/pipeline.py +++ b/server_addon/blender/client/ayon_blender/api/pipeline.py @@ -5,9 +5,6 @@ from typing import Callable, Dict, Iterator, List, Optional import bpy -from . import lib -from . import ops - import pyblish.api import ayon_api @@ -33,8 +30,12 @@ from ayon_core.lib import ( register_event_callback, emit_event ) -import ayon_core.hosts.blender from ayon_core.settings import get_project_settings +from ayon_blender import BLENDER_ADDON_ROOT + +from . import lib +from . import ops + from .workio import ( open_file, save_file, @@ -44,9 +45,7 @@ from .workio import ( work_root, ) - -HOST_DIR = os.path.dirname(os.path.abspath(ayon_core.hosts.blender.__file__)) -PLUGINS_DIR = os.path.join(HOST_DIR, "plugins") +PLUGINS_DIR = os.path.join(BLENDER_ADDON_ROOT, "plugins") PUBLISH_PATH = os.path.join(PLUGINS_DIR, "publish") LOAD_PATH = os.path.join(PLUGINS_DIR, "load") CREATE_PATH = os.path.join(PLUGINS_DIR, "create") diff --git a/server_addon/blender/client/ayon_blender/api/plugin.py b/server_addon/blender/client/ayon_blender/api/plugin.py index e00e127f70..2d82a6857f 100644 --- a/server_addon/blender/client/ayon_blender/api/plugin.py +++ b/server_addon/blender/client/ayon_blender/api/plugin.py @@ -496,7 +496,7 @@ class AssetLoader(LoaderPlugin): # Only containerise if it's not already a collection from a .blend file. # representation = context["representation"]["name"] # if representation != "blend": - # from ayon_core.hosts.blender.api.pipeline import containerise + # from ayon_blender.api.pipeline import containerise # return containerise( # name=name, # namespace=namespace, diff --git a/server_addon/blender/client/ayon_blender/blender_addon/startup/init.py b/server_addon/blender/client/ayon_blender/blender_addon/startup/init.py index 816f30f73f..bd0d52627c 100644 --- a/server_addon/blender/client/ayon_blender/blender_addon/startup/init.py +++ b/server_addon/blender/client/ayon_blender/blender_addon/startup/init.py @@ -1,5 +1,5 @@ from ayon_core.pipeline import install_host -from ayon_core.hosts.blender.api import BlenderHost +from ayon_blender.api import BlenderHost def register(): diff --git a/server_addon/blender/client/ayon_blender/plugins/create/convert_legacy.py b/server_addon/blender/client/ayon_blender/plugins/create/convert_legacy.py index 613574eee0..c51e58dbcb 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/convert_legacy.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/convert_legacy.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- """Converter for legacy Houdini products.""" from ayon_core.pipeline.create.creator_plugins import ProductConvertorPlugin -from ayon_core.hosts.blender.api.lib import imprint +from ayon_blender.api.lib import imprint class BlenderLegacyConvertor(ProductConvertorPlugin): diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_action.py b/server_addon/blender/client/ayon_blender/plugins/create/create_action.py index 070b9843c3..90e351e877 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_action.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_action.py @@ -2,7 +2,7 @@ import bpy -from ayon_core.hosts.blender.api import lib, plugin +from ayon_blender.api import lib, plugin class CreateAction(plugin.BaseCreator): diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_animation.py b/server_addon/blender/client/ayon_blender/plugins/create/create_animation.py index b806a5a7ca..89d836ec0d 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_animation.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_animation.py @@ -1,6 +1,6 @@ """Create an animation asset.""" -from ayon_core.hosts.blender.api import plugin, lib +from ayon_blender.api import plugin, lib class CreateAnimation(plugin.BaseCreator): diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_blendScene.py b/server_addon/blender/client/ayon_blender/plugins/create/create_blendScene.py index 51250bf18b..66ac812b6b 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_blendScene.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_blendScene.py @@ -2,7 +2,7 @@ import bpy -from ayon_core.hosts.blender.api import plugin, lib +from ayon_blender.api import plugin, lib class CreateBlendScene(plugin.BaseCreator): diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_camera.py b/server_addon/blender/client/ayon_blender/plugins/create/create_camera.py index cd82bec236..3780344abc 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_camera.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_camera.py @@ -2,8 +2,8 @@ import bpy -from ayon_core.hosts.blender.api import plugin, lib -from ayon_core.hosts.blender.api.pipeline import AVALON_INSTANCES +from ayon_blender.api import plugin, lib +from ayon_blender.api.pipeline import AVALON_INSTANCES class CreateCamera(plugin.BaseCreator): diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_layout.py b/server_addon/blender/client/ayon_blender/plugins/create/create_layout.py index 289c39fc38..c781b8a683 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_layout.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_layout.py @@ -2,7 +2,7 @@ import bpy -from ayon_core.hosts.blender.api import plugin, lib +from ayon_blender.api import plugin, lib class CreateLayout(plugin.BaseCreator): diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_model.py b/server_addon/blender/client/ayon_blender/plugins/create/create_model.py index 837ba47417..b55fd5e76b 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_model.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_model.py @@ -2,7 +2,7 @@ import bpy -from ayon_core.hosts.blender.api import plugin, lib +from ayon_blender.api import plugin, lib class CreateModel(plugin.BaseCreator): diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_pointcache.py b/server_addon/blender/client/ayon_blender/plugins/create/create_pointcache.py index 0aa2d62c17..4aa088da5c 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_pointcache.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_pointcache.py @@ -1,6 +1,6 @@ """Create a pointcache asset.""" -from ayon_core.hosts.blender.api import plugin, lib +from ayon_blender.api import plugin, lib class CreatePointcache(plugin.BaseCreator): diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_render.py b/server_addon/blender/client/ayon_blender/plugins/create/create_render.py index bf3d1e62b3..6b6ebbce0a 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_render.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_render.py @@ -2,9 +2,9 @@ import bpy from ayon_core.lib import version_up -from ayon_core.hosts.blender.api import plugin -from ayon_core.hosts.blender.api.render_lib import prepare_rendering -from ayon_core.hosts.blender.api.workio import save_file +from ayon_blender.api import plugin +from ayon_blender.api.render_lib import prepare_rendering +from ayon_blender.api.workio import save_file class CreateRenderlayer(plugin.BaseCreator): diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_review.py b/server_addon/blender/client/ayon_blender/plugins/create/create_review.py index b478ec59f4..d28ee596d3 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_review.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_review.py @@ -1,6 +1,6 @@ """Create review.""" -from ayon_core.hosts.blender.api import plugin, lib +from ayon_blender.api import plugin, lib class CreateReview(plugin.BaseCreator): diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_rig.py b/server_addon/blender/client/ayon_blender/plugins/create/create_rig.py index 10b6b20d36..36307c0a34 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_rig.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_rig.py @@ -2,7 +2,7 @@ import bpy -from ayon_core.hosts.blender.api import plugin, lib +from ayon_blender.api import plugin, lib class CreateRig(plugin.BaseCreator): diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_usd.py b/server_addon/blender/client/ayon_blender/plugins/create/create_usd.py index 2c2d0c46c6..a893b6bdaa 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_usd.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_usd.py @@ -1,6 +1,6 @@ """Create a USD Export.""" -from ayon_core.hosts.blender.api import plugin, lib +from ayon_blender.api import plugin, lib class CreateUSD(plugin.BaseCreator): diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_workfile.py b/server_addon/blender/client/ayon_blender/plugins/create/create_workfile.py index 296a03e317..ae4e7d033a 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_workfile.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_workfile.py @@ -2,8 +2,8 @@ import bpy import ayon_api from ayon_core.pipeline import CreatedInstance, AutoCreator -from ayon_core.hosts.blender.api.plugin import BaseCreator -from ayon_core.hosts.blender.api.pipeline import ( +from ayon_blender.api.plugin import BaseCreator +from ayon_blender.api.pipeline import ( AVALON_PROPERTY, AVALON_CONTAINERS ) diff --git a/server_addon/blender/client/ayon_blender/plugins/load/import_workfile.py b/server_addon/blender/client/ayon_blender/plugins/load/import_workfile.py index d2e58c7752..e690980b6a 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/import_workfile.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/import_workfile.py @@ -1,6 +1,6 @@ import bpy -from ayon_core.hosts.blender.api import plugin +from ayon_blender.api import plugin def append_workfile(context, fname, do_import): diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_action.py b/server_addon/blender/client/ayon_blender/plugins/load/load_action.py index 8135df042a..2ea77785fb 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_action.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_action.py @@ -7,8 +7,8 @@ from typing import Dict, List, Optional import bpy from ayon_core.pipeline import get_representation_path -from ayon_core.hosts.blender.api import plugin -from ayon_core.hosts.blender.api.pipeline import ( +from ayon_blender.api import plugin +from ayon_blender.api.pipeline import ( containerise_existing, AVALON_PROPERTY, ) diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_animation.py b/server_addon/blender/client/ayon_blender/plugins/load/load_animation.py index c9f3b33a6f..1367cab175 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_animation.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_animation.py @@ -4,8 +4,8 @@ from typing import Dict, List, Optional import bpy -from ayon_core.hosts.blender.api import plugin -from ayon_core.hosts.blender.api.pipeline import AVALON_PROPERTY +from ayon_blender.api import plugin +from ayon_blender.api.pipeline import AVALON_PROPERTY class BlendAnimationLoader(plugin.AssetLoader): diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_audio.py b/server_addon/blender/client/ayon_blender/plugins/load/load_audio.py index 3d2f412e2b..62f585363c 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_audio.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_audio.py @@ -10,8 +10,8 @@ from ayon_core.pipeline import ( get_representation_path, AVALON_CONTAINER_ID, ) -from ayon_core.hosts.blender.api import plugin -from ayon_core.hosts.blender.api.pipeline import ( +from ayon_blender.api import plugin +from ayon_blender.api.pipeline import ( AVALON_CONTAINERS, AVALON_PROPERTY, ) diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_blend.py b/server_addon/blender/client/ayon_blender/plugins/load/load_blend.py index f9377d615c..026afe6244 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_blend.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_blend.py @@ -9,9 +9,9 @@ from ayon_core.pipeline import ( registered_host ) from ayon_core.pipeline.create import CreateContext -from ayon_core.hosts.blender.api import plugin -from ayon_core.hosts.blender.api.lib import imprint -from ayon_core.hosts.blender.api.pipeline import ( +from ayon_blender.api import plugin +from ayon_blender.api.lib import imprint +from ayon_blender.api.pipeline import ( AVALON_CONTAINERS, AVALON_PROPERTY, ) diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_blendscene.py b/server_addon/blender/client/ayon_blender/plugins/load/load_blendscene.py index f91d828d83..9e0de26a8b 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_blendscene.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_blendscene.py @@ -7,9 +7,9 @@ from ayon_core.pipeline import ( get_representation_path, AVALON_CONTAINER_ID, ) -from ayon_core.hosts.blender.api import plugin -from ayon_core.hosts.blender.api.lib import imprint -from ayon_core.hosts.blender.api.pipeline import ( +from ayon_blender.api import plugin +from ayon_blender.api.lib import imprint +from ayon_blender.api.pipeline import ( AVALON_CONTAINERS, AVALON_PROPERTY, ) diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_cache.py b/server_addon/blender/client/ayon_blender/plugins/load/load_cache.py index 30c847f89d..570f5086f2 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_cache.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_cache.py @@ -11,11 +11,11 @@ from ayon_core.pipeline import ( AVALON_CONTAINER_ID, ) -from ayon_core.hosts.blender.api.pipeline import ( +from ayon_blender.api.pipeline import ( AVALON_CONTAINERS, AVALON_PROPERTY, ) -from ayon_core.hosts.blender.api import plugin, lib +from ayon_blender.api import plugin, lib class CacheModelLoader(plugin.AssetLoader): diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_camera_abc.py b/server_addon/blender/client/ayon_blender/plugins/load/load_camera_abc.py index a49bb40d9a..6df035994b 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_camera_abc.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_camera_abc.py @@ -10,8 +10,8 @@ from ayon_core.pipeline import ( get_representation_path, AVALON_CONTAINER_ID, ) -from ayon_core.hosts.blender.api import plugin, lib -from ayon_core.hosts.blender.api.pipeline import ( +from ayon_blender.api import plugin, lib +from ayon_blender.api.pipeline import ( AVALON_CONTAINERS, AVALON_PROPERTY, ) diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_camera_fbx.py b/server_addon/blender/client/ayon_blender/plugins/load/load_camera_fbx.py index a510d42850..a9a9fcbeb3 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_camera_fbx.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_camera_fbx.py @@ -10,8 +10,8 @@ from ayon_core.pipeline import ( get_representation_path, AVALON_CONTAINER_ID, ) -from ayon_core.hosts.blender.api import plugin, lib -from ayon_core.hosts.blender.api.pipeline import ( +from ayon_blender.api import plugin, lib +from ayon_blender.api.pipeline import ( AVALON_CONTAINERS, AVALON_PROPERTY, ) diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_fbx.py b/server_addon/blender/client/ayon_blender/plugins/load/load_fbx.py index e323d49dea..9959a04ab5 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_fbx.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_fbx.py @@ -10,8 +10,8 @@ from ayon_core.pipeline import ( get_representation_path, AVALON_CONTAINER_ID, ) -from ayon_core.hosts.blender.api import plugin, lib -from ayon_core.hosts.blender.api.pipeline import ( +from ayon_blender.api import plugin, lib +from ayon_blender.api.pipeline import ( AVALON_CONTAINERS, AVALON_PROPERTY, ) diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_layout_json.py b/server_addon/blender/client/ayon_blender/plugins/load/load_layout_json.py index d20eaad9fc..93a8543f2e 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_layout_json.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_layout_json.py @@ -15,12 +15,12 @@ from ayon_core.pipeline import ( loaders_from_representation, AVALON_CONTAINER_ID, ) -from ayon_core.hosts.blender.api.pipeline import ( +from ayon_blender.api.pipeline import ( AVALON_INSTANCES, AVALON_CONTAINERS, AVALON_PROPERTY, ) -from ayon_core.hosts.blender.api import plugin +from ayon_blender.api import plugin class JsonLayoutLoader(plugin.AssetLoader): diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_look.py b/server_addon/blender/client/ayon_blender/plugins/load/load_look.py index 75401f94ec..01e90b317d 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_look.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_look.py @@ -9,8 +9,8 @@ import json import bpy from ayon_core.pipeline import get_representation_path -from ayon_core.hosts.blender.api import plugin -from ayon_core.hosts.blender.api.pipeline import ( +from ayon_blender.api import plugin +from ayon_blender.api.pipeline import ( containerise_existing, AVALON_PROPERTY ) diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/collect_current_file.py b/server_addon/blender/client/ayon_blender/plugins/publish/collect_current_file.py index 7370f6cbe8..e22bfa8e61 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/collect_current_file.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/collect_current_file.py @@ -1,5 +1,5 @@ import pyblish.api -from ayon_core.hosts.blender.api import workio +from ayon_blender.api import workio class CollectBlenderCurrentFile(pyblish.api.ContextPlugin): diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/collect_instance.py b/server_addon/blender/client/ayon_blender/plugins/publish/collect_instance.py index 314ffd368a..73ae1c941e 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/collect_instance.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/collect_instance.py @@ -3,7 +3,7 @@ import bpy import pyblish.api from ayon_core.pipeline.publish import KnownPublishError -from ayon_core.hosts.blender.api.pipeline import AVALON_PROPERTY +from ayon_blender.api.pipeline import AVALON_PROPERTY class CollectBlenderInstanceData(pyblish.api.InstancePlugin): diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/collect_render.py b/server_addon/blender/client/ayon_blender/plugins/publish/collect_render.py index 1ad2de2b7d..917039b3f6 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/collect_render.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/collect_render.py @@ -6,7 +6,7 @@ import re import bpy -from ayon_core.hosts.blender.api import colorspace +from ayon_blender.api import colorspace import pyblish.api diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc.py index 6590be515c..84327b9cf7 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc.py @@ -4,7 +4,7 @@ import bpy from ayon_core.lib import BoolDef from ayon_core.pipeline import publish -from ayon_core.hosts.blender.api import plugin +from ayon_blender.api import plugin class ExtractABC(publish.Extractor, publish.OptionalPyblishPluginMixin): diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc_animation.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc_animation.py index f33af13282..78555b99f8 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc_animation.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc_animation.py @@ -3,7 +3,7 @@ import os import bpy from ayon_core.pipeline import publish -from ayon_core.hosts.blender.api import plugin +from ayon_blender.api import plugin class ExtractAnimationABC( diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_abc.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_abc.py index c60c92dee1..ee02491f3f 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_abc.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_abc.py @@ -3,7 +3,7 @@ import os import bpy from ayon_core.pipeline import publish -from ayon_core.hosts.blender.api import plugin +from ayon_blender.api import plugin class ExtractCameraABC(publish.Extractor, publish.OptionalPyblishPluginMixin): diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_fbx.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_fbx.py index bcaf9ebc44..acaeb0fae7 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_fbx.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_fbx.py @@ -3,7 +3,7 @@ import os import bpy from ayon_core.pipeline import publish -from ayon_core.hosts.blender.api import plugin +from ayon_blender.api import plugin class ExtractCamera(publish.Extractor, publish.OptionalPyblishPluginMixin): diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx.py index e6367dbc0d..fde4877014 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx.py @@ -3,7 +3,7 @@ import os import bpy from ayon_core.pipeline import publish -from ayon_core.hosts.blender.api import plugin +from ayon_blender.api import plugin class ExtractFBX(publish.Extractor, publish.OptionalPyblishPluginMixin): diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx_animation.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx_animation.py index ae02909152..c825718b7c 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx_animation.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx_animation.py @@ -6,8 +6,8 @@ import bpy_extras import bpy_extras.anim_utils from ayon_core.pipeline import publish -from ayon_core.hosts.blender.api import plugin -from ayon_core.hosts.blender.api.pipeline import AVALON_PROPERTY +from ayon_blender.api import plugin +from ayon_blender.api.pipeline import AVALON_PROPERTY def get_all_parents(obj): diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_layout.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_layout.py index 0679483dd5..9d1073691b 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_layout.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_layout.py @@ -8,8 +8,8 @@ import bpy_extras.anim_utils from ayon_api import get_representations from ayon_core.pipeline import publish -from ayon_core.hosts.blender.api import plugin -from ayon_core.hosts.blender.api.pipeline import AVALON_PROPERTY +from ayon_blender.api import plugin +from ayon_blender.api.pipeline import AVALON_PROPERTY class ExtractLayout(publish.Extractor, publish.OptionalPyblishPluginMixin): diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_playblast.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_playblast.py index ce6f40f967..deb950acb7 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_playblast.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_playblast.py @@ -7,8 +7,8 @@ import pyblish.api import bpy from ayon_core.pipeline import publish -from ayon_core.hosts.blender.api import capture -from ayon_core.hosts.blender.api.lib import maintained_time +from ayon_blender.api import capture +from ayon_blender.api.lib import maintained_time class ExtractPlayblast(publish.Extractor, publish.OptionalPyblishPluginMixin): diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_thumbnail.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_thumbnail.py index 4330c57d99..8c569de5fd 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_thumbnail.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_thumbnail.py @@ -4,8 +4,8 @@ import json import pyblish.api from ayon_core.pipeline import publish -from ayon_core.hosts.blender.api import capture -from ayon_core.hosts.blender.api.lib import maintained_time +from ayon_blender.api import capture +from ayon_blender.api.lib import maintained_time import bpy diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_usd.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_usd.py index 1d4fa3d7ac..3d62e4bb90 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_usd.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_usd.py @@ -3,7 +3,7 @@ import os import bpy from ayon_core.pipeline import publish -from ayon_core.hosts.blender.api import plugin, lib +from ayon_blender.api import plugin, lib class ExtractUSD(publish.Extractor): diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/increment_workfile_version.py b/server_addon/blender/client/ayon_blender/plugins/publish/increment_workfile_version.py index b6e0ea3e19..4af5a726a5 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/increment_workfile_version.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/increment_workfile_version.py @@ -1,6 +1,6 @@ import pyblish.api from ayon_core.pipeline.publish import OptionalPyblishPluginMixin -from ayon_core.hosts.blender.api.workio import save_file +from ayon_blender.api.workio import save_file class IncrementWorkfileVersion( diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_camera_zero_keyframe.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_camera_zero_keyframe.py index cce95e9cf9..aafae315d0 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_camera_zero_keyframe.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_camera_zero_keyframe.py @@ -4,7 +4,7 @@ import bpy import pyblish.api -import ayon_core.hosts.blender.api.action +import ayon_blender.api.action from ayon_core.pipeline.publish import ( ValidateContentsOrder, PublishValidationError, @@ -25,7 +25,7 @@ class ValidateCameraZeroKeyframe(pyblish.api.InstancePlugin, hosts = ["blender"] families = ["camera"] label = "Zero Keyframe" - actions = [ayon_core.hosts.blender.api.action.SelectInvalidAction] + actions = [ayon_blender.api.action.SelectInvalidAction] @staticmethod def get_invalid(instance) -> List: diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_deadline_publish.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_deadline_publish.py index a86e73ba81..099e909dc7 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_deadline_publish.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_deadline_publish.py @@ -9,7 +9,7 @@ from ayon_core.pipeline.publish import ( PublishValidationError, OptionalPyblishPluginMixin ) -from ayon_core.hosts.blender.api.render_lib import prepare_rendering +from ayon_blender.api.render_lib import prepare_rendering class ValidateDeadlinePublish(pyblish.api.InstancePlugin, diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_has_uv.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_has_uv.py index 9871dfeb4e..8f5f5aede8 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_has_uv.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_has_uv.py @@ -9,7 +9,7 @@ from ayon_core.pipeline.publish import ( OptionalPyblishPluginMixin, PublishValidationError ) -import ayon_core.hosts.blender.api.action +import ayon_blender.api.action class ValidateMeshHasUvs( @@ -22,7 +22,7 @@ class ValidateMeshHasUvs( hosts = ["blender"] families = ["model"] label = "Mesh Has UVs" - actions = [ayon_core.hosts.blender.api.action.SelectInvalidAction] + actions = [ayon_blender.api.action.SelectInvalidAction] optional = True @staticmethod diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_no_negative_scale.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_no_negative_scale.py index fb16bb7f8d..de81400bda 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_no_negative_scale.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_no_negative_scale.py @@ -9,7 +9,7 @@ from ayon_core.pipeline.publish import ( OptionalPyblishPluginMixin, PublishValidationError ) -import ayon_core.hosts.blender.api.action +import ayon_blender.api.action class ValidateMeshNoNegativeScale(pyblish.api.InstancePlugin, @@ -20,7 +20,7 @@ class ValidateMeshNoNegativeScale(pyblish.api.InstancePlugin, hosts = ["blender"] families = ["model"] label = "Mesh No Negative Scale" - actions = [ayon_core.hosts.blender.api.action.SelectInvalidAction] + actions = [ayon_blender.api.action.SelectInvalidAction] @staticmethod def get_invalid(instance) -> List: diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_model_uv_map1.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_model_uv_map1.py index 752bc5fa58..fa2ff377da 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_model_uv_map1.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_model_uv_map1.py @@ -11,7 +11,7 @@ from ayon_core.pipeline.publish import ( PublishValidationError, RepairAction ) -import ayon_core.hosts.blender.api.action +import ayon_blender.api.action class ValidateModelMeshUvMap1( @@ -27,7 +27,7 @@ class ValidateModelMeshUvMap1( hosts = ["blender"] families = ["model"] label = "Mesh UVs named map1" - actions = [ayon_core.hosts.blender.api.action.SelectInvalidAction, + actions = [ayon_blender.api.action.SelectInvalidAction, RepairAction] optional = True enabled = False diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_no_colons_in_name.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_no_colons_in_name.py index 5620946f1e..14fdba2996 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_no_colons_in_name.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_no_colons_in_name.py @@ -4,7 +4,7 @@ import bpy import pyblish.api -import ayon_core.hosts.blender.api.action +import ayon_blender.api.action from ayon_core.pipeline.publish import ( ValidateContentsOrder, OptionalPyblishPluginMixin, @@ -25,7 +25,7 @@ class ValidateNoColonsInName(pyblish.api.InstancePlugin, hosts = ["blender"] families = ["model", "rig"] label = "No Colons in names" - actions = [ayon_core.hosts.blender.api.action.SelectInvalidAction] + actions = [ayon_blender.api.action.SelectInvalidAction] @staticmethod def get_invalid(instance) -> List: diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_object_mode.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_object_mode.py index d215ffc1be..3832275560 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_object_mode.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_object_mode.py @@ -7,7 +7,7 @@ from ayon_core.pipeline.publish import ( OptionalPyblishPluginMixin, PublishValidationError ) -import ayon_core.hosts.blender.api.action +import ayon_blender.api.action class ValidateObjectIsInObjectMode( @@ -20,7 +20,7 @@ class ValidateObjectIsInObjectMode( hosts = ["blender"] families = ["model", "rig", "layout"] label = "Validate Object Mode" - actions = [ayon_core.hosts.blender.api.action.SelectInvalidAction] + actions = [ayon_blender.api.action.SelectInvalidAction] optional = False @staticmethod diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_transform_zero.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_transform_zero.py index 465ec15d7b..21e3467ab1 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_transform_zero.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_transform_zero.py @@ -6,8 +6,8 @@ import bpy import pyblish.api -from ayon_core.hosts.blender.api import plugin, lib -import ayon_core.hosts.blender.api.action +from ayon_blender.api import plugin, lib +import ayon_blender.api.action from ayon_core.pipeline.publish import ( ValidateContentsOrder, OptionalPyblishPluginMixin, @@ -24,7 +24,7 @@ class ValidateTransformZero(pyblish.api.InstancePlugin, hosts = ["blender"] families = ["model"] label = "Transform Zero" - actions = [ayon_core.hosts.blender.api.action.SelectInvalidAction, + actions = [ayon_blender.api.action.SelectInvalidAction, RepairAction] _identity = mathutils.Matrix() From 18667e202ecf9d547de8ff8bab85cead267f4b88 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Fri, 31 May 2024 17:38:18 +0200 Subject: [PATCH 36/88] remove unused class 'Loader' --- server_addon/blender/client/ayon_blender/api/__init__.py | 2 -- server_addon/blender/client/ayon_blender/api/plugin.py | 6 ------ 2 files changed, 8 deletions(-) diff --git a/server_addon/blender/client/ayon_blender/api/__init__.py b/server_addon/blender/client/ayon_blender/api/__init__.py index ce2b444997..da2a6fbbbb 100644 --- a/server_addon/blender/client/ayon_blender/api/__init__.py +++ b/server_addon/blender/client/ayon_blender/api/__init__.py @@ -15,7 +15,6 @@ from .pipeline import ( from .plugin import ( Creator, - Loader, ) from .workio import ( @@ -51,7 +50,6 @@ __all__ = [ "BlenderHost", "Creator", - "Loader", # Workfiles API "open_file", diff --git a/server_addon/blender/client/ayon_blender/api/plugin.py b/server_addon/blender/client/ayon_blender/api/plugin.py index 2d82a6857f..31a78d6149 100644 --- a/server_addon/blender/client/ayon_blender/api/plugin.py +++ b/server_addon/blender/client/ayon_blender/api/plugin.py @@ -376,12 +376,6 @@ class BaseCreator(Creator): ] -class Loader(LoaderPlugin): - """Base class for Loader plug-ins.""" - - hosts = ["blender"] - - class AssetLoader(LoaderPlugin): """A basic AssetLoader for Blender From 0e67a3ed39167e0a8a0eadddd069225e494c5d1d Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Fri, 31 May 2024 17:52:37 +0200 Subject: [PATCH 37/88] added settings category --- .../blender/client/ayon_blender/api/plugin.py | 16 ++++++++++++++++ .../plugins/publish/collect_current_file.py | 4 ++-- .../plugins/publish/collect_instance.py | 3 ++- .../plugins/publish/collect_render.py | 6 +++--- .../plugins/publish/collect_review.py | 4 ++-- .../plugins/publish/collect_workfile.py | 5 +++-- .../ayon_blender/plugins/publish/extract_abc.py | 2 +- .../plugins/publish/extract_abc_animation.py | 4 ++-- .../plugins/publish/extract_blend.py | 5 ++++- .../plugins/publish/extract_blend_animation.py | 5 +++-- .../plugins/publish/extract_camera_abc.py | 4 +++- .../plugins/publish/extract_camera_fbx.py | 4 +++- .../ayon_blender/plugins/publish/extract_fbx.py | 4 +++- .../plugins/publish/extract_fbx_animation.py | 4 ++-- .../plugins/publish/extract_layout.py | 4 +++- .../plugins/publish/extract_playblast.py | 6 ++++-- .../plugins/publish/extract_thumbnail.py | 5 ++--- .../ayon_blender/plugins/publish/extract_usd.py | 6 +++--- .../publish/increment_workfile_version.py | 5 +++-- .../plugins/publish/integrate_animation.py | 5 +++-- .../publish/validate_camera_zero_keyframe.py | 9 +++++---- .../plugins/publish/validate_deadline_publish.py | 8 +++++--- .../plugins/publish/validate_file_saved.py | 7 +++++-- .../plugins/publish/validate_instance_empty.py | 3 ++- .../plugins/publish/validate_mesh_has_uv.py | 7 +++---- .../publish/validate_mesh_no_negative_scale.py | 9 +++++---- .../plugins/publish/validate_model_uv_map1.py | 5 +++-- .../publish/validate_no_colons_in_name.py | 9 +++++---- .../plugins/publish/validate_object_mode.py | 5 +++-- .../publish/validate_render_camera_is_set.py | 7 +++++-- .../plugins/publish/validate_transform_zero.py | 8 ++++---- 31 files changed, 112 insertions(+), 66 deletions(-) diff --git a/server_addon/blender/client/ayon_blender/api/plugin.py b/server_addon/blender/client/ayon_blender/api/plugin.py index 31a78d6149..f4266bc3a2 100644 --- a/server_addon/blender/client/ayon_blender/api/plugin.py +++ b/server_addon/blender/client/ayon_blender/api/plugin.py @@ -4,6 +4,7 @@ import itertools from pathlib import Path from typing import Dict, List, Optional +import pyblish.api import bpy from ayon_core.pipeline import ( @@ -13,6 +14,7 @@ from ayon_core.pipeline import ( AVALON_INSTANCE_ID, AYON_INSTANCE_ID, ) +from ayon_core.pipeline.publish import Extractor from ayon_core.lib import BoolDef from .pipeline import ( @@ -161,10 +163,23 @@ def deselect_all(): bpy.context.view_layer.objects.active = active +class BlenderInstancePlugin(pyblish.api.InstancePlugin): + settings_category = "blender" + + +class BlenderContextPlugin(pyblish.api.ContextPlugin): + settings_category = "blender" + + +class BlenderExtractor(Extractor): + settings_category = "blender" + + class BaseCreator(Creator): """Base class for Blender Creator plug-ins.""" defaults = ['Main'] + settings_category = "blender" create_as_asset_group = False @staticmethod @@ -386,6 +401,7 @@ class AssetLoader(LoaderPlugin): it's different for different types (e.g. model, rig, animation, etc.). """ + settings_category = "blender" @staticmethod def _get_instance_empty(instance_name: str, nodes: List) -> Optional[bpy.types.Object]: diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/collect_current_file.py b/server_addon/blender/client/ayon_blender/plugins/publish/collect_current_file.py index e22bfa8e61..6568372169 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/collect_current_file.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/collect_current_file.py @@ -1,8 +1,8 @@ import pyblish.api -from ayon_blender.api import workio +from ayon_blender.api import workio, plugin -class CollectBlenderCurrentFile(pyblish.api.ContextPlugin): +class CollectBlenderCurrentFile(plugin.BlenderContextPlugin): """Inject the current working file into context""" order = pyblish.api.CollectorOrder - 0.5 diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/collect_instance.py b/server_addon/blender/client/ayon_blender/plugins/publish/collect_instance.py index 73ae1c941e..7d6f841ba3 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/collect_instance.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/collect_instance.py @@ -3,10 +3,11 @@ import bpy import pyblish.api from ayon_core.pipeline.publish import KnownPublishError +from ayon_blender.api import plugin from ayon_blender.api.pipeline import AVALON_PROPERTY -class CollectBlenderInstanceData(pyblish.api.InstancePlugin): +class CollectBlenderInstanceData(plugin.BlenderInstancePlugin): """Validator to verify that the instance is not empty""" order = pyblish.api.CollectorOrder diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/collect_render.py b/server_addon/blender/client/ayon_blender/plugins/publish/collect_render.py index 917039b3f6..ac5dc5bf6f 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/collect_render.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/collect_render.py @@ -5,12 +5,12 @@ import os import re import bpy - -from ayon_blender.api import colorspace import pyblish.api +from ayon_blender.api import colorspace, plugin -class CollectBlenderRender(pyblish.api.InstancePlugin): + +class CollectBlenderRender(plugin.BlenderInstancePlugin): """Gather all publishable render instances.""" order = pyblish.api.CollectorOrder + 0.01 diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/collect_review.py b/server_addon/blender/client/ayon_blender/plugins/publish/collect_review.py index 2c077398da..c013910b5a 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/collect_review.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/collect_review.py @@ -1,9 +1,9 @@ import bpy - import pyblish.api +from ayon_blender.api import plugin -class CollectReview(pyblish.api.InstancePlugin): +class CollectReview(plugin.BlenderInstancePlugin): """Collect Review data """ diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/collect_workfile.py b/server_addon/blender/client/ayon_blender/plugins/publish/collect_workfile.py index 6561c89605..347a5caf01 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/collect_workfile.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/collect_workfile.py @@ -1,9 +1,10 @@ from pathlib import Path -from pyblish.api import InstancePlugin, CollectorOrder +from pyblish.api import CollectorOrder +from ayon_blender.api import plugin -class CollectWorkfile(InstancePlugin): +class CollectWorkfile(plugin.BlenderInstancePlugin): """Inject workfile data into its instance.""" order = CollectorOrder diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc.py index 84327b9cf7..5da0258586 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc.py @@ -7,7 +7,7 @@ from ayon_core.pipeline import publish from ayon_blender.api import plugin -class ExtractABC(publish.Extractor, publish.OptionalPyblishPluginMixin): +class ExtractABC(plugin.BlenderExtractor, publish.OptionalPyblishPluginMixin): """Extract as ABC.""" label = "Extract ABC" diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc_animation.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc_animation.py index 78555b99f8..503593c8d3 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc_animation.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_abc_animation.py @@ -7,8 +7,8 @@ from ayon_blender.api import plugin class ExtractAnimationABC( - publish.Extractor, - publish.OptionalPyblishPluginMixin, + plugin.BlenderExtractor, + publish.OptionalPyblishPluginMixin, ): """Extract as ABC.""" diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_blend.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_blend.py index 19fe9c6271..520bc274a1 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_blend.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_blend.py @@ -3,9 +3,12 @@ import os import bpy from ayon_core.pipeline import publish +from ayon_blender.api import plugin -class ExtractBlend(publish.Extractor, publish.OptionalPyblishPluginMixin): +class ExtractBlend( + plugin.BlenderExtractor, publish.OptionalPyblishPluginMixin +): """Extract a blend file.""" label = "Extract Blend" diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_blend_animation.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_blend_animation.py index 315fbb19af..cca8ab2dd6 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_blend_animation.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_blend_animation.py @@ -3,11 +3,12 @@ import os import bpy from ayon_core.pipeline import publish +from ayon_blender.api import plugin class ExtractBlendAnimation( - publish.Extractor, - publish.OptionalPyblishPluginMixin, + plugin.BlenderExtractor, + publish.OptionalPyblishPluginMixin, ): """Extract a blend file.""" diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_abc.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_abc.py index ee02491f3f..278cd293c5 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_abc.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_abc.py @@ -6,7 +6,9 @@ from ayon_core.pipeline import publish from ayon_blender.api import plugin -class ExtractCameraABC(publish.Extractor, publish.OptionalPyblishPluginMixin): +class ExtractCameraABC( + plugin.BlenderExtractor, publish.OptionalPyblishPluginMixin +): """Extract camera as ABC.""" label = "Extract Camera (ABC)" diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_fbx.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_fbx.py index acaeb0fae7..9094355a72 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_fbx.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_camera_fbx.py @@ -6,7 +6,9 @@ from ayon_core.pipeline import publish from ayon_blender.api import plugin -class ExtractCamera(publish.Extractor, publish.OptionalPyblishPluginMixin): +class ExtractCamera( + plugin.BlenderExtractor, publish.OptionalPyblishPluginMixin +): """Extract as the camera as FBX.""" label = "Extract Camera (FBX)" diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx.py index fde4877014..085f7b18c3 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx.py @@ -6,7 +6,9 @@ from ayon_core.pipeline import publish from ayon_blender.api import plugin -class ExtractFBX(publish.Extractor, publish.OptionalPyblishPluginMixin): +class ExtractFBX( + plugin.BlenderExtractor, publish.OptionalPyblishPluginMixin +): """Extract as FBX.""" label = "Extract FBX" diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx_animation.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx_animation.py index c825718b7c..7f49e919db 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx_animation.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_fbx_animation.py @@ -42,8 +42,8 @@ def get_highest_root(objects): class ExtractAnimationFBX( - publish.Extractor, - publish.OptionalPyblishPluginMixin, + plugin.BlenderExtractor, + publish.OptionalPyblishPluginMixin, ): """Extract as animation.""" diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_layout.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_layout.py index 9d1073691b..0732d29c9d 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_layout.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_layout.py @@ -12,7 +12,9 @@ from ayon_blender.api import plugin from ayon_blender.api.pipeline import AVALON_PROPERTY -class ExtractLayout(publish.Extractor, publish.OptionalPyblishPluginMixin): +class ExtractLayout( + plugin.BlenderExtractor, publish.OptionalPyblishPluginMixin +): """Extract a layout.""" label = "Extract Layout (JSON)" diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_playblast.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_playblast.py index deb950acb7..0f769c296d 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_playblast.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_playblast.py @@ -7,11 +7,13 @@ import pyblish.api import bpy from ayon_core.pipeline import publish -from ayon_blender.api import capture +from ayon_blender.api import capture, plugin from ayon_blender.api.lib import maintained_time -class ExtractPlayblast(publish.Extractor, publish.OptionalPyblishPluginMixin): +class ExtractPlayblast( + plugin.BlenderExtractor, publish.OptionalPyblishPluginMixin +): """ Extract viewport playblast. diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_thumbnail.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_thumbnail.py index 8c569de5fd..40097aaa89 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_thumbnail.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_thumbnail.py @@ -3,14 +3,13 @@ import glob import json import pyblish.api -from ayon_core.pipeline import publish -from ayon_blender.api import capture +from ayon_blender.api import capture, plugin from ayon_blender.api.lib import maintained_time import bpy -class ExtractThumbnail(publish.Extractor): +class ExtractThumbnail(plugin.BlenderExtractor): """Extract viewport thumbnail. Takes review camera and creates a thumbnail based on viewport diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/extract_usd.py b/server_addon/blender/client/ayon_blender/plugins/publish/extract_usd.py index 3d62e4bb90..7ea89ae3dc 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/extract_usd.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/extract_usd.py @@ -2,11 +2,11 @@ import os import bpy -from ayon_core.pipeline import publish +from ayon_core.pipeline import KnownPublishError from ayon_blender.api import plugin, lib -class ExtractUSD(publish.Extractor): +class ExtractUSD(plugin.BlenderExtractor): """Extract as USD.""" label = "Extract USD" @@ -40,7 +40,7 @@ class ExtractUSD(publish.Extractor): root = lib.get_highest_root(objects=instance[:]) if not root: instance_node = instance.data["transientData"]["instance_node"] - raise publish.KnownPublishError( + raise KnownPublishError( f"No root object found in instance: {instance_node.name}" ) self.log.debug(f"Exporting using active root: {root.name}") diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/increment_workfile_version.py b/server_addon/blender/client/ayon_blender/plugins/publish/increment_workfile_version.py index 4af5a726a5..50d16ea54a 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/increment_workfile_version.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/increment_workfile_version.py @@ -1,11 +1,12 @@ import pyblish.api from ayon_core.pipeline.publish import OptionalPyblishPluginMixin from ayon_blender.api.workio import save_file +from ayon_blender.api import plugin class IncrementWorkfileVersion( - pyblish.api.ContextPlugin, - OptionalPyblishPluginMixin + plugin.BlenderContextPlugin, + OptionalPyblishPluginMixin ): """Increment current workfile version.""" diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/integrate_animation.py b/server_addon/blender/client/ayon_blender/plugins/publish/integrate_animation.py index 5d3a1dac93..b95c280ab0 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/integrate_animation.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/integrate_animation.py @@ -2,11 +2,12 @@ import json import pyblish.api from ayon_core.pipeline.publish import OptionalPyblishPluginMixin +from ayon_blender.api import plugin class IntegrateAnimation( - pyblish.api.InstancePlugin, - OptionalPyblishPluginMixin, + plugin.BlenderInstancePlugin, + OptionalPyblishPluginMixin, ): """Generate a JSON file for animation.""" diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_camera_zero_keyframe.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_camera_zero_keyframe.py index aafae315d0..df66f71dc5 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_camera_zero_keyframe.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_camera_zero_keyframe.py @@ -2,9 +2,8 @@ from typing import List import bpy -import pyblish.api - import ayon_blender.api.action +from ayon_blender.api import plugin from ayon_core.pipeline.publish import ( ValidateContentsOrder, PublishValidationError, @@ -12,8 +11,10 @@ from ayon_core.pipeline.publish import ( ) -class ValidateCameraZeroKeyframe(pyblish.api.InstancePlugin, - OptionalPyblishPluginMixin): +class ValidateCameraZeroKeyframe( + plugin.BlenderInstancePlugin, + OptionalPyblishPluginMixin +): """Camera must have a keyframe at frame 0. Unreal shifts the first keyframe to frame 0. Forcing the camera to have diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_deadline_publish.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_deadline_publish.py index 099e909dc7..fe544ee310 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_deadline_publish.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_deadline_publish.py @@ -2,18 +2,20 @@ import os import bpy -import pyblish.api from ayon_core.pipeline.publish import ( RepairAction, ValidateContentsOrder, PublishValidationError, OptionalPyblishPluginMixin ) +from ayon_blender.api import plugin from ayon_blender.api.render_lib import prepare_rendering -class ValidateDeadlinePublish(pyblish.api.InstancePlugin, - OptionalPyblishPluginMixin): +class ValidateDeadlinePublish( + plugin.BlenderInstancePlugin, + OptionalPyblishPluginMixin +): """Validates Render File Directory is not the same in every submission """ diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_file_saved.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_file_saved.py index aa73525555..e6b7b01c71 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_file_saved.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_file_saved.py @@ -6,6 +6,7 @@ from ayon_core.pipeline.publish import ( OptionalPyblishPluginMixin, PublishValidationError ) +from ayon_blender.api import plugin class SaveWorkfileAction(pyblish.api.Action): @@ -18,8 +19,10 @@ class SaveWorkfileAction(pyblish.api.Action): bpy.ops.wm.avalon_workfiles() -class ValidateFileSaved(pyblish.api.ContextPlugin, - OptionalPyblishPluginMixin): +class ValidateFileSaved( + plugin.BlenderContextPlugin, + OptionalPyblishPluginMixin +): """Validate that the workfile has been saved.""" order = pyblish.api.ValidatorOrder - 0.01 diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_instance_empty.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_instance_empty.py index f0f4106379..9561cc7020 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_instance_empty.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_instance_empty.py @@ -1,8 +1,9 @@ import pyblish.api from ayon_core.pipeline.publish import PublishValidationError +from ayon_blender.api import plugin -class ValidateInstanceEmpty(pyblish.api.InstancePlugin): +class ValidateInstanceEmpty(plugin.BlenderInstancePlugin): """Validator to verify that the instance is not empty""" order = pyblish.api.ValidatorOrder - 0.01 diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_has_uv.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_has_uv.py index 8f5f5aede8..3dd49e0e45 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_has_uv.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_has_uv.py @@ -2,19 +2,18 @@ from typing import List import bpy -import pyblish.api - from ayon_core.pipeline.publish import ( ValidateContentsOrder, OptionalPyblishPluginMixin, PublishValidationError ) import ayon_blender.api.action +from ayon_blender.api import plugin class ValidateMeshHasUvs( - pyblish.api.InstancePlugin, - OptionalPyblishPluginMixin, + plugin.BlenderInstancePlugin, + OptionalPyblishPluginMixin, ): """Validate that the current mesh has UV's.""" diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_no_negative_scale.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_no_negative_scale.py index de81400bda..91de310e46 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_no_negative_scale.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_mesh_no_negative_scale.py @@ -2,18 +2,19 @@ from typing import List import bpy -import pyblish.api - from ayon_core.pipeline.publish import ( ValidateContentsOrder, OptionalPyblishPluginMixin, PublishValidationError ) import ayon_blender.api.action +from ayon_blender.api import plugin -class ValidateMeshNoNegativeScale(pyblish.api.InstancePlugin, - OptionalPyblishPluginMixin): +class ValidateMeshNoNegativeScale( + plugin.BlenderInstancePlugin, + OptionalPyblishPluginMixin +): """Ensure that meshes don't have a negative scale.""" order = ValidateContentsOrder diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_model_uv_map1.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_model_uv_map1.py index fa2ff377da..fff4abc98d 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_model_uv_map1.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_model_uv_map1.py @@ -12,11 +12,12 @@ from ayon_core.pipeline.publish import ( RepairAction ) import ayon_blender.api.action +from ayon_blender.api import plugin class ValidateModelMeshUvMap1( - pyblish.api.InstancePlugin, - OptionalPyblishPluginMixin, + plugin.BlenderInstancePlugin, + OptionalPyblishPluginMixin, ): """Validate model mesh uvs are named `map1`. diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_no_colons_in_name.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_no_colons_in_name.py index 14fdba2996..dbafb53263 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_no_colons_in_name.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_no_colons_in_name.py @@ -2,9 +2,8 @@ from typing import List import bpy -import pyblish.api - import ayon_blender.api.action +from ayon_blender.api import plugin from ayon_core.pipeline.publish import ( ValidateContentsOrder, OptionalPyblishPluginMixin, @@ -12,8 +11,10 @@ from ayon_core.pipeline.publish import ( ) -class ValidateNoColonsInName(pyblish.api.InstancePlugin, - OptionalPyblishPluginMixin): +class ValidateNoColonsInName( + plugin.BlenderInstancePlugin, + OptionalPyblishPluginMixin +): """There cannot be colons in names Object or bone names cannot include colons. Other software do not diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_object_mode.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_object_mode.py index 3832275560..4dc2c39949 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_object_mode.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_object_mode.py @@ -8,11 +8,12 @@ from ayon_core.pipeline.publish import ( PublishValidationError ) import ayon_blender.api.action +from ayon_blender.api import plugin class ValidateObjectIsInObjectMode( - pyblish.api.InstancePlugin, - OptionalPyblishPluginMixin, + plugin.BlenderInstancePlugin, + OptionalPyblishPluginMixin, ): """Validate that the objects in the instance are in Object Mode.""" diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_render_camera_is_set.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_render_camera_is_set.py index 46bfe45739..15eb64d2ad 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_render_camera_is_set.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_render_camera_is_set.py @@ -6,10 +6,13 @@ from ayon_core.pipeline.publish import ( OptionalPyblishPluginMixin, PublishValidationError ) +from ayon_blender.api import plugin -class ValidateRenderCameraIsSet(pyblish.api.InstancePlugin, - OptionalPyblishPluginMixin): +class ValidateRenderCameraIsSet( + plugin.BlenderInstancePlugin, + OptionalPyblishPluginMixin +): """Validate that there is a camera set as active for rendering.""" order = pyblish.api.ValidatorOrder diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_transform_zero.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_transform_zero.py index 21e3467ab1..c7bfc6e8a6 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_transform_zero.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_transform_zero.py @@ -4,8 +4,6 @@ from typing import List import mathutils import bpy -import pyblish.api - from ayon_blender.api import plugin, lib import ayon_blender.api.action from ayon_core.pipeline.publish import ( @@ -16,8 +14,10 @@ from ayon_core.pipeline.publish import ( ) -class ValidateTransformZero(pyblish.api.InstancePlugin, - OptionalPyblishPluginMixin): +class ValidateTransformZero( + plugin.BlenderInstancePlugin, + OptionalPyblishPluginMixin +): """Transforms can't have any values""" order = ValidateContentsOrder From 9f8fbae1940b07601650f25010b4e2da2a590557 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Fri, 31 May 2024 17:53:03 +0200 Subject: [PATCH 38/88] renamed base plugin class names --- server_addon/blender/client/ayon_blender/api/ops.py | 2 +- server_addon/blender/client/ayon_blender/api/plugin.py | 8 ++++---- .../client/ayon_blender/plugins/create/convert_legacy.py | 2 +- .../client/ayon_blender/plugins/create/create_action.py | 2 +- .../ayon_blender/plugins/create/create_animation.py | 2 +- .../ayon_blender/plugins/create/create_blendScene.py | 2 +- .../client/ayon_blender/plugins/create/create_camera.py | 2 +- .../client/ayon_blender/plugins/create/create_layout.py | 2 +- .../client/ayon_blender/plugins/create/create_model.py | 2 +- .../ayon_blender/plugins/create/create_pointcache.py | 2 +- .../client/ayon_blender/plugins/create/create_render.py | 2 +- .../client/ayon_blender/plugins/create/create_review.py | 2 +- .../client/ayon_blender/plugins/create/create_rig.py | 2 +- .../client/ayon_blender/plugins/create/create_usd.py | 2 +- .../client/ayon_blender/plugins/create/create_workfile.py | 4 ++-- .../client/ayon_blender/plugins/load/import_workfile.py | 4 ++-- .../client/ayon_blender/plugins/load/load_action.py | 2 +- .../client/ayon_blender/plugins/load/load_animation.py | 2 +- .../client/ayon_blender/plugins/load/load_audio.py | 2 +- .../client/ayon_blender/plugins/load/load_blend.py | 2 +- .../client/ayon_blender/plugins/load/load_blendscene.py | 2 +- .../client/ayon_blender/plugins/load/load_cache.py | 2 +- .../client/ayon_blender/plugins/load/load_camera_abc.py | 2 +- .../client/ayon_blender/plugins/load/load_camera_fbx.py | 2 +- .../blender/client/ayon_blender/plugins/load/load_fbx.py | 2 +- .../client/ayon_blender/plugins/load/load_layout_json.py | 2 +- .../blender/client/ayon_blender/plugins/load/load_look.py | 2 +- 27 files changed, 32 insertions(+), 32 deletions(-) diff --git a/server_addon/blender/client/ayon_blender/api/ops.py b/server_addon/blender/client/ayon_blender/api/ops.py index c03ec98d0c..7cf9600067 100644 --- a/server_addon/blender/client/ayon_blender/api/ops.py +++ b/server_addon/blender/client/ayon_blender/api/ops.py @@ -305,7 +305,7 @@ class LaunchCreator(LaunchQtApp): class LaunchLoader(LaunchQtApp): - """Launch Avalon Loader.""" + """Launch AYON Loader.""" bl_idname = "wm.avalon_loader" bl_label = "Load..." diff --git a/server_addon/blender/client/ayon_blender/api/plugin.py b/server_addon/blender/client/ayon_blender/api/plugin.py index f4266bc3a2..e72bf20287 100644 --- a/server_addon/blender/client/ayon_blender/api/plugin.py +++ b/server_addon/blender/client/ayon_blender/api/plugin.py @@ -175,7 +175,7 @@ class BlenderExtractor(Extractor): settings_category = "blender" -class BaseCreator(Creator): +class BlenderCreator(Creator): """Base class for Blender Creator plug-ins.""" defaults = ['Main'] @@ -280,7 +280,7 @@ class BaseCreator(Creator): return instance_node def collect_instances(self): - """Override abstract method from BaseCreator. + """Override abstract method from BlenderCreator. Collect existing instances related to this creator plugin.""" # Cache instances in shared data @@ -307,7 +307,7 @@ class BaseCreator(Creator): self._add_instance_to_context(instance) def update_instances(self, update_list): - """Override abstract method from BaseCreator. + """Override abstract method from BlenderCreator. Store changes of existing instances so they can be recollected. Args: @@ -391,7 +391,7 @@ class BaseCreator(Creator): ] -class AssetLoader(LoaderPlugin): +class BlenderLoader(LoaderPlugin): """A basic AssetLoader for Blender This will implement the basic logic for linking/appending assets diff --git a/server_addon/blender/client/ayon_blender/plugins/create/convert_legacy.py b/server_addon/blender/client/ayon_blender/plugins/create/convert_legacy.py index c51e58dbcb..095f3ab919 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/convert_legacy.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/convert_legacy.py @@ -42,7 +42,7 @@ class BlenderLegacyConvertor(ProductConvertorPlugin): parameter on them. This is using cached entries done in - :py:meth:`~BaseCreator.cache_instance_data()` + :py:meth:`~BlenderCreator.cache_instance_data()` """ self.legacy_instances = self.collection_shared_data.get( diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_action.py b/server_addon/blender/client/ayon_blender/plugins/create/create_action.py index 90e351e877..123a2e0df1 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_action.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_action.py @@ -5,7 +5,7 @@ import bpy from ayon_blender.api import lib, plugin -class CreateAction(plugin.BaseCreator): +class CreateAction(plugin.BlenderCreator): """Action output for character rigs.""" identifier = "io.openpype.creators.blender.action" diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_animation.py b/server_addon/blender/client/ayon_blender/plugins/create/create_animation.py index 89d836ec0d..cfb2c254ef 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_animation.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_animation.py @@ -3,7 +3,7 @@ from ayon_blender.api import plugin, lib -class CreateAnimation(plugin.BaseCreator): +class CreateAnimation(plugin.BlenderCreator): """Animation output for character rigs.""" identifier = "io.openpype.creators.blender.animation" diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_blendScene.py b/server_addon/blender/client/ayon_blender/plugins/create/create_blendScene.py index 66ac812b6b..363a35883b 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_blendScene.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_blendScene.py @@ -5,7 +5,7 @@ import bpy from ayon_blender.api import plugin, lib -class CreateBlendScene(plugin.BaseCreator): +class CreateBlendScene(plugin.BlenderCreator): """Generic group of assets.""" identifier = "io.openpype.creators.blender.blendscene" diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_camera.py b/server_addon/blender/client/ayon_blender/plugins/create/create_camera.py index 3780344abc..8cfe8f989b 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_camera.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_camera.py @@ -6,7 +6,7 @@ from ayon_blender.api import plugin, lib from ayon_blender.api.pipeline import AVALON_INSTANCES -class CreateCamera(plugin.BaseCreator): +class CreateCamera(plugin.BlenderCreator): """Polygonal static geometry.""" identifier = "io.openpype.creators.blender.camera" diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_layout.py b/server_addon/blender/client/ayon_blender/plugins/create/create_layout.py index c781b8a683..1e0f8effdd 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_layout.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_layout.py @@ -5,7 +5,7 @@ import bpy from ayon_blender.api import plugin, lib -class CreateLayout(plugin.BaseCreator): +class CreateLayout(plugin.BlenderCreator): """Layout output for character rigs.""" identifier = "io.openpype.creators.blender.layout" diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_model.py b/server_addon/blender/client/ayon_blender/plugins/create/create_model.py index b55fd5e76b..7e8bf566ea 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_model.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_model.py @@ -5,7 +5,7 @@ import bpy from ayon_blender.api import plugin, lib -class CreateModel(plugin.BaseCreator): +class CreateModel(plugin.BlenderCreator): """Polygonal static geometry.""" identifier = "io.openpype.creators.blender.model" diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_pointcache.py b/server_addon/blender/client/ayon_blender/plugins/create/create_pointcache.py index 4aa088da5c..9730ddb89d 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_pointcache.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_pointcache.py @@ -3,7 +3,7 @@ from ayon_blender.api import plugin, lib -class CreatePointcache(plugin.BaseCreator): +class CreatePointcache(plugin.BlenderCreator): """Polygonal static geometry.""" identifier = "io.openpype.creators.blender.pointcache" diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_render.py b/server_addon/blender/client/ayon_blender/plugins/create/create_render.py index 6b6ebbce0a..6bbedb957f 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_render.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_render.py @@ -7,7 +7,7 @@ from ayon_blender.api.render_lib import prepare_rendering from ayon_blender.api.workio import save_file -class CreateRenderlayer(plugin.BaseCreator): +class CreateRenderlayer(plugin.BlenderCreator): """Single baked camera.""" identifier = "io.openpype.creators.blender.render" diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_review.py b/server_addon/blender/client/ayon_blender/plugins/create/create_review.py index d28ee596d3..dbef9e371f 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_review.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_review.py @@ -3,7 +3,7 @@ from ayon_blender.api import plugin, lib -class CreateReview(plugin.BaseCreator): +class CreateReview(plugin.BlenderCreator): """Single baked camera.""" identifier = "io.openpype.creators.blender.review" diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_rig.py b/server_addon/blender/client/ayon_blender/plugins/create/create_rig.py index 36307c0a34..aad24bda69 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_rig.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_rig.py @@ -5,7 +5,7 @@ import bpy from ayon_blender.api import plugin, lib -class CreateRig(plugin.BaseCreator): +class CreateRig(plugin.BlenderCreator): """Artist-friendly rig with controls to direct motion.""" identifier = "io.openpype.creators.blender.rig" diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_usd.py b/server_addon/blender/client/ayon_blender/plugins/create/create_usd.py index a893b6bdaa..d7770b15f7 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_usd.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_usd.py @@ -3,7 +3,7 @@ from ayon_blender.api import plugin, lib -class CreateUSD(plugin.BaseCreator): +class CreateUSD(plugin.BlenderCreator): """Create USD Export""" identifier = "io.openpype.creators.blender.usd" diff --git a/server_addon/blender/client/ayon_blender/plugins/create/create_workfile.py b/server_addon/blender/client/ayon_blender/plugins/create/create_workfile.py index ae4e7d033a..03cfc322a9 100644 --- a/server_addon/blender/client/ayon_blender/plugins/create/create_workfile.py +++ b/server_addon/blender/client/ayon_blender/plugins/create/create_workfile.py @@ -2,14 +2,14 @@ import bpy import ayon_api from ayon_core.pipeline import CreatedInstance, AutoCreator -from ayon_blender.api.plugin import BaseCreator +from ayon_blender.api.plugin import BlenderCreator from ayon_blender.api.pipeline import ( AVALON_PROPERTY, AVALON_CONTAINERS ) -class CreateWorkfile(BaseCreator, AutoCreator): +class CreateWorkfile(BlenderCreator, AutoCreator): """Workfile auto-creator. The workfile instance stores its data on the `AVALON_CONTAINERS` collection diff --git a/server_addon/blender/client/ayon_blender/plugins/load/import_workfile.py b/server_addon/blender/client/ayon_blender/plugins/load/import_workfile.py index e690980b6a..16cba6913d 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/import_workfile.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/import_workfile.py @@ -34,7 +34,7 @@ def append_workfile(context, fname, do_import): collection.children.link(coll) -class AppendBlendLoader(plugin.AssetLoader): +class AppendBlendLoader(plugin.BlenderLoader): """Append workfile in Blender (unmanaged) Warning: @@ -59,7 +59,7 @@ class AppendBlendLoader(plugin.AssetLoader): return -class ImportBlendLoader(plugin.AssetLoader): +class ImportBlendLoader(plugin.BlenderLoader): """Import workfile in the current Blender scene (unmanaged) Warning: diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_action.py b/server_addon/blender/client/ayon_blender/plugins/load/load_action.py index 2ea77785fb..ddfaa94044 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_action.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_action.py @@ -16,7 +16,7 @@ from ayon_blender.api.pipeline import ( logger = logging.getLogger("ayon").getChild("blender").getChild("load_action") -class BlendActionLoader(plugin.AssetLoader): +class BlendActionLoader(plugin.BlenderLoader): """Load action from a .blend file. Warning: diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_animation.py b/server_addon/blender/client/ayon_blender/plugins/load/load_animation.py index 1367cab175..241b76b600 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_animation.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_animation.py @@ -8,7 +8,7 @@ from ayon_blender.api import plugin from ayon_blender.api.pipeline import AVALON_PROPERTY -class BlendAnimationLoader(plugin.AssetLoader): +class BlendAnimationLoader(plugin.BlenderLoader): """Load animations from a .blend file. Warning: diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_audio.py b/server_addon/blender/client/ayon_blender/plugins/load/load_audio.py index 62f585363c..b8682e7c13 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_audio.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_audio.py @@ -17,7 +17,7 @@ from ayon_blender.api.pipeline import ( ) -class AudioLoader(plugin.AssetLoader): +class AudioLoader(plugin.BlenderLoader): """Load audio in Blender.""" product_types = {"audio"} diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_blend.py b/server_addon/blender/client/ayon_blender/plugins/load/load_blend.py index 026afe6244..c9f3ec0c71 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_blend.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_blend.py @@ -17,7 +17,7 @@ from ayon_blender.api.pipeline import ( ) -class BlendLoader(plugin.AssetLoader): +class BlendLoader(plugin.BlenderLoader): """Load assets from a .blend file.""" product_types = {"model", "rig", "layout", "camera"} diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_blendscene.py b/server_addon/blender/client/ayon_blender/plugins/load/load_blendscene.py index 9e0de26a8b..590ab0079e 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_blendscene.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_blendscene.py @@ -15,7 +15,7 @@ from ayon_blender.api.pipeline import ( ) -class BlendSceneLoader(plugin.AssetLoader): +class BlendSceneLoader(plugin.BlenderLoader): """Load assets from a .blend file.""" product_types = {"blendScene"} diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_cache.py b/server_addon/blender/client/ayon_blender/plugins/load/load_cache.py index 570f5086f2..599610ff39 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_cache.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_cache.py @@ -18,7 +18,7 @@ from ayon_blender.api.pipeline import ( from ayon_blender.api import plugin, lib -class CacheModelLoader(plugin.AssetLoader): +class CacheModelLoader(plugin.BlenderLoader): """Load cache models. Stores the imported asset in a collection named after the asset. diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_camera_abc.py b/server_addon/blender/client/ayon_blender/plugins/load/load_camera_abc.py index 6df035994b..7305afd423 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_camera_abc.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_camera_abc.py @@ -17,7 +17,7 @@ from ayon_blender.api.pipeline import ( ) -class AbcCameraLoader(plugin.AssetLoader): +class AbcCameraLoader(plugin.BlenderLoader): """Load a camera from Alembic file. Stores the imported asset in an empty named after the asset. diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_camera_fbx.py b/server_addon/blender/client/ayon_blender/plugins/load/load_camera_fbx.py index a9a9fcbeb3..d2900c6c3f 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_camera_fbx.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_camera_fbx.py @@ -17,7 +17,7 @@ from ayon_blender.api.pipeline import ( ) -class FbxCameraLoader(plugin.AssetLoader): +class FbxCameraLoader(plugin.BlenderLoader): """Load a camera from FBX. Stores the imported asset in an empty named after the asset. diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_fbx.py b/server_addon/blender/client/ayon_blender/plugins/load/load_fbx.py index 9959a04ab5..fe3d747dab 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_fbx.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_fbx.py @@ -17,7 +17,7 @@ from ayon_blender.api.pipeline import ( ) -class FbxModelLoader(plugin.AssetLoader): +class FbxModelLoader(plugin.BlenderLoader): """Load FBX models. Stores the imported asset in an empty named after the asset. diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_layout_json.py b/server_addon/blender/client/ayon_blender/plugins/load/load_layout_json.py index 93a8543f2e..9a2d17b4fc 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_layout_json.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_layout_json.py @@ -23,7 +23,7 @@ from ayon_blender.api.pipeline import ( from ayon_blender.api import plugin -class JsonLayoutLoader(plugin.AssetLoader): +class JsonLayoutLoader(plugin.BlenderLoader): """Load layout published from Unreal.""" product_types = {"layout"} diff --git a/server_addon/blender/client/ayon_blender/plugins/load/load_look.py b/server_addon/blender/client/ayon_blender/plugins/load/load_look.py index 01e90b317d..d214917d3e 100644 --- a/server_addon/blender/client/ayon_blender/plugins/load/load_look.py +++ b/server_addon/blender/client/ayon_blender/plugins/load/load_look.py @@ -16,7 +16,7 @@ from ayon_blender.api.pipeline import ( ) -class BlendLookLoader(plugin.AssetLoader): +class BlendLookLoader(plugin.BlenderLoader): """Load models from a .blend file. Because they come from a .blend file we can simply link the collection that From d6eb124e90aad155fb7088602f1c8ff89aa180da Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Fri, 31 May 2024 17:54:50 +0200 Subject: [PATCH 39/88] fix import --- server_addon/blender/client/ayon_blender/__init__.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server_addon/blender/client/ayon_blender/__init__.py b/server_addon/blender/client/ayon_blender/__init__.py index 2a6603606a..d67afbde0b 100644 --- a/server_addon/blender/client/ayon_blender/__init__.py +++ b/server_addon/blender/client/ayon_blender/__init__.py @@ -1,6 +1,10 @@ -from .addon import BlenderAddon +from .addon import ( + BlenderAddon, + BLENDER_ADDON_ROOT, +) __all__ = ( "BlenderAddon", + "BLENDER_ADDON_ROOT", ) From bf67d300fdc6196ca769c66709f772c9ba7d3f07 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Fri, 31 May 2024 17:55:15 +0200 Subject: [PATCH 40/88] bump version and add more information to package.py --- client/ayon_core/addon/base.py | 1 + server_addon/blender/client/ayon_blender/__init__.py | 3 +++ server_addon/blender/client/ayon_blender/addon.py | 3 +++ server_addon/blender/client/ayon_blender/version.py | 3 +++ server_addon/blender/package.py | 10 +++++++++- 5 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 server_addon/blender/client/ayon_blender/version.py diff --git a/client/ayon_core/addon/base.py b/client/ayon_core/addon/base.py index 56d5c46858..afe102f51a 100644 --- a/client/ayon_core/addon/base.py +++ b/client/ayon_core/addon/base.py @@ -51,6 +51,7 @@ IGNORED_MODULES_IN_AYON = set() # - this is used to log the missing addon MOVED_ADDON_MILESTONE_VERSIONS = { "applications": VersionInfo(0, 2, 0), + "blender": VersionInfo(0, 2, 0), "celaction": VersionInfo(0, 2, 0), "clockify": VersionInfo(0, 2, 0), "flame": VersionInfo(0, 2, 0), diff --git a/server_addon/blender/client/ayon_blender/__init__.py b/server_addon/blender/client/ayon_blender/__init__.py index d67afbde0b..221dcd4138 100644 --- a/server_addon/blender/client/ayon_blender/__init__.py +++ b/server_addon/blender/client/ayon_blender/__init__.py @@ -1,3 +1,4 @@ +from .version import __version__ from .addon import ( BlenderAddon, BLENDER_ADDON_ROOT, @@ -5,6 +6,8 @@ from .addon import ( __all__ = ( + "__version__", + "BlenderAddon", "BLENDER_ADDON_ROOT", ) diff --git a/server_addon/blender/client/ayon_blender/addon.py b/server_addon/blender/client/ayon_blender/addon.py index d9a20e8dab..9711580369 100644 --- a/server_addon/blender/client/ayon_blender/addon.py +++ b/server_addon/blender/client/ayon_blender/addon.py @@ -1,11 +1,14 @@ import os from ayon_core.addon import AYONAddon, IHostAddon +from .version import __version__ + BLENDER_ADDON_ROOT = os.path.dirname(os.path.abspath(__file__)) class BlenderAddon(AYONAddon, IHostAddon): name = "blender" + version = __version__ host_name = "blender" def add_implementation_envs(self, env, _app): diff --git a/server_addon/blender/client/ayon_blender/version.py b/server_addon/blender/client/ayon_blender/version.py new file mode 100644 index 0000000000..365c44e71b --- /dev/null +++ b/server_addon/blender/client/ayon_blender/version.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +"""Package declaring AYON addon 'blender' version.""" +__version__ = "0.2.0" diff --git a/server_addon/blender/package.py b/server_addon/blender/package.py index d2c02a4909..4e0ac112e1 100644 --- a/server_addon/blender/package.py +++ b/server_addon/blender/package.py @@ -1,3 +1,11 @@ name = "blender" title = "Blender" -version = "0.1.9" +version = "0.2.0" + +client_dir = "ayon_blender" + +ayon_required_addons = { + "core": ">0.3.2", +} +ayon_compatible_addons = {} + From fb30e3d8b6f883f786f313e0ec9202887beb18af Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 11:25:13 +0200 Subject: [PATCH 41/88] removed unused import --- .../ayon_blender/plugins/publish/validate_model_uv_map1.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/server_addon/blender/client/ayon_blender/plugins/publish/validate_model_uv_map1.py b/server_addon/blender/client/ayon_blender/plugins/publish/validate_model_uv_map1.py index fff4abc98d..74f550b6db 100644 --- a/server_addon/blender/client/ayon_blender/plugins/publish/validate_model_uv_map1.py +++ b/server_addon/blender/client/ayon_blender/plugins/publish/validate_model_uv_map1.py @@ -3,8 +3,6 @@ from typing import List import bpy -import pyblish.api - from ayon_core.pipeline.publish import ( ValidateContentsOrder, OptionalPyblishPluginMixin, From 48ec3a73c012bfc38e1483eb0050bf17e0934e36 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 14:00:13 +0200 Subject: [PATCH 42/88] moved hiero integratoin next to server codebase --- .../hiero/client/ayon_hiero}/__init__.py | 0 .../hiero/client/ayon_hiero}/addon.py | 0 .../hiero/client/ayon_hiero}/api/__init__.py | 0 .../hiero/client/ayon_hiero}/api/constants.py | 0 .../hiero/client/ayon_hiero}/api/events.py | 0 .../hiero/client/ayon_hiero}/api/launchforhiero.py | 0 .../hiero/client/ayon_hiero}/api/lib.py | 0 .../hiero/client/ayon_hiero}/api/menu.py | 0 .../hiero/client/ayon_hiero}/api/otio/__init__.py | 0 .../client/ayon_hiero}/api/otio/hiero_export.py | 0 .../client/ayon_hiero}/api/otio/hiero_import.py | 0 .../hiero/client/ayon_hiero}/api/otio/utils.py | 0 .../hiero/client/ayon_hiero}/api/pipeline.py | 0 .../hiero/client/ayon_hiero}/api/plugin.py | 0 .../api/startup/HieroPlayer/PlayerPresets.hrox | 0 .../api/startup/Icons/1_add_handles_end.png | Bin .../ayon_hiero}/api/startup/Icons/2_add_handles.png | Bin .../client/ayon_hiero}/api/startup/Icons/3D.png | Bin .../api/startup/Icons/3_add_handles_start.png | Bin .../client/ayon_hiero}/api/startup/Icons/4_2D.png | Bin .../client/ayon_hiero}/api/startup/Icons/edit.png | Bin .../client/ayon_hiero}/api/startup/Icons/fusion.png | Bin .../ayon_hiero}/api/startup/Icons/hierarchy.png | Bin .../ayon_hiero}/api/startup/Icons/houdini.png | Bin .../client/ayon_hiero}/api/startup/Icons/layers.psd | Bin .../client/ayon_hiero}/api/startup/Icons/lense.png | Bin .../client/ayon_hiero}/api/startup/Icons/lense1.png | Bin .../client/ayon_hiero}/api/startup/Icons/maya.png | Bin .../client/ayon_hiero}/api/startup/Icons/nuke.png | Bin .../ayon_hiero}/api/startup/Icons/pype_icon.png | Bin .../ayon_hiero}/api/startup/Icons/resolution.png | Bin .../ayon_hiero}/api/startup/Icons/resolution.psd | Bin .../ayon_hiero}/api/startup/Icons/retiming.png | Bin .../ayon_hiero}/api/startup/Icons/retiming.psd | Bin .../client/ayon_hiero}/api/startup/Icons/review.png | Bin .../client/ayon_hiero}/api/startup/Icons/review.psd | Bin .../client/ayon_hiero}/api/startup/Icons/volume.png | Bin .../ayon_hiero}/api/startup/Icons/z_layer_bg.png | Bin .../ayon_hiero}/api/startup/Icons/z_layer_fg.png | Bin .../ayon_hiero}/api/startup/Icons/z_layer_main.png | Bin .../api/startup/Python/Startup/SpreadsheetExport.py | 0 .../api/startup/Python/Startup/Startup.py | 0 .../Python/Startup/otioexporter/OTIOExportTask.py | 0 .../Python/Startup/otioexporter/OTIOExportUI.py | 0 .../startup/Python/Startup/otioexporter/__init__.py | 0 .../api/startup/Python/Startup/project_helpers.py | 0 .../api/startup/Python/Startup/selection_tracker.py | 0 .../api/startup/Python/Startup/setFrameRate.py | 0 .../startup/Python/StartupUI/PimpMySpreadsheet.py | 0 .../api/startup/Python/StartupUI/Purge.py | 0 .../Python/StartupUI/nukeStyleKeyboardShortcuts.py | 0 .../Python/StartupUI/otioimporter/OTIOImport.py | 0 .../Python/StartupUI/otioimporter/__init__.py | 0 .../api/startup/Python/StartupUI/setPosterFrame.py | 0 .../pipeline.xml | 0 .../pipeline.xml | 0 .../pipeline.xml | 0 .../hiero/client/ayon_hiero}/api/style.css | 0 .../hiero/client/ayon_hiero}/api/tags.py | 0 .../hiero/client/ayon_hiero}/api/workio.py | 0 .../ayon_hiero}/plugins/create/create_shot_clip.py | 0 .../client/ayon_hiero}/plugins/load/load_clip.py | 0 .../client/ayon_hiero}/plugins/load/load_effects.py | 0 .../plugins/publish/collect_clip_effects.py | 0 .../plugins/publish/collect_frame_tag_instances.py | 0 .../plugins/publish/collect_tag_tasks.py | 0 .../plugins/publish/extract_clip_effects.py | 0 .../ayon_hiero}/plugins/publish/extract_frames.py | 0 .../plugins/publish/extract_thumbnail.py | 0 .../publish/integrate_version_up_workfile.py | 0 .../plugins/publish/precollect_instances.py | 0 .../plugins/publish/precollect_workfile.py | 0 .../publish_old_workflow/collect_tag_comments.py | 0 .../publish_old_workflow/precollect_retime.py | 0 .../ayon_hiero}/vendor/google/protobuf/__init__.py | 0 .../ayon_hiero}/vendor/google/protobuf/any_pb2.py | 0 .../ayon_hiero}/vendor/google/protobuf/api_pb2.py | 0 .../vendor/google/protobuf/compiler/__init__.py | 0 .../vendor/google/protobuf/compiler/plugin_pb2.py | 0 .../vendor/google/protobuf/descriptor.py | 0 .../vendor/google/protobuf/descriptor_database.py | 0 .../vendor/google/protobuf/descriptor_pb2.py | 0 .../vendor/google/protobuf/descriptor_pool.py | 0 .../vendor/google/protobuf/duration_pb2.py | 0 .../ayon_hiero}/vendor/google/protobuf/empty_pb2.py | 0 .../vendor/google/protobuf/field_mask_pb2.py | 0 .../vendor/google/protobuf/internal/__init__.py | 0 .../google/protobuf/internal/_parameterized.py | 0 .../google/protobuf/internal/api_implementation.py | 0 .../vendor/google/protobuf/internal/builder.py | 0 .../vendor/google/protobuf/internal/containers.py | 0 .../vendor/google/protobuf/internal/decoder.py | 0 .../vendor/google/protobuf/internal/encoder.py | 0 .../google/protobuf/internal/enum_type_wrapper.py | 0 .../google/protobuf/internal/extension_dict.py | 0 .../google/protobuf/internal/message_listener.py | 0 .../protobuf/internal/message_set_extensions_pb2.py | 0 .../protobuf/internal/missing_enum_values_pb2.py | 0 .../internal/more_extensions_dynamic_pb2.py | 0 .../google/protobuf/internal/more_extensions_pb2.py | 0 .../google/protobuf/internal/more_messages_pb2.py | 0 .../google/protobuf/internal/no_package_pb2.py | 0 .../google/protobuf/internal/python_message.py | 0 .../google/protobuf/internal/type_checkers.py | 0 .../google/protobuf/internal/well_known_types.py | 0 .../vendor/google/protobuf/internal/wire_format.py | 0 .../vendor/google/protobuf/json_format.py | 0 .../ayon_hiero}/vendor/google/protobuf/message.py | 0 .../vendor/google/protobuf/message_factory.py | 0 .../vendor/google/protobuf/proto_builder.py | 0 .../vendor/google/protobuf/pyext/__init__.py | 0 .../vendor/google/protobuf/pyext/cpp_message.py | 0 .../vendor/google/protobuf/pyext/python_pb2.py | 0 .../vendor/google/protobuf/reflection.py | 0 .../ayon_hiero}/vendor/google/protobuf/service.py | 0 .../vendor/google/protobuf/service_reflection.py | 0 .../vendor/google/protobuf/source_context_pb2.py | 0 .../vendor/google/protobuf/struct_pb2.py | 0 .../vendor/google/protobuf/symbol_database.py | 0 .../vendor/google/protobuf/text_encoding.py | 0 .../vendor/google/protobuf/text_format.py | 0 .../vendor/google/protobuf/timestamp_pb2.py | 0 .../ayon_hiero}/vendor/google/protobuf/type_pb2.py | 0 .../vendor/google/protobuf/util/__init__.py | 0 .../vendor/google/protobuf/util/json_format_pb2.py | 0 .../google/protobuf/util/json_format_proto3_pb2.py | 0 .../vendor/google/protobuf/wrappers_pb2.py | 0 127 files changed, 0 insertions(+), 0 deletions(-) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/__init__.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/addon.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/__init__.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/constants.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/events.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/launchforhiero.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/lib.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/menu.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/otio/__init__.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/otio/hiero_export.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/otio/hiero_import.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/otio/utils.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/pipeline.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/plugin.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/HieroPlayer/PlayerPresets.hrox (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/1_add_handles_end.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/2_add_handles.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/3D.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/3_add_handles_start.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/4_2D.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/edit.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/fusion.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/hierarchy.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/houdini.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/layers.psd (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/lense.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/lense1.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/maya.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/nuke.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/pype_icon.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/resolution.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/resolution.psd (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/retiming.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/retiming.psd (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/review.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/review.psd (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/volume.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/z_layer_bg.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/z_layer_fg.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Icons/z_layer_main.png (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Python/Startup/SpreadsheetExport.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Python/Startup/Startup.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Python/Startup/otioexporter/OTIOExportTask.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Python/Startup/otioexporter/OTIOExportUI.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Python/Startup/otioexporter/__init__.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Python/Startup/project_helpers.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Python/Startup/selection_tracker.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Python/Startup/setFrameRate.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Python/StartupUI/PimpMySpreadsheet.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Python/StartupUI/Purge.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Python/StartupUI/nukeStyleKeyboardShortcuts.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Python/StartupUI/otioimporter/OTIOImport.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Python/StartupUI/otioimporter/__init__.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/Python/StartupUI/setPosterFrame.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/TaskPresets/10.5/Processors/hiero.exporters.FnShotProcessor.ShotProcessor/pipeline.xml (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/TaskPresets/11.1/Processors/hiero.exporters.FnShotProcessor.ShotProcessor/pipeline.xml (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/startup/TaskPresets/11.2/hiero.exporters.FnShotProcessor.ShotProcessor/pipeline.xml (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/style.css (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/tags.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/api/workio.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/plugins/create/create_shot_clip.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/plugins/load/load_clip.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/plugins/load/load_effects.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/plugins/publish/collect_clip_effects.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/plugins/publish/collect_frame_tag_instances.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/plugins/publish/collect_tag_tasks.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/plugins/publish/extract_clip_effects.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/plugins/publish/extract_frames.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/plugins/publish/extract_thumbnail.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/plugins/publish/integrate_version_up_workfile.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/plugins/publish/precollect_instances.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/plugins/publish/precollect_workfile.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/plugins/publish_old_workflow/collect_tag_comments.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/plugins/publish_old_workflow/precollect_retime.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/__init__.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/any_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/api_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/compiler/__init__.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/compiler/plugin_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/descriptor.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/descriptor_database.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/descriptor_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/descriptor_pool.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/duration_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/empty_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/field_mask_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/__init__.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/_parameterized.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/api_implementation.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/builder.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/containers.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/decoder.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/encoder.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/enum_type_wrapper.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/extension_dict.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/message_listener.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/message_set_extensions_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/missing_enum_values_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/more_extensions_dynamic_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/more_extensions_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/more_messages_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/no_package_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/python_message.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/type_checkers.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/well_known_types.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/internal/wire_format.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/json_format.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/message.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/message_factory.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/proto_builder.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/pyext/__init__.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/pyext/cpp_message.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/pyext/python_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/reflection.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/service.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/service_reflection.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/source_context_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/struct_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/symbol_database.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/text_encoding.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/text_format.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/timestamp_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/type_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/util/__init__.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/util/json_format_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/util/json_format_proto3_pb2.py (100%) rename {client/ayon_core/hosts/hiero => server_addon/hiero/client/ayon_hiero}/vendor/google/protobuf/wrappers_pb2.py (100%) diff --git a/client/ayon_core/hosts/hiero/__init__.py b/server_addon/hiero/client/ayon_hiero/__init__.py similarity index 100% rename from client/ayon_core/hosts/hiero/__init__.py rename to server_addon/hiero/client/ayon_hiero/__init__.py diff --git a/client/ayon_core/hosts/hiero/addon.py b/server_addon/hiero/client/ayon_hiero/addon.py similarity index 100% rename from client/ayon_core/hosts/hiero/addon.py rename to server_addon/hiero/client/ayon_hiero/addon.py diff --git a/client/ayon_core/hosts/hiero/api/__init__.py b/server_addon/hiero/client/ayon_hiero/api/__init__.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/__init__.py rename to server_addon/hiero/client/ayon_hiero/api/__init__.py diff --git a/client/ayon_core/hosts/hiero/api/constants.py b/server_addon/hiero/client/ayon_hiero/api/constants.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/constants.py rename to server_addon/hiero/client/ayon_hiero/api/constants.py diff --git a/client/ayon_core/hosts/hiero/api/events.py b/server_addon/hiero/client/ayon_hiero/api/events.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/events.py rename to server_addon/hiero/client/ayon_hiero/api/events.py diff --git a/client/ayon_core/hosts/hiero/api/launchforhiero.py b/server_addon/hiero/client/ayon_hiero/api/launchforhiero.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/launchforhiero.py rename to server_addon/hiero/client/ayon_hiero/api/launchforhiero.py diff --git a/client/ayon_core/hosts/hiero/api/lib.py b/server_addon/hiero/client/ayon_hiero/api/lib.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/lib.py rename to server_addon/hiero/client/ayon_hiero/api/lib.py diff --git a/client/ayon_core/hosts/hiero/api/menu.py b/server_addon/hiero/client/ayon_hiero/api/menu.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/menu.py rename to server_addon/hiero/client/ayon_hiero/api/menu.py diff --git a/client/ayon_core/hosts/hiero/api/otio/__init__.py b/server_addon/hiero/client/ayon_hiero/api/otio/__init__.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/otio/__init__.py rename to server_addon/hiero/client/ayon_hiero/api/otio/__init__.py diff --git a/client/ayon_core/hosts/hiero/api/otio/hiero_export.py b/server_addon/hiero/client/ayon_hiero/api/otio/hiero_export.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/otio/hiero_export.py rename to server_addon/hiero/client/ayon_hiero/api/otio/hiero_export.py diff --git a/client/ayon_core/hosts/hiero/api/otio/hiero_import.py b/server_addon/hiero/client/ayon_hiero/api/otio/hiero_import.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/otio/hiero_import.py rename to server_addon/hiero/client/ayon_hiero/api/otio/hiero_import.py diff --git a/client/ayon_core/hosts/hiero/api/otio/utils.py b/server_addon/hiero/client/ayon_hiero/api/otio/utils.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/otio/utils.py rename to server_addon/hiero/client/ayon_hiero/api/otio/utils.py diff --git a/client/ayon_core/hosts/hiero/api/pipeline.py b/server_addon/hiero/client/ayon_hiero/api/pipeline.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/pipeline.py rename to server_addon/hiero/client/ayon_hiero/api/pipeline.py diff --git a/client/ayon_core/hosts/hiero/api/plugin.py b/server_addon/hiero/client/ayon_hiero/api/plugin.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/plugin.py rename to server_addon/hiero/client/ayon_hiero/api/plugin.py diff --git a/client/ayon_core/hosts/hiero/api/startup/HieroPlayer/PlayerPresets.hrox b/server_addon/hiero/client/ayon_hiero/api/startup/HieroPlayer/PlayerPresets.hrox similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/HieroPlayer/PlayerPresets.hrox rename to server_addon/hiero/client/ayon_hiero/api/startup/HieroPlayer/PlayerPresets.hrox diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/1_add_handles_end.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/1_add_handles_end.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/1_add_handles_end.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/1_add_handles_end.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/2_add_handles.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/2_add_handles.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/2_add_handles.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/2_add_handles.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/3D.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/3D.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/3D.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/3D.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/3_add_handles_start.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/3_add_handles_start.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/3_add_handles_start.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/3_add_handles_start.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/4_2D.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/4_2D.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/4_2D.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/4_2D.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/edit.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/edit.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/edit.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/edit.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/fusion.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/fusion.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/fusion.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/fusion.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/hierarchy.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/hierarchy.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/hierarchy.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/hierarchy.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/houdini.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/houdini.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/houdini.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/houdini.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/layers.psd b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/layers.psd similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/layers.psd rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/layers.psd diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/lense.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/lense.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/lense.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/lense.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/lense1.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/lense1.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/lense1.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/lense1.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/maya.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/maya.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/maya.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/maya.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/nuke.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/nuke.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/nuke.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/nuke.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/pype_icon.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/pype_icon.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/pype_icon.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/pype_icon.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/resolution.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/resolution.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/resolution.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/resolution.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/resolution.psd b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/resolution.psd similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/resolution.psd rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/resolution.psd diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/retiming.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/retiming.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/retiming.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/retiming.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/retiming.psd b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/retiming.psd similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/retiming.psd rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/retiming.psd diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/review.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/review.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/review.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/review.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/review.psd b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/review.psd similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/review.psd rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/review.psd diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/volume.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/volume.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/volume.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/volume.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/z_layer_bg.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/z_layer_bg.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/z_layer_bg.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/z_layer_bg.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/z_layer_fg.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/z_layer_fg.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/z_layer_fg.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/z_layer_fg.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Icons/z_layer_main.png b/server_addon/hiero/client/ayon_hiero/api/startup/Icons/z_layer_main.png similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Icons/z_layer_main.png rename to server_addon/hiero/client/ayon_hiero/api/startup/Icons/z_layer_main.png diff --git a/client/ayon_core/hosts/hiero/api/startup/Python/Startup/SpreadsheetExport.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/SpreadsheetExport.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Python/Startup/SpreadsheetExport.py rename to server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/SpreadsheetExport.py diff --git a/client/ayon_core/hosts/hiero/api/startup/Python/Startup/Startup.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/Startup.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Python/Startup/Startup.py rename to server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/Startup.py diff --git a/client/ayon_core/hosts/hiero/api/startup/Python/Startup/otioexporter/OTIOExportTask.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/otioexporter/OTIOExportTask.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Python/Startup/otioexporter/OTIOExportTask.py rename to server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/otioexporter/OTIOExportTask.py diff --git a/client/ayon_core/hosts/hiero/api/startup/Python/Startup/otioexporter/OTIOExportUI.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/otioexporter/OTIOExportUI.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Python/Startup/otioexporter/OTIOExportUI.py rename to server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/otioexporter/OTIOExportUI.py diff --git a/client/ayon_core/hosts/hiero/api/startup/Python/Startup/otioexporter/__init__.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/otioexporter/__init__.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Python/Startup/otioexporter/__init__.py rename to server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/otioexporter/__init__.py diff --git a/client/ayon_core/hosts/hiero/api/startup/Python/Startup/project_helpers.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/project_helpers.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Python/Startup/project_helpers.py rename to server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/project_helpers.py diff --git a/client/ayon_core/hosts/hiero/api/startup/Python/Startup/selection_tracker.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/selection_tracker.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Python/Startup/selection_tracker.py rename to server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/selection_tracker.py diff --git a/client/ayon_core/hosts/hiero/api/startup/Python/Startup/setFrameRate.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/setFrameRate.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Python/Startup/setFrameRate.py rename to server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/setFrameRate.py diff --git a/client/ayon_core/hosts/hiero/api/startup/Python/StartupUI/PimpMySpreadsheet.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/StartupUI/PimpMySpreadsheet.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Python/StartupUI/PimpMySpreadsheet.py rename to server_addon/hiero/client/ayon_hiero/api/startup/Python/StartupUI/PimpMySpreadsheet.py diff --git a/client/ayon_core/hosts/hiero/api/startup/Python/StartupUI/Purge.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/StartupUI/Purge.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Python/StartupUI/Purge.py rename to server_addon/hiero/client/ayon_hiero/api/startup/Python/StartupUI/Purge.py diff --git a/client/ayon_core/hosts/hiero/api/startup/Python/StartupUI/nukeStyleKeyboardShortcuts.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/StartupUI/nukeStyleKeyboardShortcuts.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Python/StartupUI/nukeStyleKeyboardShortcuts.py rename to server_addon/hiero/client/ayon_hiero/api/startup/Python/StartupUI/nukeStyleKeyboardShortcuts.py diff --git a/client/ayon_core/hosts/hiero/api/startup/Python/StartupUI/otioimporter/OTIOImport.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/StartupUI/otioimporter/OTIOImport.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Python/StartupUI/otioimporter/OTIOImport.py rename to server_addon/hiero/client/ayon_hiero/api/startup/Python/StartupUI/otioimporter/OTIOImport.py diff --git a/client/ayon_core/hosts/hiero/api/startup/Python/StartupUI/otioimporter/__init__.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/StartupUI/otioimporter/__init__.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Python/StartupUI/otioimporter/__init__.py rename to server_addon/hiero/client/ayon_hiero/api/startup/Python/StartupUI/otioimporter/__init__.py diff --git a/client/ayon_core/hosts/hiero/api/startup/Python/StartupUI/setPosterFrame.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/StartupUI/setPosterFrame.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/Python/StartupUI/setPosterFrame.py rename to server_addon/hiero/client/ayon_hiero/api/startup/Python/StartupUI/setPosterFrame.py diff --git a/client/ayon_core/hosts/hiero/api/startup/TaskPresets/10.5/Processors/hiero.exporters.FnShotProcessor.ShotProcessor/pipeline.xml b/server_addon/hiero/client/ayon_hiero/api/startup/TaskPresets/10.5/Processors/hiero.exporters.FnShotProcessor.ShotProcessor/pipeline.xml similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/TaskPresets/10.5/Processors/hiero.exporters.FnShotProcessor.ShotProcessor/pipeline.xml rename to server_addon/hiero/client/ayon_hiero/api/startup/TaskPresets/10.5/Processors/hiero.exporters.FnShotProcessor.ShotProcessor/pipeline.xml diff --git a/client/ayon_core/hosts/hiero/api/startup/TaskPresets/11.1/Processors/hiero.exporters.FnShotProcessor.ShotProcessor/pipeline.xml b/server_addon/hiero/client/ayon_hiero/api/startup/TaskPresets/11.1/Processors/hiero.exporters.FnShotProcessor.ShotProcessor/pipeline.xml similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/TaskPresets/11.1/Processors/hiero.exporters.FnShotProcessor.ShotProcessor/pipeline.xml rename to server_addon/hiero/client/ayon_hiero/api/startup/TaskPresets/11.1/Processors/hiero.exporters.FnShotProcessor.ShotProcessor/pipeline.xml diff --git a/client/ayon_core/hosts/hiero/api/startup/TaskPresets/11.2/hiero.exporters.FnShotProcessor.ShotProcessor/pipeline.xml b/server_addon/hiero/client/ayon_hiero/api/startup/TaskPresets/11.2/hiero.exporters.FnShotProcessor.ShotProcessor/pipeline.xml similarity index 100% rename from client/ayon_core/hosts/hiero/api/startup/TaskPresets/11.2/hiero.exporters.FnShotProcessor.ShotProcessor/pipeline.xml rename to server_addon/hiero/client/ayon_hiero/api/startup/TaskPresets/11.2/hiero.exporters.FnShotProcessor.ShotProcessor/pipeline.xml diff --git a/client/ayon_core/hosts/hiero/api/style.css b/server_addon/hiero/client/ayon_hiero/api/style.css similarity index 100% rename from client/ayon_core/hosts/hiero/api/style.css rename to server_addon/hiero/client/ayon_hiero/api/style.css diff --git a/client/ayon_core/hosts/hiero/api/tags.py b/server_addon/hiero/client/ayon_hiero/api/tags.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/tags.py rename to server_addon/hiero/client/ayon_hiero/api/tags.py diff --git a/client/ayon_core/hosts/hiero/api/workio.py b/server_addon/hiero/client/ayon_hiero/api/workio.py similarity index 100% rename from client/ayon_core/hosts/hiero/api/workio.py rename to server_addon/hiero/client/ayon_hiero/api/workio.py diff --git a/client/ayon_core/hosts/hiero/plugins/create/create_shot_clip.py b/server_addon/hiero/client/ayon_hiero/plugins/create/create_shot_clip.py similarity index 100% rename from client/ayon_core/hosts/hiero/plugins/create/create_shot_clip.py rename to server_addon/hiero/client/ayon_hiero/plugins/create/create_shot_clip.py diff --git a/client/ayon_core/hosts/hiero/plugins/load/load_clip.py b/server_addon/hiero/client/ayon_hiero/plugins/load/load_clip.py similarity index 100% rename from client/ayon_core/hosts/hiero/plugins/load/load_clip.py rename to server_addon/hiero/client/ayon_hiero/plugins/load/load_clip.py diff --git a/client/ayon_core/hosts/hiero/plugins/load/load_effects.py b/server_addon/hiero/client/ayon_hiero/plugins/load/load_effects.py similarity index 100% rename from client/ayon_core/hosts/hiero/plugins/load/load_effects.py rename to server_addon/hiero/client/ayon_hiero/plugins/load/load_effects.py diff --git a/client/ayon_core/hosts/hiero/plugins/publish/collect_clip_effects.py b/server_addon/hiero/client/ayon_hiero/plugins/publish/collect_clip_effects.py similarity index 100% rename from client/ayon_core/hosts/hiero/plugins/publish/collect_clip_effects.py rename to server_addon/hiero/client/ayon_hiero/plugins/publish/collect_clip_effects.py diff --git a/client/ayon_core/hosts/hiero/plugins/publish/collect_frame_tag_instances.py b/server_addon/hiero/client/ayon_hiero/plugins/publish/collect_frame_tag_instances.py similarity index 100% rename from client/ayon_core/hosts/hiero/plugins/publish/collect_frame_tag_instances.py rename to server_addon/hiero/client/ayon_hiero/plugins/publish/collect_frame_tag_instances.py diff --git a/client/ayon_core/hosts/hiero/plugins/publish/collect_tag_tasks.py b/server_addon/hiero/client/ayon_hiero/plugins/publish/collect_tag_tasks.py similarity index 100% rename from client/ayon_core/hosts/hiero/plugins/publish/collect_tag_tasks.py rename to server_addon/hiero/client/ayon_hiero/plugins/publish/collect_tag_tasks.py diff --git a/client/ayon_core/hosts/hiero/plugins/publish/extract_clip_effects.py b/server_addon/hiero/client/ayon_hiero/plugins/publish/extract_clip_effects.py similarity index 100% rename from client/ayon_core/hosts/hiero/plugins/publish/extract_clip_effects.py rename to server_addon/hiero/client/ayon_hiero/plugins/publish/extract_clip_effects.py diff --git a/client/ayon_core/hosts/hiero/plugins/publish/extract_frames.py b/server_addon/hiero/client/ayon_hiero/plugins/publish/extract_frames.py similarity index 100% rename from client/ayon_core/hosts/hiero/plugins/publish/extract_frames.py rename to server_addon/hiero/client/ayon_hiero/plugins/publish/extract_frames.py diff --git a/client/ayon_core/hosts/hiero/plugins/publish/extract_thumbnail.py b/server_addon/hiero/client/ayon_hiero/plugins/publish/extract_thumbnail.py similarity index 100% rename from client/ayon_core/hosts/hiero/plugins/publish/extract_thumbnail.py rename to server_addon/hiero/client/ayon_hiero/plugins/publish/extract_thumbnail.py diff --git a/client/ayon_core/hosts/hiero/plugins/publish/integrate_version_up_workfile.py b/server_addon/hiero/client/ayon_hiero/plugins/publish/integrate_version_up_workfile.py similarity index 100% rename from client/ayon_core/hosts/hiero/plugins/publish/integrate_version_up_workfile.py rename to server_addon/hiero/client/ayon_hiero/plugins/publish/integrate_version_up_workfile.py diff --git a/client/ayon_core/hosts/hiero/plugins/publish/precollect_instances.py b/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_instances.py similarity index 100% rename from client/ayon_core/hosts/hiero/plugins/publish/precollect_instances.py rename to server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_instances.py diff --git a/client/ayon_core/hosts/hiero/plugins/publish/precollect_workfile.py b/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_workfile.py similarity index 100% rename from client/ayon_core/hosts/hiero/plugins/publish/precollect_workfile.py rename to server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_workfile.py diff --git a/client/ayon_core/hosts/hiero/plugins/publish_old_workflow/collect_tag_comments.py b/server_addon/hiero/client/ayon_hiero/plugins/publish_old_workflow/collect_tag_comments.py similarity index 100% rename from client/ayon_core/hosts/hiero/plugins/publish_old_workflow/collect_tag_comments.py rename to server_addon/hiero/client/ayon_hiero/plugins/publish_old_workflow/collect_tag_comments.py diff --git a/client/ayon_core/hosts/hiero/plugins/publish_old_workflow/precollect_retime.py b/server_addon/hiero/client/ayon_hiero/plugins/publish_old_workflow/precollect_retime.py similarity index 100% rename from client/ayon_core/hosts/hiero/plugins/publish_old_workflow/precollect_retime.py rename to server_addon/hiero/client/ayon_hiero/plugins/publish_old_workflow/precollect_retime.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/__init__.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/__init__.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/__init__.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/__init__.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/any_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/any_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/any_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/any_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/api_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/api_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/api_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/api_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/compiler/__init__.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/compiler/__init__.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/compiler/__init__.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/compiler/__init__.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/compiler/plugin_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/compiler/plugin_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/compiler/plugin_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/compiler/plugin_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/descriptor.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/descriptor.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/descriptor.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/descriptor.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/descriptor_database.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/descriptor_database.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/descriptor_database.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/descriptor_database.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/descriptor_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/descriptor_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/descriptor_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/descriptor_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/descriptor_pool.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/descriptor_pool.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/descriptor_pool.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/descriptor_pool.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/duration_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/duration_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/duration_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/duration_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/empty_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/empty_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/empty_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/empty_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/field_mask_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/field_mask_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/field_mask_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/field_mask_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/__init__.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/__init__.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/__init__.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/__init__.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/_parameterized.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/_parameterized.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/_parameterized.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/_parameterized.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/api_implementation.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/api_implementation.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/api_implementation.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/api_implementation.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/builder.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/builder.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/builder.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/builder.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/containers.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/containers.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/containers.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/containers.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/decoder.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/decoder.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/decoder.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/decoder.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/encoder.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/encoder.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/encoder.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/encoder.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/enum_type_wrapper.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/enum_type_wrapper.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/enum_type_wrapper.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/enum_type_wrapper.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/extension_dict.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/extension_dict.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/extension_dict.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/extension_dict.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/message_listener.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/message_listener.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/message_listener.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/message_listener.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/message_set_extensions_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/message_set_extensions_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/message_set_extensions_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/message_set_extensions_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/missing_enum_values_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/missing_enum_values_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/missing_enum_values_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/missing_enum_values_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/more_extensions_dynamic_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/more_extensions_dynamic_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/more_extensions_dynamic_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/more_extensions_dynamic_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/more_extensions_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/more_extensions_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/more_extensions_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/more_extensions_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/more_messages_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/more_messages_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/more_messages_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/more_messages_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/no_package_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/no_package_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/no_package_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/no_package_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/python_message.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/python_message.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/python_message.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/python_message.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/type_checkers.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/type_checkers.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/type_checkers.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/type_checkers.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/well_known_types.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/well_known_types.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/well_known_types.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/well_known_types.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/wire_format.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/wire_format.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/internal/wire_format.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/internal/wire_format.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/json_format.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/json_format.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/json_format.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/json_format.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/message.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/message.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/message.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/message.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/message_factory.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/message_factory.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/message_factory.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/message_factory.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/proto_builder.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/proto_builder.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/proto_builder.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/proto_builder.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/pyext/__init__.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/pyext/__init__.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/pyext/__init__.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/pyext/__init__.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/pyext/cpp_message.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/pyext/cpp_message.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/pyext/cpp_message.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/pyext/cpp_message.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/pyext/python_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/pyext/python_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/pyext/python_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/pyext/python_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/reflection.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/reflection.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/reflection.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/reflection.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/service.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/service.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/service.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/service.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/service_reflection.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/service_reflection.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/service_reflection.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/service_reflection.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/source_context_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/source_context_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/source_context_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/source_context_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/struct_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/struct_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/struct_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/struct_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/symbol_database.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/symbol_database.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/symbol_database.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/symbol_database.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/text_encoding.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/text_encoding.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/text_encoding.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/text_encoding.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/text_format.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/text_format.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/text_format.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/text_format.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/timestamp_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/timestamp_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/timestamp_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/timestamp_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/type_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/type_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/type_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/type_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/util/__init__.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/util/__init__.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/util/__init__.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/util/__init__.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/util/json_format_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/util/json_format_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/util/json_format_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/util/json_format_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/util/json_format_proto3_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/util/json_format_proto3_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/util/json_format_proto3_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/util/json_format_proto3_pb2.py diff --git a/client/ayon_core/hosts/hiero/vendor/google/protobuf/wrappers_pb2.py b/server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/wrappers_pb2.py similarity index 100% rename from client/ayon_core/hosts/hiero/vendor/google/protobuf/wrappers_pb2.py rename to server_addon/hiero/client/ayon_hiero/vendor/google/protobuf/wrappers_pb2.py From 21c02e023cf9d894927ebf2ef8f084050474e63e Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 14:02:01 +0200 Subject: [PATCH 43/88] added more info to package py and added version.py --- server_addon/hiero/client/ayon_hiero/__init__.py | 3 +++ server_addon/hiero/client/ayon_hiero/addon.py | 3 +++ server_addon/hiero/client/ayon_hiero/version.py | 3 +++ server_addon/hiero/package.py | 8 +++++++- 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 server_addon/hiero/client/ayon_hiero/version.py diff --git a/server_addon/hiero/client/ayon_hiero/__init__.py b/server_addon/hiero/client/ayon_hiero/__init__.py index e6744d5aec..73a2343f66 100644 --- a/server_addon/hiero/client/ayon_hiero/__init__.py +++ b/server_addon/hiero/client/ayon_hiero/__init__.py @@ -1,3 +1,4 @@ +from .version import __version__ from .addon import ( HIERO_ROOT_DIR, HieroAddon, @@ -5,6 +6,8 @@ from .addon import ( __all__ = ( + "__version__", + "HIERO_ROOT_DIR", "HieroAddon", ) diff --git a/server_addon/hiero/client/ayon_hiero/addon.py b/server_addon/hiero/client/ayon_hiero/addon.py index f612493ca1..1d2c36c0b3 100644 --- a/server_addon/hiero/client/ayon_hiero/addon.py +++ b/server_addon/hiero/client/ayon_hiero/addon.py @@ -2,11 +2,14 @@ import os import platform from ayon_core.addon import AYONAddon, IHostAddon +from .version import __version__ + HIERO_ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) class HieroAddon(AYONAddon, IHostAddon): name = "hiero" + version = __version__ host_name = "hiero" def add_implementation_envs(self, env, _app): diff --git a/server_addon/hiero/client/ayon_hiero/version.py b/server_addon/hiero/client/ayon_hiero/version.py new file mode 100644 index 0000000000..6a2d180afb --- /dev/null +++ b/server_addon/hiero/client/ayon_hiero/version.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +"""Package declaring AYON addon 'hiero' version.""" +__version__ = "0.2.0" diff --git a/server_addon/hiero/package.py b/server_addon/hiero/package.py index 54c2f74fa7..1948d50e6d 100644 --- a/server_addon/hiero/package.py +++ b/server_addon/hiero/package.py @@ -1,3 +1,9 @@ name = "hiero" title = "Hiero" -version = "0.1.3" +version = "0.2.0" +client_dir = "ayon_hiero" + +ayon_required_addons = { + "core": ">0.3.2", +} +ayon_compatible_addons = {} From a07820cb8cac98cb43f37eb9fe1976e9619cf0d5 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 14:05:23 +0200 Subject: [PATCH 44/88] fix imports --- server_addon/hiero/client/ayon_hiero/api/lib.py | 8 ++++---- server_addon/hiero/client/ayon_hiero/api/pipeline.py | 8 ++++---- server_addon/hiero/client/ayon_hiero/api/plugin.py | 2 +- .../ayon_hiero/api/startup/Python/Startup/Startup.py | 6 +++--- .../startup/Python/Startup/otioexporter/OTIOExportTask.py | 2 +- .../startup/Python/Startup/otioexporter/OTIOExportUI.py | 2 +- .../api/startup/Python/StartupUI/otioimporter/__init__.py | 2 +- .../client/ayon_hiero/plugins/create/create_shot_clip.py | 4 ++-- .../hiero/client/ayon_hiero/plugins/load/load_clip.py | 2 +- .../hiero/client/ayon_hiero/plugins/load/load_effects.py | 2 +- .../ayon_hiero/plugins/publish/extract_clip_effects.py | 1 - .../ayon_hiero/plugins/publish/precollect_instances.py | 4 ++-- .../ayon_hiero/plugins/publish/precollect_workfile.py | 2 +- .../plugins/publish_old_workflow/precollect_retime.py | 2 +- 14 files changed, 23 insertions(+), 24 deletions(-) diff --git a/server_addon/hiero/client/ayon_hiero/api/lib.py b/server_addon/hiero/client/ayon_hiero/api/lib.py index 456a68f125..2a6038fb98 100644 --- a/server_addon/hiero/client/ayon_hiero/api/lib.py +++ b/server_addon/hiero/client/ayon_hiero/api/lib.py @@ -453,19 +453,19 @@ def get_track_openpype_data(track, container_name=None): ) -@deprecated("ayon_core.hosts.hiero.api.lib.get_trackitem_openpype_tag") +@deprecated("ayon_hiero.api.lib.get_trackitem_openpype_tag") def get_track_item_pype_tag(track_item): # backward compatibility alias return get_trackitem_openpype_tag(track_item) -@deprecated("ayon_core.hosts.hiero.api.lib.set_trackitem_openpype_tag") +@deprecated("ayon_hiero.api.lib.set_trackitem_openpype_tag") def set_track_item_pype_tag(track_item, data=None): # backward compatibility alias return set_trackitem_openpype_tag(track_item, data) -@deprecated("ayon_core.hosts.hiero.api.lib.get_trackitem_openpype_data") +@deprecated("ayon_hiero.api.lib.get_trackitem_openpype_data") def get_track_item_pype_data(track_item): # backward compatibility alias return get_trackitem_openpype_data(track_item) @@ -802,7 +802,7 @@ class PublishAction(QtWidgets.QAction): # # ''' # import hiero.core -# from ayon_core.hosts.nuke.api.lib import ( +# from ayon_nuke.api.lib import ( # BuildWorkfile, # imprint # ) diff --git a/server_addon/hiero/client/ayon_hiero/api/pipeline.py b/server_addon/hiero/client/ayon_hiero/api/pipeline.py index 327a4ae29c..4a8930ac39 100644 --- a/server_addon/hiero/client/ayon_hiero/api/pipeline.py +++ b/server_addon/hiero/client/ayon_hiero/api/pipeline.py @@ -308,9 +308,9 @@ def reload_config(): import importlib for module in ( - "ayon_core.hosts.hiero.lib", - "ayon_core.hosts.hiero.menu", - "ayon_core.hosts.hiero.tags" + "ayon_hiero.lib", + "ayon_hiero.menu", + "ayon_hiero.tags" ): log.info("Reloading module: {}...".format(module)) try: @@ -328,7 +328,7 @@ def on_pyblish_instance_toggled(instance, old_value, new_value): log.info("instance toggle: {}, old_value: {}, new_value:{} ".format( instance, old_value, new_value)) - from ayon_core.hosts.hiero.api import ( + from ayon_hiero.api import ( get_trackitem_openpype_tag, set_publish_attribute ) diff --git a/server_addon/hiero/client/ayon_hiero/api/plugin.py b/server_addon/hiero/client/ayon_hiero/api/plugin.py index 1353673b31..b9f42a88e0 100644 --- a/server_addon/hiero/client/ayon_hiero/api/plugin.py +++ b/server_addon/hiero/client/ayon_hiero/api/plugin.py @@ -600,7 +600,7 @@ class Creator(LegacyCreator): def __init__(self, *args, **kwargs): super(Creator, self).__init__(*args, **kwargs) - import ayon_core.hosts.hiero.api as phiero + import ayon_hiero.api as phiero self.presets = get_current_project_settings()[ "hiero"]["create"].get(self.__class__.__name__, {}) diff --git a/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/Startup.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/Startup.py index cffab8067c..c916bf37e9 100644 --- a/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/Startup.py +++ b/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/Startup.py @@ -2,11 +2,11 @@ import traceback # activate hiero from pype from ayon_core.pipeline import install_host -import ayon_core.hosts.hiero.api as phiero +import ayon_hiero.api as phiero install_host(phiero) try: - __import__("ayon_core.hosts.hiero.api") + __import__("ayon_hiero.api") __import__("pyblish") except ImportError as e: @@ -15,5 +15,5 @@ except ImportError as e: else: # Setup integration - import ayon_core.hosts.hiero.api as phiero + import ayon_hiero.api as phiero phiero.lib.setup() diff --git a/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/otioexporter/OTIOExportTask.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/otioexporter/OTIOExportTask.py index bd5048a832..d4cb342c72 100644 --- a/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/otioexporter/OTIOExportTask.py +++ b/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/otioexporter/OTIOExportTask.py @@ -8,7 +8,7 @@ import hiero.core from hiero.core import util import opentimelineio as otio -from ayon_core.hosts.hiero.api.otio import hiero_export +from ayon_hiero.api.otio import hiero_export class OTIOExportTask(hiero.core.TaskBase): diff --git a/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/otioexporter/OTIOExportUI.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/otioexporter/OTIOExportUI.py index 25aa8bb0cf..131b385f53 100644 --- a/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/otioexporter/OTIOExportUI.py +++ b/server_addon/hiero/client/ayon_hiero/api/startup/Python/Startup/otioexporter/OTIOExportUI.py @@ -22,7 +22,7 @@ except ImportError: FormLayout = QFormLayout # lint:ok -from ayon_core.hosts.hiero.api.otio import hiero_export +from ayon_hiero.api.otio import hiero_export class OTIOExportUI(hiero.ui.TaskUIBase): def __init__(self, preset): diff --git a/server_addon/hiero/client/ayon_hiero/api/startup/Python/StartupUI/otioimporter/__init__.py b/server_addon/hiero/client/ayon_hiero/api/startup/Python/StartupUI/otioimporter/__init__.py index 29507db975..c0f1cc9c67 100644 --- a/server_addon/hiero/client/ayon_hiero/api/startup/Python/StartupUI/otioimporter/__init__.py +++ b/server_addon/hiero/client/ayon_hiero/api/startup/Python/StartupUI/otioimporter/__init__.py @@ -9,7 +9,7 @@ import hiero.core import PySide2.QtWidgets as qw -from ayon_core.hosts.hiero.api.otio.hiero_import import load_otio +from ayon_hiero.api.otio.hiero_import import load_otio class OTIOProjectSelect(qw.QDialog): diff --git a/server_addon/hiero/client/ayon_hiero/plugins/create/create_shot_clip.py b/server_addon/hiero/client/ayon_hiero/plugins/create/create_shot_clip.py index 1fc808fdd1..201cf382e2 100644 --- a/server_addon/hiero/client/ayon_hiero/plugins/create/create_shot_clip.py +++ b/server_addon/hiero/client/ayon_hiero/plugins/create/create_shot_clip.py @@ -1,6 +1,6 @@ from copy import deepcopy -import ayon_core.hosts.hiero.api as phiero -# from ayon_core.hosts.hiero.api import plugin, lib +import ayon_hiero.api as phiero +# from ayon_hiero.api import plugin, lib # reload(lib) # reload(plugin) # reload(phiero) diff --git a/server_addon/hiero/client/ayon_hiero/plugins/load/load_clip.py b/server_addon/hiero/client/ayon_hiero/plugins/load/load_clip.py index 715e8c508e..d93730c735 100644 --- a/server_addon/hiero/client/ayon_hiero/plugins/load/load_clip.py +++ b/server_addon/hiero/client/ayon_hiero/plugins/load/load_clip.py @@ -5,7 +5,7 @@ from ayon_core.lib.transcoding import ( VIDEO_EXTENSIONS, IMAGE_EXTENSIONS ) -import ayon_core.hosts.hiero.api as phiero +import ayon_hiero.api as phiero class LoadClip(phiero.SequenceLoader): diff --git a/server_addon/hiero/client/ayon_hiero/plugins/load/load_effects.py b/server_addon/hiero/client/ayon_hiero/plugins/load/load_effects.py index 92aa2de325..24130f7485 100644 --- a/server_addon/hiero/client/ayon_hiero/plugins/load/load_effects.py +++ b/server_addon/hiero/client/ayon_hiero/plugins/load/load_effects.py @@ -7,7 +7,7 @@ from ayon_core.pipeline import ( load, get_representation_path, ) -from ayon_core.hosts.hiero import api as phiero +from ayon_hiero import api as phiero from ayon_core.lib import Logger diff --git a/server_addon/hiero/client/ayon_hiero/plugins/publish/extract_clip_effects.py b/server_addon/hiero/client/ayon_hiero/plugins/publish/extract_clip_effects.py index 25b52968fa..7ee979c37a 100644 --- a/server_addon/hiero/client/ayon_hiero/plugins/publish/extract_clip_effects.py +++ b/server_addon/hiero/client/ayon_hiero/plugins/publish/extract_clip_effects.py @@ -1,4 +1,3 @@ -# from ayon_core import plugins import os import json import pyblish.api diff --git a/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_instances.py b/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_instances.py index b7a508f0b5..fa2c56182e 100644 --- a/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_instances.py +++ b/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_instances.py @@ -3,8 +3,8 @@ import pyblish from ayon_core.pipeline import AYON_INSTANCE_ID, AVALON_INSTANCE_ID from ayon_core.pipeline.editorial import is_overlapping_otio_ranges -from ayon_core.hosts.hiero import api as phiero -from ayon_core.hosts.hiero.api.otio import hiero_export +from ayon_hiero import api as phiero +from ayon_hiero.api.otio import hiero_export import hiero # # developer reload modules diff --git a/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_workfile.py b/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_workfile.py index 0b6b34ea6c..1dd21b3f21 100644 --- a/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_workfile.py +++ b/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_workfile.py @@ -7,7 +7,7 @@ from qtpy.QtGui import QPixmap import hiero.ui -from ayon_core.hosts.hiero.api.otio import hiero_export +from ayon_hiero.api.otio import hiero_export class PrecollectWorkfile(pyblish.api.ContextPlugin): diff --git a/server_addon/hiero/client/ayon_hiero/plugins/publish_old_workflow/precollect_retime.py b/server_addon/hiero/client/ayon_hiero/plugins/publish_old_workflow/precollect_retime.py index 8503a0b6a7..c511b40abc 100644 --- a/server_addon/hiero/client/ayon_hiero/plugins/publish_old_workflow/precollect_retime.py +++ b/server_addon/hiero/client/ayon_hiero/plugins/publish_old_workflow/precollect_retime.py @@ -1,7 +1,7 @@ from pyblish import api import hiero import math -from ayon_core.hosts.hiero.api.otio.hiero_export import create_otio_time_range +from ayon_hiero.api.otio.hiero_export import create_otio_time_range class PrecollectRetime(api.InstancePlugin): """Calculate Retiming of selected track items.""" From 2b7338b97af79c8581c485af5d0ca44159fb28ff Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 14:08:49 +0200 Subject: [PATCH 45/88] added settings category --- .../client/ayon_hiero/plugins/publish/collect_clip_effects.py | 1 + 1 file changed, 1 insertion(+) diff --git a/server_addon/hiero/client/ayon_hiero/plugins/publish/collect_clip_effects.py b/server_addon/hiero/client/ayon_hiero/plugins/publish/collect_clip_effects.py index bfc63f2551..bd8af3b51a 100644 --- a/server_addon/hiero/client/ayon_hiero/plugins/publish/collect_clip_effects.py +++ b/server_addon/hiero/client/ayon_hiero/plugins/publish/collect_clip_effects.py @@ -9,6 +9,7 @@ class CollectClipEffects(pyblish.api.InstancePlugin): order = pyblish.api.CollectorOrder - 0.078 label = "Collect Clip Effects Instances" families = ["clip"] + settings_category = "hiero" effect_categories = [] From 9457a82ce66227929e17b231efa3f85675d79466 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 14:09:17 +0200 Subject: [PATCH 46/88] added hiero milestone --- client/ayon_core/addon/base.py | 1 + 1 file changed, 1 insertion(+) diff --git a/client/ayon_core/addon/base.py b/client/ayon_core/addon/base.py index d2c072c50c..a8721c55b6 100644 --- a/client/ayon_core/addon/base.py +++ b/client/ayon_core/addon/base.py @@ -55,6 +55,7 @@ MOVED_ADDON_MILESTONE_VERSIONS = { "clockify": VersionInfo(0, 2, 0), "flame": VersionInfo(0, 2, 0), "fusion": VersionInfo(0, 2, 0), + "hiero": VersionInfo(0, 2, 0), "max": VersionInfo(0, 2, 0), "photoshop": VersionInfo(0, 2, 0), "traypublisher": VersionInfo(0, 2, 0), From 87fa03bbb81772d3270e89c0c2f73bcf83f30c25 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 14:11:48 +0200 Subject: [PATCH 47/88] remove settings for not existing plugins --- .../hiero/server/settings/publish_plugins.py | 39 ------------------- 1 file changed, 39 deletions(-) diff --git a/server_addon/hiero/server/settings/publish_plugins.py b/server_addon/hiero/server/settings/publish_plugins.py index 0e43d4ce3a..632bb15241 100644 --- a/server_addon/hiero/server/settings/publish_plugins.py +++ b/server_addon/hiero/server/settings/publish_plugins.py @@ -7,13 +7,6 @@ from ayon_server.settings import ( ) -class CollectInstanceVersionModel(BaseSettingsModel): - enabled: bool = SettingsField( - True, - title="Enabled" - ) - - class CollectClipEffectsDefModel(BaseSettingsModel): _layout = "expanded" name: str = SettingsField("", title="Name") @@ -38,46 +31,14 @@ class CollectClipEffectsModel(BaseSettingsModel): return value -class ExtractReviewCutUpVideoModel(BaseSettingsModel): - enabled: bool = SettingsField( - True, - title="Enabled" - ) - tags_addition: list[str] = SettingsField( - default_factory=list, - title="Additional tags" - ) - - class PublishPluginsModel(BaseSettingsModel): - CollectInstanceVersion: CollectInstanceVersionModel = SettingsField( - default_factory=CollectInstanceVersionModel, - title="Collect Instance Version" - ) CollectClipEffects: CollectClipEffectsModel = SettingsField( default_factory=CollectClipEffectsModel, title="Collect Clip Effects" ) - """# TODO: enhance settings with host api: - Rename class name and plugin name - to match title (it makes more sense) - """ - ExtractReviewCutUpVideo: ExtractReviewCutUpVideoModel = SettingsField( - default_factory=ExtractReviewCutUpVideoModel, - title="Exctract Review Trim" - ) DEFAULT_PUBLISH_PLUGIN_SETTINGS = { - "CollectInstanceVersion": { - "enabled": False, - }, - "ExtractReviewCutUpVideo": { - "enabled": True, - "tags_addition": [ - "review" - ] - }, "CollectClipEffectsModel": { "effect_categories": [] } From ceab71cfa97cc8498beb2e4656e659c5a52a2ac5 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 14:13:47 +0200 Subject: [PATCH 48/88] renamed 'HIERO_ROOT_DIR' to 'HIERO_ADDON_ROOT' --- server_addon/hiero/client/ayon_hiero/__init__.py | 4 ++-- server_addon/hiero/client/ayon_hiero/addon.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/server_addon/hiero/client/ayon_hiero/__init__.py b/server_addon/hiero/client/ayon_hiero/__init__.py index 73a2343f66..2dc490c1e9 100644 --- a/server_addon/hiero/client/ayon_hiero/__init__.py +++ b/server_addon/hiero/client/ayon_hiero/__init__.py @@ -1,6 +1,6 @@ from .version import __version__ from .addon import ( - HIERO_ROOT_DIR, + HIERO_ADDON_ROOT, HieroAddon, ) @@ -8,6 +8,6 @@ from .addon import ( __all__ = ( "__version__", - "HIERO_ROOT_DIR", + "HIERO_ADDON_ROOT", "HieroAddon", ) diff --git a/server_addon/hiero/client/ayon_hiero/addon.py b/server_addon/hiero/client/ayon_hiero/addon.py index 1d2c36c0b3..671e29151b 100644 --- a/server_addon/hiero/client/ayon_hiero/addon.py +++ b/server_addon/hiero/client/ayon_hiero/addon.py @@ -4,7 +4,7 @@ from ayon_core.addon import AYONAddon, IHostAddon from .version import __version__ -HIERO_ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) +HIERO_ADDON_ROOT = os.path.dirname(os.path.abspath(__file__)) class HieroAddon(AYONAddon, IHostAddon): @@ -15,7 +15,7 @@ class HieroAddon(AYONAddon, IHostAddon): def add_implementation_envs(self, env, _app): # Add requirements to HIERO_PLUGIN_PATH new_hiero_paths = [ - os.path.join(HIERO_ROOT_DIR, "api", "startup") + os.path.join(HIERO_ADDON_ROOT, "api", "startup") ] old_hiero_path = env.get("HIERO_PLUGIN_PATH") or "" for path in old_hiero_path.split(os.pathsep): @@ -39,7 +39,7 @@ class HieroAddon(AYONAddon, IHostAddon): python_path_parts = [] if python_path: python_path_parts = python_path.split(os.pathsep) - vendor_path = os.path.join(HIERO_ROOT_DIR, "vendor") + vendor_path = os.path.join(HIERO_ADDON_ROOT, "vendor") python_path_parts.insert(0, vendor_path) env["PYTHONPATH"] = os.pathsep.join(python_path_parts) From 6cf485c733f322ffeb677a21e5b7cce63ec72f4a Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 14:14:44 +0200 Subject: [PATCH 49/88] use 'HIERO_ADDON_ROOT' in api --- server_addon/hiero/client/ayon_hiero/api/pipeline.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/server_addon/hiero/client/ayon_hiero/api/pipeline.py b/server_addon/hiero/client/ayon_hiero/api/pipeline.py index 4a8930ac39..58045c4331 100644 --- a/server_addon/hiero/client/ayon_hiero/api/pipeline.py +++ b/server_addon/hiero/client/ayon_hiero/api/pipeline.py @@ -6,7 +6,9 @@ import os import contextlib from collections import OrderedDict +import hiero from pyblish import api as pyblish + from ayon_core.lib import Logger from ayon_core.pipeline import ( schema, @@ -18,15 +20,14 @@ from ayon_core.pipeline import ( AYON_CONTAINER_ID, ) from ayon_core.tools.utils import host_tools +from ayon_hiero import HIERO_ADDON_ROOT + from . import lib, menu, events -import hiero log = Logger.get_logger(__name__) # plugin paths -API_DIR = os.path.dirname(os.path.abspath(__file__)) -HOST_DIR = os.path.dirname(API_DIR) -PLUGINS_DIR = os.path.join(HOST_DIR, "plugins") +PLUGINS_DIR = os.path.join(HIERO_ADDON_ROOT, "plugins") PUBLISH_PATH = os.path.join(PLUGINS_DIR, "publish").replace("\\", "/") LOAD_PATH = os.path.join(PLUGINS_DIR, "load").replace("\\", "/") CREATE_PATH = os.path.join(PLUGINS_DIR, "create").replace("\\", "/") From 3128c2fc673e7049d977d3e996b93be5f6f32c1b Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 14:25:00 +0200 Subject: [PATCH 50/88] fix ruff ignore --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 63d7434c06..dcb2c65417 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -80,7 +80,7 @@ dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" exclude = [ "client/ayon_core/hosts/unreal/integration/*", "client/ayon_core/hosts/aftereffects/api/extension/js/libs/*", - "client/ayon_core/hosts/hiero/api/startup/*", + "client/ayon_core/server_addon/hiero/client/ayon_hiero/api/startup/*", "client/ayon_core/modules/deadline/repository/custom/plugins/CelAction/*", "client/ayon_core/modules/deadline/repository/custom/plugins/HarmonyAYON/*", "client/ayon_core/modules/click_wrap.py", From 24c8acdb5fab012d3f40fcd80e631910f38b21a1 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 14:37:38 +0200 Subject: [PATCH 51/88] fix ruff ignore one more time --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index dcb2c65417..ca887f2299 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -80,11 +80,11 @@ dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" exclude = [ "client/ayon_core/hosts/unreal/integration/*", "client/ayon_core/hosts/aftereffects/api/extension/js/libs/*", - "client/ayon_core/server_addon/hiero/client/ayon_hiero/api/startup/*", "client/ayon_core/modules/deadline/repository/custom/plugins/CelAction/*", "client/ayon_core/modules/deadline/repository/custom/plugins/HarmonyAYON/*", "client/ayon_core/modules/click_wrap.py", - "client/ayon_core/scripts/slates/__init__.py" + "client/ayon_core/scripts/slates/__init__.py", + "server_addon/hiero/client/ayon_hiero/api/startup/*" ] [tool.ruff.lint.per-file-ignores] From f6417af5d3b5c4663d082927be62f24392f08e2e Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 15:29:26 +0200 Subject: [PATCH 52/88] change ignore for ruff --- pyproject.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 63d7434c06..9cbb4cc172 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -78,13 +78,13 @@ unfixable = [] dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" exclude = [ + "client/ayon_core/scripts/slates/__init__.py", + "client/ayon_core/modules/click_wrap.py", "client/ayon_core/hosts/unreal/integration/*", - "client/ayon_core/hosts/aftereffects/api/extension/js/libs/*", "client/ayon_core/hosts/hiero/api/startup/*", "client/ayon_core/modules/deadline/repository/custom/plugins/CelAction/*", "client/ayon_core/modules/deadline/repository/custom/plugins/HarmonyAYON/*", - "client/ayon_core/modules/click_wrap.py", - "client/ayon_core/scripts/slates/__init__.py" + "server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/*" ] [tool.ruff.lint.per-file-ignores] From 118b4c189f13741426f4ecabd47c4421ad22325b Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 4 Jun 2024 00:53:34 +0800 Subject: [PATCH 53/88] improve version up current workfile and code tweak --- client/ayon_core/pipeline/context_tools.py | 49 +++++++++++++++---- server/settings/tools.py | 19 +++---- .../maya/client/ayon_maya/api/menu.py | 8 +-- 3 files changed, 53 insertions(+), 23 deletions(-) diff --git a/client/ayon_core/pipeline/context_tools.py b/client/ayon_core/pipeline/context_tools.py index f47c1f12f0..a42c509125 100644 --- a/client/ayon_core/pipeline/context_tools.py +++ b/client/ayon_core/pipeline/context_tools.py @@ -11,7 +11,12 @@ from pyblish.lib import MessageHandler from ayon_core import AYON_CORE_ROOT from ayon_core.host import HostBase -from ayon_core.lib import is_in_tests, initialize_ayon_connection, emit_event, version_up +from ayon_core.lib import ( + is_in_tests, + initialize_ayon_connection, + emit_event, + version_up +) from ayon_core.addon import load_addons, AddonsManager from ayon_core.settings import get_project_settings @@ -21,6 +26,8 @@ from .template_data import get_template_data_with_names from .workfile import ( get_workdir, get_custom_workfile_template_by_string_context, + get_workfile_template_key_from_context, + get_last_workfile ) from . import ( register_loader_plugin_path, @@ -581,15 +588,37 @@ def get_process_id(): return _process_id -def version_up_workfile(): +def version_up_current_workfile(): """Function to increment and save workfile """ host = registered_host() - current_file = host.get_current_workfile() - if not current_file: - log.debug( - "Current file is unsaved and can't be versioned up. " - "Please save your file first.") - return None - filepath = version_up(current_file) - host.save_workfile(filepath) + project_name = get_current_project_name() + folder_path = get_current_folder_path() + task_name = get_current_task_name() + host_name = get_current_host_name() + + template_key = get_workfile_template_key_from_context( + project_name, + folder_path, + task_name, + host_name, + ) + anatomy = Anatomy(project_name) + + data = get_template_data_with_names( + project_name, folder_path, task_name, host_name + ) + data["root"] = anatomy.roots + + work_template = anatomy.get_template_item("work", template_key) + + # Define saving file extension + extensions = host.get_workfile_extensions() + + work_root = work_template["directory"].format_strict(data) + file_template = work_template["file"].template + last_workfile_path = get_last_workfile( + work_root, file_template, data, extensions, True + ) + current_workfile_path = version_up(last_workfile_path) + host.save_workfile(current_workfile_path) diff --git a/server/settings/tools.py b/server/settings/tools.py index 0fb11404c9..368543dbda 100644 --- a/server/settings/tools.py +++ b/server/settings/tools.py @@ -118,8 +118,9 @@ class WorkfilesLockProfile(BaseSettingsModel): enabled: bool = SettingsField(True, title="Enabled") -class AyonMenuModel(BaseSettingsModel): - version_up_workfile: bool = SettingsField( +class AYONMenuModel(BaseSettingsModel): + _layout = "expanded" + version_up_current_workfile: bool = SettingsField( False, title="Version Up Workfile", description="Add 'Version Up Workfile' to AYON menu" @@ -127,10 +128,6 @@ class AyonMenuModel(BaseSettingsModel): class WorkfilesToolModel(BaseSettingsModel): - ayon_menu: AyonMenuModel = SettingsField( - default_factory=AyonMenuModel, - title="AYON Menu" - ) workfile_template_profiles: list[WorkfileTemplateProfile] = SettingsField( default_factory=list, title="Workfile template profiles" @@ -280,6 +277,10 @@ class PublishToolModel(BaseSettingsModel): class GlobalToolsModel(BaseSettingsModel): + ayon_menu: AYONMenuModel = SettingsField( + default_factory=AYONMenuModel, + title="Tools" + ) creator: CreatorToolModel = SettingsField( default_factory=CreatorToolModel, title="Creator" @@ -299,6 +300,9 @@ class GlobalToolsModel(BaseSettingsModel): DEFAULT_TOOLS_VALUES = { + "ayon_menu": { + "version_up_current_workfile": False + }, "creator": { "product_types_smart_select": [ { @@ -419,9 +423,6 @@ DEFAULT_TOOLS_VALUES = { ] }, "Workfiles": { - "ayon_menu": { - "version_up_workfile": False - }, "workfile_template_profiles": [ { "task_types": [], diff --git a/server_addon/maya/client/ayon_maya/api/menu.py b/server_addon/maya/client/ayon_maya/api/menu.py index 7eb4e89a9e..a6f8ae2db0 100644 --- a/server_addon/maya/client/ayon_maya/api/menu.py +++ b/server_addon/maya/client/ayon_maya/api/menu.py @@ -25,7 +25,7 @@ from .workfile_template_builder import ( build_workfile_template, update_workfile_template ) -from ayon_core.pipeline.context_tools import version_up_workfile +from ayon_core.pipeline.context_tools import version_up_current_workfile from ayon_core.tools.workfile_template_build import open_template_ui from .workfile_template_builder import MayaTemplateBuilder @@ -75,12 +75,12 @@ def install(project_settings): cmds.setParent("..", menu=True) - if project_settings["core"]["tools"]["Workfiles"]["ayon_menu"].get( - "version_up_workfile"): + if project_settings["core"]["tools"]["ayon_menu"].get( + "version_up_current_workfile"): cmds.menuItem(divider=True) cmds.menuItem( "Version Up Workfile", - command=lambda *args: version_up_workfile() + command=lambda *args: version_up_current_workfile() ) cmds.menuItem(divider=True) From ca307c799cbe19a7baa076d0acd1ef83446db7c3 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Mon, 3 Jun 2024 21:18:52 +0200 Subject: [PATCH 54/88] Expand folders when searching in the folder widgets (Loader + Launcher) --- client/ayon_core/tools/loader/ui/folders_widget.py | 2 ++ client/ayon_core/tools/utils/folders_widget.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/client/ayon_core/tools/loader/ui/folders_widget.py b/client/ayon_core/tools/loader/ui/folders_widget.py index 7b146456da..efd041937d 100644 --- a/client/ayon_core/tools/loader/ui/folders_widget.py +++ b/client/ayon_core/tools/loader/ui/folders_widget.py @@ -321,6 +321,8 @@ class LoaderFoldersWidget(QtWidgets.QWidget): """ self._folders_proxy_model.setFilterFixedString(name) + if name: + self._folders_view.expandAll() def set_merged_products_selection(self, items): """ diff --git a/client/ayon_core/tools/utils/folders_widget.py b/client/ayon_core/tools/utils/folders_widget.py index 2ad640de37..6aae68bf8a 100644 --- a/client/ayon_core/tools/utils/folders_widget.py +++ b/client/ayon_core/tools/utils/folders_widget.py @@ -370,6 +370,8 @@ class FoldersWidget(QtWidgets.QWidget): """ self._folders_proxy_model.setFilterFixedString(name) + if name: + self._folders_view.expandAll() def refresh(self): """Refresh folders model. From fa158d3f4633dc0f7d336f55110eecb142b295d7 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Mon, 3 Jun 2024 23:07:57 +0200 Subject: [PATCH 55/88] Expand tooltip --- .../plugins/workfile_build/assign_look_placeholder.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/server_addon/maya/client/ayon_maya/plugins/workfile_build/assign_look_placeholder.py b/server_addon/maya/client/ayon_maya/plugins/workfile_build/assign_look_placeholder.py index 8c888a1a1f..572c567d04 100644 --- a/server_addon/maya/client/ayon_maya/plugins/workfile_build/assign_look_placeholder.py +++ b/server_addon/maya/client/ayon_maya/plugins/workfile_build/assign_look_placeholder.py @@ -60,7 +60,10 @@ class AssignLookPlaceholderPlugin(MayaPlaceholderPlugin): "recurse", label="Recursive", tooltip="Assign look also to potential sub containers / " - "placeholders loaded from the load placeholder.", + "placeholders loaded from the load placeholder.\n" + "This will make sure that any placeholder contained " + "that itself loaded new geometry will recursively " + "also get the look assignment triggered.", default=options.get("recurse", False) ), ] From 76b9655a64ee06c1d34286b9ce210dcec9188dea Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Mon, 3 Jun 2024 23:09:22 +0200 Subject: [PATCH 56/88] Refactor imports --- .../plugins/workfile_build/assign_look_placeholder.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/server_addon/maya/client/ayon_maya/plugins/workfile_build/assign_look_placeholder.py b/server_addon/maya/client/ayon_maya/plugins/workfile_build/assign_look_placeholder.py index 572c567d04..aaecdd78b9 100644 --- a/server_addon/maya/client/ayon_maya/plugins/workfile_build/assign_look_placeholder.py +++ b/server_addon/maya/client/ayon_maya/plugins/workfile_build/assign_look_placeholder.py @@ -7,10 +7,8 @@ from ayon_core.lib import ( BoolDef ) from ayon_core.lib.events import weakref_partial -from ayon_core.hosts.maya.api.workfile_template_builder import ( - MayaPlaceholderPlugin, -) -from ayon_core.hosts.maya.api.lib import ( +from ayon_maya.api.workfile_template_builder import MayaPlaceholderPlugin +from ayon_maya.api.lib import ( get_all_children, assign_look, ) From c2b35e21416e092dd8d1768a6e04ca9133c95a94 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 4 Jun 2024 12:40:30 +0800 Subject: [PATCH 57/88] code tweaks - big roy's comment --- client/ayon_core/pipeline/context_tools.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/client/ayon_core/pipeline/context_tools.py b/client/ayon_core/pipeline/context_tools.py index a42c509125..1649c927f7 100644 --- a/client/ayon_core/pipeline/context_tools.py +++ b/client/ayon_core/pipeline/context_tools.py @@ -592,6 +592,10 @@ def version_up_current_workfile(): """Function to increment and save workfile """ host = registered_host() + if not host.has_unsaved_changes(): + print("No unsaved changes, skipping file save..") + return + project_name = get_current_project_name() folder_path = get_current_folder_path() task_name = get_current_task_name() @@ -614,11 +618,14 @@ def version_up_current_workfile(): # Define saving file extension extensions = host.get_workfile_extensions() + current_file = host.get_current_workfile() + if current_file: + extensions = [os.path.splitext(current_file)[-1]] work_root = work_template["directory"].format_strict(data) file_template = work_template["file"].template last_workfile_path = get_last_workfile( work_root, file_template, data, extensions, True ) - current_workfile_path = version_up(last_workfile_path) - host.save_workfile(current_workfile_path) + new_workfile_path = version_up(last_workfile_path) + host.save_workfile(new_workfile_path) From fc2b830522d3ecb8595699f35d11f7f585defefe Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Tue, 4 Jun 2024 12:44:47 +0800 Subject: [PATCH 58/88] bump maya addon version --- server_addon/maya/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server_addon/maya/package.py b/server_addon/maya/package.py index 274f74869b..0331fb2fb6 100644 --- a/server_addon/maya/package.py +++ b/server_addon/maya/package.py @@ -1,6 +1,6 @@ name = "maya" title = "Maya" -version = "0.2.0" +version = "0.2.1" ayon_required_addons = { "core": ">0.3.2", From 213742c877e1ea57755591d9fbf9e6028891f1c8 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Tue, 4 Jun 2024 14:55:48 +0200 Subject: [PATCH 59/88] fixing missing families in loader plugin procedure merging https://github.com/ynput/ayon-core/pull/589 --- server_addon/hiero/client/ayon_hiero/api/plugin.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server_addon/hiero/client/ayon_hiero/api/plugin.py b/server_addon/hiero/client/ayon_hiero/api/plugin.py index b9f42a88e0..16eb1d55f3 100644 --- a/server_addon/hiero/client/ayon_hiero/api/plugin.py +++ b/server_addon/hiero/client/ayon_hiero/api/plugin.py @@ -550,7 +550,8 @@ class ClipLoader: log.debug("__ self.timeline_out: {}".format(self.timeline_out)) # check if slate is included - slate_on = "slate" in self.context["version"]["data"]["families"] + slate_on = "slate" in self.context["version"]["data"].get( + "families", []) log.debug("__ slate_on: {}".format(slate_on)) # if slate is on then remove the slate frame from beginning From f83ee81ba046af9ebe0dcce45d0cf91d159f85a5 Mon Sep 17 00:00:00 2001 From: Kayla Man <64118225+moonyuet@users.noreply.github.com> Date: Tue, 4 Jun 2024 22:27:19 +0800 Subject: [PATCH 60/88] Update client/ayon_core/version.py Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> --- client/ayon_core/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/ayon_core/version.py b/client/ayon_core/version.py index efcd78cd11..e4297e2000 100644 --- a/client/ayon_core/version.py +++ b/client/ayon_core/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring AYON core addon version.""" -__version__ = "0.3.4-dev.1" +__version__ = "0.3.3-dev.1" From 3e86be2783efc3acd32997f8f2b52817b83235ef Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Wed, 5 Jun 2024 12:48:37 +0200 Subject: [PATCH 61/88] Refactor loop to handle empty sequence case Adjusted loop to handle empty current sequence by appending an empty list if no tracks are present. --- server_addon/hiero/client/ayon_hiero/api/pipeline.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server_addon/hiero/client/ayon_hiero/api/pipeline.py b/server_addon/hiero/client/ayon_hiero/api/pipeline.py index 58045c4331..d14d255a87 100644 --- a/server_addon/hiero/client/ayon_hiero/api/pipeline.py +++ b/server_addon/hiero/client/ayon_hiero/api/pipeline.py @@ -130,7 +130,7 @@ def ls(): all_items = lib.get_track_items() # append all video tracks - for track in lib.get_current_sequence(): + for track in (lib.get_current_sequence() or []): if type(track) != hiero.core.VideoTrack: continue all_items.append(track) From 48367f2638ebb714d7e187ce71f33a97e8cf01c8 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Wed, 5 Jun 2024 13:47:22 +0200 Subject: [PATCH 62/88] fix circular import --- client/ayon_core/modules/webserver/__init__.py | 2 ++ .../modules/webserver/host_console_listener.py | 18 +++++++----------- .../ayon_core/modules/webserver/structures.py | 6 ++++++ client/ayon_core/tools/stdout_broker/broker.py | 10 +++++----- 4 files changed, 20 insertions(+), 16 deletions(-) create mode 100644 client/ayon_core/modules/webserver/structures.py diff --git a/client/ayon_core/modules/webserver/__init__.py b/client/ayon_core/modules/webserver/__init__.py index a978b94bc4..32f2c55f65 100644 --- a/client/ayon_core/modules/webserver/__init__.py +++ b/client/ayon_core/modules/webserver/__init__.py @@ -1,4 +1,5 @@ from .version import __version__ +from .structures import HostMsgAction from .webserver_module import ( WebServerAddon ) @@ -7,5 +8,6 @@ from .webserver_module import ( __all__ = ( "__version__", + "HostMsgAction", "WebServerAddon", ) diff --git a/client/ayon_core/modules/webserver/host_console_listener.py b/client/ayon_core/modules/webserver/host_console_listener.py index ed8a32b9f2..2efd768e24 100644 --- a/client/ayon_core/modules/webserver/host_console_listener.py +++ b/client/ayon_core/modules/webserver/host_console_listener.py @@ -9,22 +9,18 @@ from qtpy import QtWidgets from ayon_core.addon import ITrayService from ayon_core.tools.stdout_broker.window import ConsoleDialog +from .structures import HostMsgAction + log = logging.getLogger(__name__) +# Host listener icon type class IconType: IDLE = "idle" RUNNING = "running" FAILED = "failed" -class MsgAction: - CONNECTING = "connecting" - INITIALIZED = "initialized" - ADD = "add" - CLOSE = "close" - - class HostListener: def __init__(self, webserver, module): self._window_per_id = {} @@ -96,22 +92,22 @@ class HostListener: if msg.type == aiohttp.WSMsgType.TEXT: host_name, action, text = self._parse_message(msg) - if action == MsgAction.CONNECTING: + if action == HostMsgAction.CONNECTING: self._action_per_id[host_name] = None # must be sent to main thread, or action wont trigger self.module.execute_in_main_thread( lambda: self._host_is_connecting(host_name, text)) - elif action == MsgAction.CLOSE: + elif action == HostMsgAction.CLOSE: # clean close self._close(host_name) await ws.close() - elif action == MsgAction.INITIALIZED: + elif action == HostMsgAction.INITIALIZED: self.module.execute_in_main_thread( # must be queued as _host_is_connecting might not # be triggered/finished yet lambda: self._set_host_icon(host_name, IconType.RUNNING)) - elif action == MsgAction.ADD: + elif action == HostMsgAction.ADD: self.module.execute_in_main_thread( lambda: self._add_text(host_name, text)) elif msg.type == aiohttp.WSMsgType.ERROR: diff --git a/client/ayon_core/modules/webserver/structures.py b/client/ayon_core/modules/webserver/structures.py new file mode 100644 index 0000000000..a598e3342a --- /dev/null +++ b/client/ayon_core/modules/webserver/structures.py @@ -0,0 +1,6 @@ +# Host listener message actions +class HostMsgAction: + CONNECTING = "connecting" + INITIALIZED = "initialized" + ADD = "add" + CLOSE = "close" diff --git a/client/ayon_core/tools/stdout_broker/broker.py b/client/ayon_core/tools/stdout_broker/broker.py index e31eb0057e..291936008b 100644 --- a/client/ayon_core/tools/stdout_broker/broker.py +++ b/client/ayon_core/tools/stdout_broker/broker.py @@ -8,7 +8,7 @@ from datetime import datetime import websocket from ayon_core.lib import Logger -from ayon_core.modules.webserver.host_console_listener import MsgAction +from ayon_core.modules.webserver import HostMsgAction log = Logger.get_logger(__name__) @@ -65,7 +65,7 @@ class StdOutBroker: payload = { "host": self.host_id, - "action": MsgAction.INITIALIZED, + "action": HostMsgAction.INITIALIZED, "text": "Integration with {}".format( str.capitalize(self.host_name)) } @@ -99,7 +99,7 @@ class StdOutBroker: payload = { "host": self.host_id, - "action": MsgAction.CONNECTING, + "action": HostMsgAction.CONNECTING, "text": "Integration with {}".format( str.capitalize(self.host_name)) } @@ -113,7 +113,7 @@ class StdOutBroker: payload = { "host": self.host_id, - "action": MsgAction.CLOSE, + "action": HostMsgAction.CLOSE, "text": "Integration with {}".format( str.capitalize(self.host_name)) } @@ -157,7 +157,7 @@ class StdOutBroker: if lines: payload = { "host": self.host_id, - "action": MsgAction.ADD, + "action": HostMsgAction.ADD, "text": "\n".join(lines) } From 93dd3f2ba421dbcfd1d98fd524170e4411cc19e8 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 5 Jun 2024 21:01:58 +0800 Subject: [PATCH 63/88] menu named AYON menu and add condition check on workfile path save so that workfile is not overwritten --- client/ayon_core/pipeline/context_tools.py | 2 ++ server/settings/tools.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/client/ayon_core/pipeline/context_tools.py b/client/ayon_core/pipeline/context_tools.py index 1649c927f7..8b72405048 100644 --- a/client/ayon_core/pipeline/context_tools.py +++ b/client/ayon_core/pipeline/context_tools.py @@ -628,4 +628,6 @@ def version_up_current_workfile(): work_root, file_template, data, extensions, True ) new_workfile_path = version_up(last_workfile_path) + if os.path.exists(new_workfile_path): + new_workfile_path = version_up(new_workfile_path) host.save_workfile(new_workfile_path) diff --git a/server/settings/tools.py b/server/settings/tools.py index 368543dbda..1d32169954 100644 --- a/server/settings/tools.py +++ b/server/settings/tools.py @@ -279,7 +279,7 @@ class PublishToolModel(BaseSettingsModel): class GlobalToolsModel(BaseSettingsModel): ayon_menu: AYONMenuModel = SettingsField( default_factory=AYONMenuModel, - title="Tools" + title="AYON Menu" ) creator: CreatorToolModel = SettingsField( default_factory=CreatorToolModel, From e4ea0ab94e2ea768bed0216c5e52bc8e9886c607 Mon Sep 17 00:00:00 2001 From: Kayla Man <64118225+moonyuet@users.noreply.github.com> Date: Wed, 5 Jun 2024 22:13:14 +0800 Subject: [PATCH 64/88] Update package.py Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> --- package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.py b/package.py index cea2d84484..73f7174b6f 100644 --- a/package.py +++ b/package.py @@ -1,6 +1,6 @@ name = "core" title = "Core" -version = "0.3.4-dev.1" +version = "0.3.3-dev.1" client_dir = "ayon_core" From 869d3365195c69dc06b1c2ab2b1b7de6ff0e443a Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 5 Jun 2024 22:14:39 +0800 Subject: [PATCH 65/88] code tweaks - big roy's comment --- client/ayon_core/pipeline/context_tools.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/client/ayon_core/pipeline/context_tools.py b/client/ayon_core/pipeline/context_tools.py index 8b72405048..ab44dd014e 100644 --- a/client/ayon_core/pipeline/context_tools.py +++ b/client/ayon_core/pipeline/context_tools.py @@ -624,10 +624,9 @@ def version_up_current_workfile(): work_root = work_template["directory"].format_strict(data) file_template = work_template["file"].template - last_workfile_path = get_last_workfile( + workfile_path = get_last_workfile( work_root, file_template, data, extensions, True ) - new_workfile_path = version_up(last_workfile_path) - if os.path.exists(new_workfile_path): - new_workfile_path = version_up(new_workfile_path) - host.save_workfile(new_workfile_path) + if os.path.exists(workfile_path): + workfile_path = version_up(workfile_path) + host.save_workfile(workfile_path) From 5310fd734106c582ab9968eb8578cfbc923a17d2 Mon Sep 17 00:00:00 2001 From: Kayla Man Date: Wed, 5 Jun 2024 22:44:16 +0800 Subject: [PATCH 66/88] add the condition back --- client/ayon_core/pipeline/context_tools.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/client/ayon_core/pipeline/context_tools.py b/client/ayon_core/pipeline/context_tools.py index ab44dd014e..8b72405048 100644 --- a/client/ayon_core/pipeline/context_tools.py +++ b/client/ayon_core/pipeline/context_tools.py @@ -624,9 +624,10 @@ def version_up_current_workfile(): work_root = work_template["directory"].format_strict(data) file_template = work_template["file"].template - workfile_path = get_last_workfile( + last_workfile_path = get_last_workfile( work_root, file_template, data, extensions, True ) - if os.path.exists(workfile_path): - workfile_path = version_up(workfile_path) - host.save_workfile(workfile_path) + new_workfile_path = version_up(last_workfile_path) + if os.path.exists(new_workfile_path): + new_workfile_path = version_up(new_workfile_path) + host.save_workfile(new_workfile_path) From 8f17ebe99e46bd3897773f2ae21828b569f761d6 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Wed, 5 Jun 2024 17:55:08 +0200 Subject: [PATCH 67/88] Nice and shiny settings title for `Validate Outdated Containers` --- server/settings/publish_plugins.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/settings/publish_plugins.py b/server/settings/publish_plugins.py index 2640a3db37..4191cccb7b 100644 --- a/server/settings/publish_plugins.py +++ b/server/settings/publish_plugins.py @@ -798,7 +798,7 @@ class PublishPuginsModel(BaseSettingsModel): ) ValidateOutdatedContainers: PluginStateByHostModel = SettingsField( default_factory=PluginStateByHostModel, - title="Validate Containers" + title="Validate Outdated Containers" ) ValidateIntent: ValidateIntentModel = SettingsField( default_factory=ValidateIntentModel, From 8b1819698050b7c30fff8af7deefeb94f24f9c0d Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Wed, 5 Jun 2024 18:08:18 +0200 Subject: [PATCH 68/88] wrap 'get_containers' to try except --- client/ayon_core/tools/loader/control.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/client/ayon_core/tools/loader/control.py b/client/ayon_core/tools/loader/control.py index 35188369c2..9eb6fa1301 100644 --- a/client/ayon_core/tools/loader/control.py +++ b/client/ayon_core/tools/loader/control.py @@ -348,10 +348,18 @@ class LoaderController(BackendLoaderController, FrontendLoaderController): return set() if not self._loaded_products_cache.is_valid: - if isinstance(self._host, ILoadHost): - containers = self._host.get_containers() - else: - containers = self._host.ls() + try: + if isinstance(self._host, ILoadHost): + containers = self._host.get_containers() + else: + containers = self._host.ls() + + except BaseException: + self.log.error( + "Falied to collect loaded products.", exc_info=True + ) + containers = [] + repre_ids = set() for container in containers: repre_id = container.get("representation") From fbec72af402ba96908383cbd642702737b7133cc Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Wed, 5 Jun 2024 18:22:13 +0200 Subject: [PATCH 69/88] moved royal integration next to server codebase --- .../client/ayon_royalrender}/__init__.py | 0 .../royalrender/client/ayon_royalrender}/addon.py | 0 .../royalrender/client/ayon_royalrender}/api.py | 0 .../royalrender/client/ayon_royalrender}/lib.py | 0 .../publish/collect_rr_path_from_instance.py | 0 .../plugins/publish/collect_sequences_from_job.py | 0 .../plugins/publish/create_maya_royalrender_job.py | 0 .../plugins/publish/create_nuke_royalrender_job.py | 0 .../publish/create_publish_royalrender_job.py | 0 .../plugins/publish/submit_jobs_to_royalrender.py | 0 .../royalrender/client/ayon_royalrender}/rr_job.py | 0 .../client/ayon_royalrender}/rr_root/README.md | 0 .../perjob/m50__openpype_publish_render.py | 0 .../rr_root/render_apps/_config/E01__OpenPype.png | Bin .../_config/E01__OpenPype__PublishJob.cfg | 0 .../render_apps/_config/E01__OpenPype___global.inc | 0 .../rr_root/render_apps/_install_paths/OpenPype.cfg | 0 .../_prepost_scripts/OpenPypeEnvironment.cfg | 0 .../PreOpenPypeInjectEnvironments.py | 0 .../royalrender/client/ayon_royalrender}/version.py | 0 20 files changed, 0 insertions(+), 0 deletions(-) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/__init__.py (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/addon.py (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/api.py (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/lib.py (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/plugins/publish/collect_rr_path_from_instance.py (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/plugins/publish/collect_sequences_from_job.py (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/plugins/publish/create_maya_royalrender_job.py (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/plugins/publish/create_nuke_royalrender_job.py (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/plugins/publish/create_publish_royalrender_job.py (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/plugins/publish/submit_jobs_to_royalrender.py (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/rr_job.py (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/rr_root/README.md (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/rr_root/plugins/control_job/perjob/m50__openpype_publish_render.py (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/rr_root/render_apps/_config/E01__OpenPype.png (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/rr_root/render_apps/_config/E01__OpenPype__PublishJob.cfg (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/rr_root/render_apps/_config/E01__OpenPype___global.inc (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/rr_root/render_apps/_install_paths/OpenPype.cfg (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/rr_root/render_apps/_prepost_scripts/OpenPypeEnvironment.cfg (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/rr_root/render_apps/_prepost_scripts/PreOpenPypeInjectEnvironments.py (100%) rename {client/ayon_core/modules/royalrender => server_addon/royalrender/client/ayon_royalrender}/version.py (100%) diff --git a/client/ayon_core/modules/royalrender/__init__.py b/server_addon/royalrender/client/ayon_royalrender/__init__.py similarity index 100% rename from client/ayon_core/modules/royalrender/__init__.py rename to server_addon/royalrender/client/ayon_royalrender/__init__.py diff --git a/client/ayon_core/modules/royalrender/addon.py b/server_addon/royalrender/client/ayon_royalrender/addon.py similarity index 100% rename from client/ayon_core/modules/royalrender/addon.py rename to server_addon/royalrender/client/ayon_royalrender/addon.py diff --git a/client/ayon_core/modules/royalrender/api.py b/server_addon/royalrender/client/ayon_royalrender/api.py similarity index 100% rename from client/ayon_core/modules/royalrender/api.py rename to server_addon/royalrender/client/ayon_royalrender/api.py diff --git a/client/ayon_core/modules/royalrender/lib.py b/server_addon/royalrender/client/ayon_royalrender/lib.py similarity index 100% rename from client/ayon_core/modules/royalrender/lib.py rename to server_addon/royalrender/client/ayon_royalrender/lib.py diff --git a/client/ayon_core/modules/royalrender/plugins/publish/collect_rr_path_from_instance.py b/server_addon/royalrender/client/ayon_royalrender/plugins/publish/collect_rr_path_from_instance.py similarity index 100% rename from client/ayon_core/modules/royalrender/plugins/publish/collect_rr_path_from_instance.py rename to server_addon/royalrender/client/ayon_royalrender/plugins/publish/collect_rr_path_from_instance.py diff --git a/client/ayon_core/modules/royalrender/plugins/publish/collect_sequences_from_job.py b/server_addon/royalrender/client/ayon_royalrender/plugins/publish/collect_sequences_from_job.py similarity index 100% rename from client/ayon_core/modules/royalrender/plugins/publish/collect_sequences_from_job.py rename to server_addon/royalrender/client/ayon_royalrender/plugins/publish/collect_sequences_from_job.py diff --git a/client/ayon_core/modules/royalrender/plugins/publish/create_maya_royalrender_job.py b/server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_maya_royalrender_job.py similarity index 100% rename from client/ayon_core/modules/royalrender/plugins/publish/create_maya_royalrender_job.py rename to server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_maya_royalrender_job.py diff --git a/client/ayon_core/modules/royalrender/plugins/publish/create_nuke_royalrender_job.py b/server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_nuke_royalrender_job.py similarity index 100% rename from client/ayon_core/modules/royalrender/plugins/publish/create_nuke_royalrender_job.py rename to server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_nuke_royalrender_job.py diff --git a/client/ayon_core/modules/royalrender/plugins/publish/create_publish_royalrender_job.py b/server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_publish_royalrender_job.py similarity index 100% rename from client/ayon_core/modules/royalrender/plugins/publish/create_publish_royalrender_job.py rename to server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_publish_royalrender_job.py diff --git a/client/ayon_core/modules/royalrender/plugins/publish/submit_jobs_to_royalrender.py b/server_addon/royalrender/client/ayon_royalrender/plugins/publish/submit_jobs_to_royalrender.py similarity index 100% rename from client/ayon_core/modules/royalrender/plugins/publish/submit_jobs_to_royalrender.py rename to server_addon/royalrender/client/ayon_royalrender/plugins/publish/submit_jobs_to_royalrender.py diff --git a/client/ayon_core/modules/royalrender/rr_job.py b/server_addon/royalrender/client/ayon_royalrender/rr_job.py similarity index 100% rename from client/ayon_core/modules/royalrender/rr_job.py rename to server_addon/royalrender/client/ayon_royalrender/rr_job.py diff --git a/client/ayon_core/modules/royalrender/rr_root/README.md b/server_addon/royalrender/client/ayon_royalrender/rr_root/README.md similarity index 100% rename from client/ayon_core/modules/royalrender/rr_root/README.md rename to server_addon/royalrender/client/ayon_royalrender/rr_root/README.md diff --git a/client/ayon_core/modules/royalrender/rr_root/plugins/control_job/perjob/m50__openpype_publish_render.py b/server_addon/royalrender/client/ayon_royalrender/rr_root/plugins/control_job/perjob/m50__openpype_publish_render.py similarity index 100% rename from client/ayon_core/modules/royalrender/rr_root/plugins/control_job/perjob/m50__openpype_publish_render.py rename to server_addon/royalrender/client/ayon_royalrender/rr_root/plugins/control_job/perjob/m50__openpype_publish_render.py diff --git a/client/ayon_core/modules/royalrender/rr_root/render_apps/_config/E01__OpenPype.png b/server_addon/royalrender/client/ayon_royalrender/rr_root/render_apps/_config/E01__OpenPype.png similarity index 100% rename from client/ayon_core/modules/royalrender/rr_root/render_apps/_config/E01__OpenPype.png rename to server_addon/royalrender/client/ayon_royalrender/rr_root/render_apps/_config/E01__OpenPype.png diff --git a/client/ayon_core/modules/royalrender/rr_root/render_apps/_config/E01__OpenPype__PublishJob.cfg b/server_addon/royalrender/client/ayon_royalrender/rr_root/render_apps/_config/E01__OpenPype__PublishJob.cfg similarity index 100% rename from client/ayon_core/modules/royalrender/rr_root/render_apps/_config/E01__OpenPype__PublishJob.cfg rename to server_addon/royalrender/client/ayon_royalrender/rr_root/render_apps/_config/E01__OpenPype__PublishJob.cfg diff --git a/client/ayon_core/modules/royalrender/rr_root/render_apps/_config/E01__OpenPype___global.inc b/server_addon/royalrender/client/ayon_royalrender/rr_root/render_apps/_config/E01__OpenPype___global.inc similarity index 100% rename from client/ayon_core/modules/royalrender/rr_root/render_apps/_config/E01__OpenPype___global.inc rename to server_addon/royalrender/client/ayon_royalrender/rr_root/render_apps/_config/E01__OpenPype___global.inc diff --git a/client/ayon_core/modules/royalrender/rr_root/render_apps/_install_paths/OpenPype.cfg b/server_addon/royalrender/client/ayon_royalrender/rr_root/render_apps/_install_paths/OpenPype.cfg similarity index 100% rename from client/ayon_core/modules/royalrender/rr_root/render_apps/_install_paths/OpenPype.cfg rename to server_addon/royalrender/client/ayon_royalrender/rr_root/render_apps/_install_paths/OpenPype.cfg diff --git a/client/ayon_core/modules/royalrender/rr_root/render_apps/_prepost_scripts/OpenPypeEnvironment.cfg b/server_addon/royalrender/client/ayon_royalrender/rr_root/render_apps/_prepost_scripts/OpenPypeEnvironment.cfg similarity index 100% rename from client/ayon_core/modules/royalrender/rr_root/render_apps/_prepost_scripts/OpenPypeEnvironment.cfg rename to server_addon/royalrender/client/ayon_royalrender/rr_root/render_apps/_prepost_scripts/OpenPypeEnvironment.cfg diff --git a/client/ayon_core/modules/royalrender/rr_root/render_apps/_prepost_scripts/PreOpenPypeInjectEnvironments.py b/server_addon/royalrender/client/ayon_royalrender/rr_root/render_apps/_prepost_scripts/PreOpenPypeInjectEnvironments.py similarity index 100% rename from client/ayon_core/modules/royalrender/rr_root/render_apps/_prepost_scripts/PreOpenPypeInjectEnvironments.py rename to server_addon/royalrender/client/ayon_royalrender/rr_root/render_apps/_prepost_scripts/PreOpenPypeInjectEnvironments.py diff --git a/client/ayon_core/modules/royalrender/version.py b/server_addon/royalrender/client/ayon_royalrender/version.py similarity index 100% rename from client/ayon_core/modules/royalrender/version.py rename to server_addon/royalrender/client/ayon_royalrender/version.py From 9e18a1d533fc18cac9f3014059982d6904bdb7c1 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Wed, 5 Jun 2024 18:22:40 +0200 Subject: [PATCH 70/88] fixed imports --- server_addon/royalrender/client/ayon_royalrender/lib.py | 4 ++-- .../plugins/publish/collect_rr_path_from_instance.py | 2 +- .../plugins/publish/create_maya_royalrender_job.py | 2 +- .../plugins/publish/create_nuke_royalrender_job.py | 2 +- .../plugins/publish/create_publish_royalrender_job.py | 2 +- .../plugins/publish/submit_jobs_to_royalrender.py | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/server_addon/royalrender/client/ayon_royalrender/lib.py b/server_addon/royalrender/client/ayon_royalrender/lib.py index 82bc96e759..ec67cfa29e 100644 --- a/server_addon/royalrender/client/ayon_royalrender/lib.py +++ b/server_addon/royalrender/client/ayon_royalrender/lib.py @@ -16,8 +16,8 @@ from ayon_core.lib import ( is_in_tests, ) from ayon_core.lib.execute import run_ayon_launcher_process -from ayon_core.modules.royalrender.api import Api as rrApi -from ayon_core.modules.royalrender.rr_job import ( +from ayon_royalrender.api import Api as rrApi +from ayon_royalrender.rr_job import ( CustomAttribute, RRJob, RREnvList, diff --git a/server_addon/royalrender/client/ayon_royalrender/plugins/publish/collect_rr_path_from_instance.py b/server_addon/royalrender/client/ayon_royalrender/plugins/publish/collect_rr_path_from_instance.py index 7fad573a8b..e3c3ddc74b 100644 --- a/server_addon/royalrender/client/ayon_royalrender/plugins/publish/collect_rr_path_from_instance.py +++ b/server_addon/royalrender/client/ayon_royalrender/plugins/publish/collect_rr_path_from_instance.py @@ -8,7 +8,7 @@ Provides: import os.path import pyblish.api -from ayon_core.modules.royalrender.rr_job import get_rr_platform +from ayon_royalrender.rr_job import get_rr_platform class CollectRRPathFromInstance(pyblish.api.InstancePlugin): diff --git a/server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_maya_royalrender_job.py b/server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_maya_royalrender_job.py index d205b32b7d..4e52e8e24b 100644 --- a/server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_maya_royalrender_job.py +++ b/server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_maya_royalrender_job.py @@ -4,7 +4,7 @@ import os from maya.OpenMaya import MGlobal # noqa: F401 -from ayon_core.modules.royalrender import lib +from ayon_royalrender import lib from ayon_core.pipeline.farm.tools import iter_expected_files diff --git a/server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_nuke_royalrender_job.py b/server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_nuke_royalrender_job.py index 9a3bf3624b..442485d211 100644 --- a/server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_nuke_royalrender_job.py +++ b/server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_nuke_royalrender_job.py @@ -2,7 +2,7 @@ """Submitting render job to RoyalRender.""" import re -from ayon_core.modules.royalrender import lib +from ayon_royalrender import lib class CreateNukeRoyalRenderJob(lib.BaseCreateRoyalRenderJob): diff --git a/server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_publish_royalrender_job.py b/server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_publish_royalrender_job.py index 51500f84f5..0bc092ecd8 100644 --- a/server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_publish_royalrender_job.py +++ b/server_addon/royalrender/client/ayon_royalrender/plugins/publish/create_publish_royalrender_job.py @@ -6,7 +6,7 @@ import json import pyblish.api -from ayon_core.modules.royalrender.rr_job import ( +from ayon_royalrender.rr_job import ( RRJob, RREnvList, get_rr_platform diff --git a/server_addon/royalrender/client/ayon_royalrender/plugins/publish/submit_jobs_to_royalrender.py b/server_addon/royalrender/client/ayon_royalrender/plugins/publish/submit_jobs_to_royalrender.py index 09c1dc4a54..72a27dab2d 100644 --- a/server_addon/royalrender/client/ayon_royalrender/plugins/publish/submit_jobs_to_royalrender.py +++ b/server_addon/royalrender/client/ayon_royalrender/plugins/publish/submit_jobs_to_royalrender.py @@ -3,7 +3,7 @@ import tempfile import pyblish.api -from ayon_core.modules.royalrender.api import ( +from ayon_royalrender.api import ( RRJob, Api as rrApi, SubmitterParameter From 20b451c44921158af229c1269932d33815f648b9 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Wed, 5 Jun 2024 18:22:50 +0200 Subject: [PATCH 71/88] bumped version --- server_addon/royalrender/client/ayon_royalrender/version.py | 4 +++- server_addon/royalrender/package.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/server_addon/royalrender/client/ayon_royalrender/version.py b/server_addon/royalrender/client/ayon_royalrender/version.py index 485f44ac21..4528939205 100644 --- a/server_addon/royalrender/client/ayon_royalrender/version.py +++ b/server_addon/royalrender/client/ayon_royalrender/version.py @@ -1 +1,3 @@ -__version__ = "0.1.1" +# -*- coding: utf-8 -*- +"""Package declaring AYON addon 'royalrender' version.""" +__version__ = "0.2.0" diff --git a/server_addon/royalrender/package.py b/server_addon/royalrender/package.py index 1fdea4abbb..49199a2386 100644 --- a/server_addon/royalrender/package.py +++ b/server_addon/royalrender/package.py @@ -1,3 +1,3 @@ name = "royalrender" title = "Royal Render" -version = "0.1.1" +version = "0.2.0" From b44ed889b96bd85532c4e202814352f59833ef6d Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Wed, 5 Jun 2024 18:23:01 +0200 Subject: [PATCH 72/88] define client dir and added core dependency --- server_addon/royalrender/package.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/server_addon/royalrender/package.py b/server_addon/royalrender/package.py index 49199a2386..2a07b59f65 100644 --- a/server_addon/royalrender/package.py +++ b/server_addon/royalrender/package.py @@ -1,3 +1,10 @@ name = "royalrender" title = "Royal Render" version = "0.2.0" + +client_dir = "ayon_royalrender" + +ayon_required_addons = { + "core": ">0.3.2", +} +ayon_compatible_addons = {} From 4ec65f4cf6b3ef1386bc3f939e817792765990c2 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Wed, 5 Jun 2024 18:23:38 +0200 Subject: [PATCH 73/88] define royalrender milestone --- client/ayon_core/addon/base.py | 1 + 1 file changed, 1 insertion(+) diff --git a/client/ayon_core/addon/base.py b/client/ayon_core/addon/base.py index 77bf8ff4f6..a257c83b09 100644 --- a/client/ayon_core/addon/base.py +++ b/client/ayon_core/addon/base.py @@ -64,6 +64,7 @@ MOVED_ADDON_MILESTONE_VERSIONS = { "maya": VersionInfo(0, 2, 0), "nuke": VersionInfo(0, 2, 0), "resolve": VersionInfo(0, 2, 0), + "royalrender": VersionInfo(0, 2, 0), "substancepainter": VersionInfo(0, 2, 0), "houdini": VersionInfo(0, 3, 0), } From 84cac2a1468ba7db9755d52c969f1c1c247a356d Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Wed, 5 Jun 2024 19:15:34 +0200 Subject: [PATCH 74/88] create/copy files only if needed --- server_addon/create_ayon_addons.py | 196 ++++++++++++++--------------- 1 file changed, 95 insertions(+), 101 deletions(-) diff --git a/server_addon/create_ayon_addons.py b/server_addon/create_ayon_addons.py index 749077d2a8..ac053c8e09 100644 --- a/server_addon/create_ayon_addons.py +++ b/server_addon/create_ayon_addons.py @@ -1,3 +1,4 @@ +import io import os import sys import re @@ -9,7 +10,7 @@ import importlib.machinery import platform import collections from pathlib import Path -from typing import Any, Optional, Iterable, Pattern, List, Tuple +from typing import Optional, Iterable, Pattern, List, Tuple # Patterns of directories to be skipped for server part of addon IGNORE_DIR_PATTERNS: List[Pattern] = [ @@ -70,9 +71,7 @@ class ZipFileLongPaths(zipfile.ZipFile): else: tpath = "\\\\?\\" + tpath - return super(ZipFileLongPaths, self)._extract_member( - member, tpath, pwd - ) + return super()._extract_member(member, tpath, pwd) def _value_match_regexes(value: str, regexes: Iterable[Pattern]) -> bool: @@ -86,7 +85,7 @@ def find_files_in_subdir( src_path: str, ignore_file_patterns: Optional[List[Pattern]] = None, ignore_dir_patterns: Optional[List[Pattern]] = None, - ignore_subdirs: Optional[Iterable[Tuple[str]]] = None + include_empty_dirs: bool = True ): """Find all files to copy in subdirectories of given path. @@ -100,8 +99,7 @@ def find_files_in_subdir( to match files to ignore. ignore_dir_patterns (Optional[List[Pattern]]): List of regexes to match directories to ignore. - ignore_subdirs (Optional[Iterable[Tuple[str]]]): List of - subdirectories to ignore. + include_empty_dirs (Optional[bool]): Do not skip empty directories. Returns: List[Tuple[str, str]]: List of tuples with path to file and parent @@ -113,16 +111,18 @@ def find_files_in_subdir( if ignore_dir_patterns is None: ignore_dir_patterns = IGNORE_DIR_PATTERNS - output: list[tuple[str, str]] = [] + output: List[Tuple[str, str]] = [] hierarchy_queue = collections.deque() hierarchy_queue.append((src_path, [])) while hierarchy_queue: - item: tuple[str, str] = hierarchy_queue.popleft() + item: Tuple[str, List[str]] = hierarchy_queue.popleft() dirpath, parents = item - if ignore_subdirs and parents in ignore_subdirs: - continue - for name in os.listdir(dirpath): + subnames = list(os.listdir(dirpath)) + if not subnames and include_empty_dirs: + output.append((dirpath, os.path.sep.join(parents))) + + for name in subnames: path = os.path.join(dirpath, name) if os.path.isfile(path): if not _value_match_regexes(name, ignore_file_patterns): @@ -139,89 +139,54 @@ def find_files_in_subdir( return output -def read_addon_version(version_path: Path) -> str: - # Read version - version_content: dict[str, Any] = {} - with open(str(version_path), "r") as stream: - exec(stream.read(), version_content) - return version_content["__version__"] - - -def get_addon_version(addon_dir: Path) -> str: - return read_addon_version(addon_dir / "server" / "version.py") - - def create_addon_zip( output_dir: Path, addon_name: str, addon_version: str, - keep_source: bool, + files_mapping: List[Tuple[str, str]], + client_zip_content: io.BytesIO ): zip_filepath = output_dir / f"{addon_name}-{addon_version}.zip" - addon_output_dir = output_dir / addon_name / addon_version with ZipFileLongPaths(zip_filepath, "w", zipfile.ZIP_DEFLATED) as zipf: - # Add client code content to zip - src_root = os.path.normpath(str(addon_output_dir.absolute())) - src_root_offset = len(src_root) + 1 - for root, _, filenames in os.walk(str(addon_output_dir)): - rel_root = "" - if root != src_root: - rel_root = root[src_root_offset:] + for src_path, dst_subpath in files_mapping: + zipf.write(src_path, dst_subpath) - for filename in filenames: - src_path = os.path.join(root, filename) - if rel_root: - dst_path = os.path.join(rel_root, filename) - else: - dst_path = filename - - zipf.write(src_path, dst_path) - - if not keep_source: - shutil.rmtree(str(output_dir / addon_name)) + if client_zip_content is not None: + zipf.writestr("private/client.zip", client_zip_content.getvalue()) -def prepare_client_code( - addon_name: str, +def prepare_client_zip( addon_dir: Path, - addon_output_dir: Path, - addon_version: str + addon_name: str, + addon_version: str, + client_dir: str ): - client_dir = addon_dir / "client" - if not client_dir.exists(): - return + if not client_dir: + return None + client_dir_obj = addon_dir / "client" / client_dir + if not client_dir_obj.exists(): + return None - # Prepare private dir in output - private_dir = addon_output_dir / "private" - private_dir.mkdir(parents=True, exist_ok=True) + # Update version.py with server version if 'version.py' is available + version_path = client_dir_obj / "version.py" + if version_path.exists(): + with open(version_path, "w") as stream: + stream.write( + CLIENT_VERSION_CONTENT.format(addon_name, addon_version) + ) - # Copy pyproject toml if available - pyproject_toml = client_dir / "pyproject.toml" - if pyproject_toml.exists(): - shutil.copy(pyproject_toml, private_dir) + zip_content = io.BytesIO() + with ZipFileLongPaths(zip_content, "a", zipfile.ZIP_DEFLATED) as zipf: + # Add client code content to zip + for path, sub_path in find_files_in_subdir( + str(client_dir_obj), include_empty_dirs=False + ): + sub_path = os.path.join(client_dir, sub_path) + zipf.write(path, sub_path) - for subpath in client_dir.iterdir(): - if subpath.name == "pyproject.toml": - continue - - if subpath.is_file(): - continue - - # Update version.py with server version if 'version.py' is available - version_path = subpath / "version.py" - if version_path.exists(): - with open(version_path, "w") as stream: - stream.write( - CLIENT_VERSION_CONTENT.format(addon_name, addon_version) - ) - - zip_filepath = private_dir / "client.zip" - with ZipFileLongPaths(zip_filepath, "w", zipfile.ZIP_DEFLATED) as zipf: - # Add client code content to zip - for path, sub_path in find_files_in_subdir(str(subpath)): - sub_path = os.path.join(subpath.name, sub_path) - zipf.write(path, sub_path) + zip_content.seek(0) + return zip_content def import_filepath(path: Path, module_name: Optional[str] = None): @@ -241,44 +206,73 @@ def import_filepath(path: Path, module_name: Optional[str] = None): return module +def _get_server_mapping( + addon_dir: Path, addon_version: str +) -> List[Tuple[str, str]]: + server_dir = addon_dir / "server" + src_package_py = addon_dir / "package.py" + pyproject_toml = addon_dir / "client" / "pyproject.toml" + + mapping: List[Tuple[str, str]] = [ + (src_path, f"server/{sub_path}") + for src_path, sub_path in find_files_in_subdir(str(server_dir)) + ] + mapping.append((src_package_py.as_posix(), "package.py")) + if pyproject_toml.exists(): + mapping.append((pyproject_toml.as_posix(), "private/pyproject.toml")) + + return mapping + + def create_addon_package( addon_dir: Path, output_dir: Path, create_zip: bool, - keep_source: bool, ): src_package_py = addon_dir / "package.py" + package = import_filepath(src_package_py) + addon_name = package.name addon_version = package.version - addon_output_dir = output_dir / addon_dir.name / addon_version - if addon_output_dir.exists(): - shutil.rmtree(str(addon_output_dir)) - addon_output_dir.mkdir(parents=True) + files_mapping = _get_server_mapping(addon_dir, addon_version) - # Copy server content - dst_package_py = addon_output_dir / "package.py" - shutil.copy(src_package_py, dst_package_py) - - server_dir = addon_dir / "server" - shutil.copytree( - server_dir, addon_output_dir / "server", dirs_exist_ok=True - ) - - prepare_client_code( - package.name, addon_dir, addon_output_dir, addon_version + client_dir = getattr(package, "client_dir", None) + client_zip_content = prepare_client_zip( + addon_dir, addon_name, addon_version, client_dir ) if create_zip: create_addon_zip( - output_dir, addon_dir.name, addon_version, keep_source + output_dir, + addon_name, + addon_version, + files_mapping, + client_zip_content ) + else: + addon_output_dir = output_dir / addon_dir.name / addon_version + if addon_output_dir.exists(): + shutil.rmtree(str(addon_output_dir)) + + addon_output_dir.mkdir(parents=True, exist_ok=True) + + for src_path, dst_subpath in files_mapping: + dst_path = addon_output_dir / dst_subpath + dst_path.parent.mkdir(parents=True, exist_ok=True) + shutil.copy2(src_path, dst_path) + + if client_zip_content is not None: + private_dir = addon_output_dir / "private" + private_dir.mkdir(parents=True, exist_ok=True) + with open(private_dir / "client.zip", "wb") as stream: + stream.write(client_zip_content.read()) + def main( output_dir=None, skip_zip=True, - keep_source=False, clear_output_dir=False, addons=None, ): @@ -313,9 +307,7 @@ def main( if not server_dir.exists(): continue - create_addon_package( - addon_dir, output_dir, create_zip, keep_source - ) + create_addon_package(addon_dir, output_dir, create_zip) print(f"- package '{addon_dir.name}' created") print(f"Package creation finished. Output directory: {output_dir}") @@ -366,10 +358,12 @@ if __name__ == "__main__": ) args = parser.parse_args(sys.argv[1:]) + if args.keep_sources: + print("Keeping sources is not supported anymore!") + main( args.output_dir, args.skip_zip, - args.keep_sources, args.clear_output_dir, args.addons, ) From 09fd532c57b851bcb8a4b3991df9bca2d35ce5fc Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Wed, 5 Jun 2024 19:15:43 +0200 Subject: [PATCH 75/88] fix version in houdini addon --- server_addon/houdini/client/ayon_houdini/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server_addon/houdini/client/ayon_houdini/version.py b/server_addon/houdini/client/ayon_houdini/version.py index a30c770e1d..1b06708904 100644 --- a/server_addon/houdini/client/ayon_houdini/version.py +++ b/server_addon/houdini/client/ayon_houdini/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- -"""Package declaring Houdini addon version.""" +"""Package declaring AYON addon 'houdini' version.""" __version__ = "0.3.0" From 42b1d5ee12bc0a90fa06e6edcface268547ef811 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 09:36:12 +0200 Subject: [PATCH 76/88] fix typo Co-authored-by: Roy Nieterau --- client/ayon_core/tools/loader/control.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/ayon_core/tools/loader/control.py b/client/ayon_core/tools/loader/control.py index 9eb6fa1301..9fead226f0 100644 --- a/client/ayon_core/tools/loader/control.py +++ b/client/ayon_core/tools/loader/control.py @@ -356,7 +356,7 @@ class LoaderController(BackendLoaderController, FrontendLoaderController): except BaseException: self.log.error( - "Falied to collect loaded products.", exc_info=True + "Failed to collect loaded products.", exc_info=True ) containers = [] From edc798672a05af8ee55daca86fbb1b924d814f42 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 11:17:41 +0200 Subject: [PATCH 77/88] Remove duplicated line --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ce0cc80864..2f30778519 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -78,7 +78,6 @@ unfixable = [] dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" exclude = [ - "client/ayon_core/scripts/slates/__init__.py", "client/ayon_core/hosts/unreal/integration/*", "client/ayon_core/modules/deadline/repository/custom/plugins/CelAction/*", "client/ayon_core/modules/deadline/repository/custom/plugins/HarmonyAYON/*", From 6bcceba013415ab6406cce6edd0fa2a8d5268ab9 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 14:04:54 +0200 Subject: [PATCH 78/88] move deadline integration next to server codebase --- .../deadline/client/ayon_deadline}/__init__.py | 0 .../ayon_deadline}/abstract_submit_deadline.py | 0 .../client/ayon_deadline}/deadline_module.py | 0 .../collect_deadline_server_from_instance.py | 0 .../publish/collect_default_deadline_server.py | 0 .../ayon_deadline}/plugins/publish/collect_pools.py | 0 .../plugins/publish/collect_user_credentials.py | 0 .../publish/help/validate_deadline_connection.xml | 0 .../publish/help/validate_deadline_pools.xml | 0 .../plugins/publish/submit_aftereffects_deadline.py | 0 .../plugins/publish/submit_blender_deadline.py | 0 .../plugins/publish/submit_celaction_deadline.py | 0 .../plugins/publish/submit_fusion_deadline.py | 0 .../plugins/publish/submit_harmony_deadline.py | 0 .../publish/submit_houdini_cache_deadline.py | 0 .../publish/submit_houdini_render_deadline.py | 0 .../plugins/publish/submit_max_deadline.py | 0 .../plugins/publish/submit_maya_deadline.py | 0 .../plugins/publish/submit_nuke_deadline.py | 0 .../plugins/publish/submit_publish_cache_job.py | 0 .../plugins/publish/submit_publish_job.py | 0 .../plugins/publish/validate_deadline_connection.py | 0 .../plugins/publish/validate_deadline_pools.py | 0 .../publish/validate_expected_and_rendered_files.py | 0 .../repository/custom/plugins/Ayon/Ayon.ico | Bin .../repository/custom/plugins/Ayon/Ayon.options | 0 .../repository/custom/plugins/Ayon/Ayon.param | 0 .../repository/custom/plugins/Ayon/Ayon.py | 0 .../custom/plugins/CelAction/CelAction.ico | Bin .../custom/plugins/CelAction/CelAction.param | 0 .../custom/plugins/CelAction/CelAction.py | 0 .../repository/custom/plugins/GlobalJobPreLoad.py | 0 .../custom/plugins/HarmonyAYON/HarmonyAYON.ico | Bin .../custom/plugins/HarmonyAYON/HarmonyAYON.options | 0 .../custom/plugins/HarmonyAYON/HarmonyAYON.param | 0 .../custom/plugins/HarmonyAYON/HarmonyAYON.py | 0 .../OpenPypeTileAssembler/OpenPypeTileAssembler.ico | Bin .../OpenPypeTileAssembler.options | 0 .../OpenPypeTileAssembler.param | 0 .../OpenPypeTileAssembler/OpenPypeTileAssembler.py | 0 .../client/ayon_deadline}/repository/readme.md | 0 .../deadline/client/ayon_deadline}/version.py | 0 42 files changed, 0 insertions(+), 0 deletions(-) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/__init__.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/abstract_submit_deadline.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/deadline_module.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/collect_deadline_server_from_instance.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/collect_default_deadline_server.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/collect_pools.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/collect_user_credentials.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/help/validate_deadline_connection.xml (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/help/validate_deadline_pools.xml (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/submit_aftereffects_deadline.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/submit_blender_deadline.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/submit_celaction_deadline.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/submit_fusion_deadline.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/submit_harmony_deadline.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/submit_houdini_cache_deadline.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/submit_houdini_render_deadline.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/submit_max_deadline.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/submit_maya_deadline.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/submit_nuke_deadline.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/submit_publish_cache_job.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/submit_publish_job.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/validate_deadline_connection.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/validate_deadline_pools.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/plugins/publish/validate_expected_and_rendered_files.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/repository/custom/plugins/Ayon/Ayon.ico (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/repository/custom/plugins/Ayon/Ayon.options (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/repository/custom/plugins/Ayon/Ayon.param (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/repository/custom/plugins/Ayon/Ayon.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/repository/custom/plugins/CelAction/CelAction.ico (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/repository/custom/plugins/CelAction/CelAction.param (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/repository/custom/plugins/CelAction/CelAction.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/repository/custom/plugins/GlobalJobPreLoad.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/repository/custom/plugins/HarmonyAYON/HarmonyAYON.ico (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/repository/custom/plugins/HarmonyAYON/HarmonyAYON.options (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/repository/custom/plugins/HarmonyAYON/HarmonyAYON.param (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/repository/custom/plugins/HarmonyAYON/HarmonyAYON.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.ico (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.options (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.param (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.py (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/repository/readme.md (100%) rename {client/ayon_core/modules/deadline => server_addon/deadline/client/ayon_deadline}/version.py (100%) diff --git a/client/ayon_core/modules/deadline/__init__.py b/server_addon/deadline/client/ayon_deadline/__init__.py similarity index 100% rename from client/ayon_core/modules/deadline/__init__.py rename to server_addon/deadline/client/ayon_deadline/__init__.py diff --git a/client/ayon_core/modules/deadline/abstract_submit_deadline.py b/server_addon/deadline/client/ayon_deadline/abstract_submit_deadline.py similarity index 100% rename from client/ayon_core/modules/deadline/abstract_submit_deadline.py rename to server_addon/deadline/client/ayon_deadline/abstract_submit_deadline.py diff --git a/client/ayon_core/modules/deadline/deadline_module.py b/server_addon/deadline/client/ayon_deadline/deadline_module.py similarity index 100% rename from client/ayon_core/modules/deadline/deadline_module.py rename to server_addon/deadline/client/ayon_deadline/deadline_module.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/collect_deadline_server_from_instance.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_deadline_server_from_instance.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/collect_deadline_server_from_instance.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/collect_deadline_server_from_instance.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/collect_default_deadline_server.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_default_deadline_server.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/collect_default_deadline_server.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/collect_default_deadline_server.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/collect_pools.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_pools.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/collect_pools.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/collect_pools.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/collect_user_credentials.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/collect_user_credentials.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/help/validate_deadline_connection.xml b/server_addon/deadline/client/ayon_deadline/plugins/publish/help/validate_deadline_connection.xml similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/help/validate_deadline_connection.xml rename to server_addon/deadline/client/ayon_deadline/plugins/publish/help/validate_deadline_connection.xml diff --git a/client/ayon_core/modules/deadline/plugins/publish/help/validate_deadline_pools.xml b/server_addon/deadline/client/ayon_deadline/plugins/publish/help/validate_deadline_pools.xml similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/help/validate_deadline_pools.xml rename to server_addon/deadline/client/ayon_deadline/plugins/publish/help/validate_deadline_pools.xml diff --git a/client/ayon_core/modules/deadline/plugins/publish/submit_aftereffects_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_aftereffects_deadline.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/submit_aftereffects_deadline.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/submit_aftereffects_deadline.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/submit_blender_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_blender_deadline.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/submit_blender_deadline.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/submit_blender_deadline.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/submit_celaction_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_celaction_deadline.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/submit_celaction_deadline.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/submit_celaction_deadline.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/submit_fusion_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_fusion_deadline.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/submit_fusion_deadline.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/submit_fusion_deadline.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/submit_harmony_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_harmony_deadline.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/submit_harmony_deadline.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/submit_harmony_deadline.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/submit_houdini_cache_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_cache_deadline.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/submit_houdini_cache_deadline.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_cache_deadline.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/submit_houdini_render_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_render_deadline.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/submit_houdini_render_deadline.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_render_deadline.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/submit_max_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_max_deadline.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/submit_max_deadline.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/submit_max_deadline.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/submit_maya_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_maya_deadline.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/submit_maya_deadline.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/submit_maya_deadline.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/submit_nuke_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_nuke_deadline.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/submit_nuke_deadline.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/submit_nuke_deadline.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/submit_publish_cache_job.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_cache_job.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/submit_publish_cache_job.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_cache_job.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/submit_publish_job.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_job.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/submit_publish_job.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_job.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/validate_deadline_connection.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_deadline_connection.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/validate_deadline_connection.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/validate_deadline_connection.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/validate_deadline_pools.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_deadline_pools.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/validate_deadline_pools.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/validate_deadline_pools.py diff --git a/client/ayon_core/modules/deadline/plugins/publish/validate_expected_and_rendered_files.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_expected_and_rendered_files.py similarity index 100% rename from client/ayon_core/modules/deadline/plugins/publish/validate_expected_and_rendered_files.py rename to server_addon/deadline/client/ayon_deadline/plugins/publish/validate_expected_and_rendered_files.py diff --git a/client/ayon_core/modules/deadline/repository/custom/plugins/Ayon/Ayon.ico b/server_addon/deadline/client/ayon_deadline/repository/custom/plugins/Ayon/Ayon.ico similarity index 100% rename from client/ayon_core/modules/deadline/repository/custom/plugins/Ayon/Ayon.ico rename to server_addon/deadline/client/ayon_deadline/repository/custom/plugins/Ayon/Ayon.ico diff --git a/client/ayon_core/modules/deadline/repository/custom/plugins/Ayon/Ayon.options b/server_addon/deadline/client/ayon_deadline/repository/custom/plugins/Ayon/Ayon.options similarity index 100% rename from client/ayon_core/modules/deadline/repository/custom/plugins/Ayon/Ayon.options rename to server_addon/deadline/client/ayon_deadline/repository/custom/plugins/Ayon/Ayon.options diff --git a/client/ayon_core/modules/deadline/repository/custom/plugins/Ayon/Ayon.param b/server_addon/deadline/client/ayon_deadline/repository/custom/plugins/Ayon/Ayon.param similarity index 100% rename from client/ayon_core/modules/deadline/repository/custom/plugins/Ayon/Ayon.param rename to server_addon/deadline/client/ayon_deadline/repository/custom/plugins/Ayon/Ayon.param diff --git a/client/ayon_core/modules/deadline/repository/custom/plugins/Ayon/Ayon.py b/server_addon/deadline/client/ayon_deadline/repository/custom/plugins/Ayon/Ayon.py similarity index 100% rename from client/ayon_core/modules/deadline/repository/custom/plugins/Ayon/Ayon.py rename to server_addon/deadline/client/ayon_deadline/repository/custom/plugins/Ayon/Ayon.py diff --git a/client/ayon_core/modules/deadline/repository/custom/plugins/CelAction/CelAction.ico b/server_addon/deadline/client/ayon_deadline/repository/custom/plugins/CelAction/CelAction.ico similarity index 100% rename from client/ayon_core/modules/deadline/repository/custom/plugins/CelAction/CelAction.ico rename to server_addon/deadline/client/ayon_deadline/repository/custom/plugins/CelAction/CelAction.ico diff --git a/client/ayon_core/modules/deadline/repository/custom/plugins/CelAction/CelAction.param b/server_addon/deadline/client/ayon_deadline/repository/custom/plugins/CelAction/CelAction.param similarity index 100% rename from client/ayon_core/modules/deadline/repository/custom/plugins/CelAction/CelAction.param rename to server_addon/deadline/client/ayon_deadline/repository/custom/plugins/CelAction/CelAction.param diff --git a/client/ayon_core/modules/deadline/repository/custom/plugins/CelAction/CelAction.py b/server_addon/deadline/client/ayon_deadline/repository/custom/plugins/CelAction/CelAction.py similarity index 100% rename from client/ayon_core/modules/deadline/repository/custom/plugins/CelAction/CelAction.py rename to server_addon/deadline/client/ayon_deadline/repository/custom/plugins/CelAction/CelAction.py diff --git a/client/ayon_core/modules/deadline/repository/custom/plugins/GlobalJobPreLoad.py b/server_addon/deadline/client/ayon_deadline/repository/custom/plugins/GlobalJobPreLoad.py similarity index 100% rename from client/ayon_core/modules/deadline/repository/custom/plugins/GlobalJobPreLoad.py rename to server_addon/deadline/client/ayon_deadline/repository/custom/plugins/GlobalJobPreLoad.py diff --git a/client/ayon_core/modules/deadline/repository/custom/plugins/HarmonyAYON/HarmonyAYON.ico b/server_addon/deadline/client/ayon_deadline/repository/custom/plugins/HarmonyAYON/HarmonyAYON.ico similarity index 100% rename from client/ayon_core/modules/deadline/repository/custom/plugins/HarmonyAYON/HarmonyAYON.ico rename to server_addon/deadline/client/ayon_deadline/repository/custom/plugins/HarmonyAYON/HarmonyAYON.ico diff --git a/client/ayon_core/modules/deadline/repository/custom/plugins/HarmonyAYON/HarmonyAYON.options b/server_addon/deadline/client/ayon_deadline/repository/custom/plugins/HarmonyAYON/HarmonyAYON.options similarity index 100% rename from client/ayon_core/modules/deadline/repository/custom/plugins/HarmonyAYON/HarmonyAYON.options rename to server_addon/deadline/client/ayon_deadline/repository/custom/plugins/HarmonyAYON/HarmonyAYON.options diff --git a/client/ayon_core/modules/deadline/repository/custom/plugins/HarmonyAYON/HarmonyAYON.param b/server_addon/deadline/client/ayon_deadline/repository/custom/plugins/HarmonyAYON/HarmonyAYON.param similarity index 100% rename from client/ayon_core/modules/deadline/repository/custom/plugins/HarmonyAYON/HarmonyAYON.param rename to server_addon/deadline/client/ayon_deadline/repository/custom/plugins/HarmonyAYON/HarmonyAYON.param diff --git a/client/ayon_core/modules/deadline/repository/custom/plugins/HarmonyAYON/HarmonyAYON.py b/server_addon/deadline/client/ayon_deadline/repository/custom/plugins/HarmonyAYON/HarmonyAYON.py similarity index 100% rename from client/ayon_core/modules/deadline/repository/custom/plugins/HarmonyAYON/HarmonyAYON.py rename to server_addon/deadline/client/ayon_deadline/repository/custom/plugins/HarmonyAYON/HarmonyAYON.py diff --git a/client/ayon_core/modules/deadline/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.ico b/server_addon/deadline/client/ayon_deadline/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.ico similarity index 100% rename from client/ayon_core/modules/deadline/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.ico rename to server_addon/deadline/client/ayon_deadline/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.ico diff --git a/client/ayon_core/modules/deadline/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.options b/server_addon/deadline/client/ayon_deadline/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.options similarity index 100% rename from client/ayon_core/modules/deadline/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.options rename to server_addon/deadline/client/ayon_deadline/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.options diff --git a/client/ayon_core/modules/deadline/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.param b/server_addon/deadline/client/ayon_deadline/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.param similarity index 100% rename from client/ayon_core/modules/deadline/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.param rename to server_addon/deadline/client/ayon_deadline/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.param diff --git a/client/ayon_core/modules/deadline/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.py b/server_addon/deadline/client/ayon_deadline/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.py similarity index 100% rename from client/ayon_core/modules/deadline/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.py rename to server_addon/deadline/client/ayon_deadline/repository/custom/plugins/OpenPypeTileAssembler/OpenPypeTileAssembler.py diff --git a/client/ayon_core/modules/deadline/repository/readme.md b/server_addon/deadline/client/ayon_deadline/repository/readme.md similarity index 100% rename from client/ayon_core/modules/deadline/repository/readme.md rename to server_addon/deadline/client/ayon_deadline/repository/readme.md diff --git a/client/ayon_core/modules/deadline/version.py b/server_addon/deadline/client/ayon_deadline/version.py similarity index 100% rename from client/ayon_core/modules/deadline/version.py rename to server_addon/deadline/client/ayon_deadline/version.py From 9202f0e765129509fbc8c359f2cc1b9808657c93 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 14:18:34 +0200 Subject: [PATCH 79/88] bump version and define milestone --- client/ayon_core/addon/base.py | 1 + server_addon/deadline/client/ayon_deadline/version.py | 4 +++- server_addon/deadline/package.py | 9 ++++++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/client/ayon_core/addon/base.py b/client/ayon_core/addon/base.py index c4407424cc..56298e0d06 100644 --- a/client/ayon_core/addon/base.py +++ b/client/ayon_core/addon/base.py @@ -54,6 +54,7 @@ MOVED_ADDON_MILESTONE_VERSIONS = { "blender": VersionInfo(0, 2, 0), "celaction": VersionInfo(0, 2, 0), "clockify": VersionInfo(0, 2, 0), + "deadline": VersionInfo(0, 2, 0), "flame": VersionInfo(0, 2, 0), "fusion": VersionInfo(0, 2, 0), "harmony": VersionInfo(0, 2, 0), diff --git a/server_addon/deadline/client/ayon_deadline/version.py b/server_addon/deadline/client/ayon_deadline/version.py index 74acd0efba..5baf5122fb 100644 --- a/server_addon/deadline/client/ayon_deadline/version.py +++ b/server_addon/deadline/client/ayon_deadline/version.py @@ -1 +1,3 @@ -__version__ = "0.1.12" +# -*- coding: utf-8 -*- +"""Package declaring AYON addon 'deadline' version.""" +__version__ = "0.2.0" diff --git a/server_addon/deadline/package.py b/server_addon/deadline/package.py index e26734c813..7e7bae8bd6 100644 --- a/server_addon/deadline/package.py +++ b/server_addon/deadline/package.py @@ -1,3 +1,10 @@ name = "deadline" title = "Deadline" -version = "0.1.12" +version = "0.2.0" + +client_dir = "ayon_deadline" + +ayon_required_addons = { + "core": ">0.3.2", +} +ayon_compatible_addons = {} From 3668a7f66fd867ad520ca2e4b89b9f0d0c302823 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 14:28:53 +0200 Subject: [PATCH 80/88] fix imports --- server_addon/deadline/client/ayon_deadline/deadline_module.py | 2 +- .../ayon_deadline/plugins/publish/collect_user_credentials.py | 3 +-- .../ayon_deadline/plugins/publish/validate_deadline_pools.py | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/server_addon/deadline/client/ayon_deadline/deadline_module.py b/server_addon/deadline/client/ayon_deadline/deadline_module.py index ea0350d2d9..7715e58687 100644 --- a/server_addon/deadline/client/ayon_deadline/deadline_module.py +++ b/server_addon/deadline/client/ayon_deadline/deadline_module.py @@ -5,7 +5,7 @@ import requests import six from ayon_core.lib import Logger -from ayon_core.modules import AYONAddon, IPluginPaths +from ayon_core.addon import AYONAddon, IPluginPaths from .version import __version__ diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py index 99d75ecb9e..2b5762e3df 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py @@ -13,8 +13,7 @@ Provides: import pyblish.api from ayon_api import get_server_api_connection -from ayon_core.modules.deadline.deadline_module import DeadlineModule -from ayon_core.modules.deadline import __version__ +from ayon_deadline import __version__, DeadlineModule class CollectDeadlineUserCredentials(pyblish.api.InstancePlugin): diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_deadline_pools.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_deadline_pools.py index 2fb511bf51..e1cd99fea3 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_deadline_pools.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_deadline_pools.py @@ -4,7 +4,7 @@ from ayon_core.pipeline import ( PublishXmlValidationError, OptionalPyblishPluginMixin ) -from ayon_core.modules.deadline.deadline_module import DeadlineModule +from ayon_deadline import DeadlineModule class ValidateDeadlinePools(OptionalPyblishPluginMixin, From 8eddd5991058a4457bbd208787ed11244cb8d2ba Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 15:12:48 +0200 Subject: [PATCH 81/88] use deadline addon from ayonAddonsManager during publishing --- .../publish/collect_user_credentials.py | 8 +++++--- .../plugins/publish/validate_deadline_pools.py | 18 +++++++++++------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py index 2b5762e3df..e45b0090a7 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_user_credentials.py @@ -13,7 +13,6 @@ Provides: import pyblish.api from ayon_api import get_server_api_connection -from ayon_deadline import __version__, DeadlineModule class CollectDeadlineUserCredentials(pyblish.api.InstancePlugin): @@ -80,10 +79,13 @@ class CollectDeadlineUserCredentials(pyblish.api.InstancePlugin): if not deadline_info["require_authentication"]: return - # TODO import 'get_addon_site_settings' when available + + addons_manager = instance.context.data["ayonAddonsManager"] + deadline_addon = addons_manager["deadline"] + # TODO import 'get_addon_site_settings' when available # in public 'ayon_api' local_settings = get_server_api_connection().get_addon_site_settings( - DeadlineModule.name, __version__) + deadline_addon.name, deadline_addon.version) local_settings = local_settings["local_settings"] for server_info in local_settings: if deadline_server_name == server_info["server_name"]: diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_deadline_pools.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_deadline_pools.py index e1cd99fea3..c7445465c4 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_deadline_pools.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_deadline_pools.py @@ -4,7 +4,6 @@ from ayon_core.pipeline import ( PublishXmlValidationError, OptionalPyblishPluginMixin ) -from ayon_deadline import DeadlineModule class ValidateDeadlinePools(OptionalPyblishPluginMixin, @@ -38,8 +37,13 @@ class ValidateDeadlinePools(OptionalPyblishPluginMixin, return deadline_url = instance.data["deadline"]["url"] - pools = self.get_pools(deadline_url, - instance.data["deadline"].get("auth")) + addons_manager = instance.context.data["ayonAddonsManager"] + deadline_addon = addons_manager["deadline"] + pools = self.get_pools( + deadline_addon, + deadline_url, + instance.data["deadline"].get("auth") + ) invalid_pools = {} primary_pool = instance.data.get("primaryPool") @@ -62,15 +66,15 @@ class ValidateDeadlinePools(OptionalPyblishPluginMixin, formatting_data={"pools_str": ", ".join(pools)} ) - def get_pools(self, deadline_url, auth): + def get_pools(self, deadline_addon, deadline_url, auth): if deadline_url not in self.pools_per_url: self.log.debug( "Querying available pools for Deadline url: {}".format( deadline_url) ) - pools = DeadlineModule.get_deadline_pools(deadline_url, - auth=auth, - log=self.log) + pools = deadline_addon.get_deadline_pools( + deadline_url, auth=auth, log=self.log + ) # some DL return "none" as a pool name if "none" not in pools: pools.append("none") From 1d6d241818e6af184e40dc7809a8c7529d97b96d Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 15:13:43 +0200 Subject: [PATCH 82/88] use addon naming --- server_addon/deadline/client/ayon_deadline/__init__.py | 4 ++-- .../deadline/client/ayon_deadline/deadline_module.py | 2 +- .../plugins/publish/collect_default_deadline_server.py | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/server_addon/deadline/client/ayon_deadline/__init__.py b/server_addon/deadline/client/ayon_deadline/__init__.py index 683d8dbe4a..f37032f297 100644 --- a/server_addon/deadline/client/ayon_deadline/__init__.py +++ b/server_addon/deadline/client/ayon_deadline/__init__.py @@ -1,8 +1,8 @@ -from .deadline_module import DeadlineModule +from .deadline_module import DeadlineAddon from .version import __version__ __all__ = ( - "DeadlineModule", + "DeadlineAddon", "__version__" ) diff --git a/server_addon/deadline/client/ayon_deadline/deadline_module.py b/server_addon/deadline/client/ayon_deadline/deadline_module.py index 7715e58687..54ed6dc8d3 100644 --- a/server_addon/deadline/client/ayon_deadline/deadline_module.py +++ b/server_addon/deadline/client/ayon_deadline/deadline_module.py @@ -16,7 +16,7 @@ class DeadlineWebserviceError(Exception): """ -class DeadlineModule(AYONAddon, IPluginPaths): +class DeadlineAddon(AYONAddon, IPluginPaths): name = "deadline" version = __version__ diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_default_deadline_server.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_default_deadline_server.py index 9238e0ed95..77d03c713f 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_default_deadline_server.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_default_deadline_server.py @@ -24,7 +24,7 @@ class CollectDefaultDeadlineServer(pyblish.api.ContextPlugin): def process(self, context): try: - deadline_module = context.data["ayonAddonsManager"]["deadline"] + deadline_addon = context.data["ayonAddonsManager"]["deadline"] except AttributeError: self.log.error("Cannot get AYON Deadline addon.") raise AssertionError("AYON Deadline addon not found.") @@ -34,13 +34,13 @@ class CollectDefaultDeadlineServer(pyblish.api.ContextPlugin): dl_server_info = None if deadline_server_name: - dl_server_info = deadline_module.deadline_servers_info.get( + dl_server_info = deadline_addon.deadline_servers_info.get( deadline_server_name) if dl_server_info: deadline_url = dl_server_info["value"] else: - default_dl_server_info = deadline_module.deadline_servers_info[0] + default_dl_server_info = deadline_addon.deadline_servers_info[0] deadline_url = default_dl_server_info["value"] context.data["deadline"] = {} From a1cd2e19ca01dfacf57e4661477ab731589b1039 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 15:15:15 +0200 Subject: [PATCH 83/88] renamed deadline_module.py to addon.py --- server_addon/deadline/client/ayon_deadline/__init__.py | 2 +- .../client/ayon_deadline/{deadline_module.py => addon.py} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename server_addon/deadline/client/ayon_deadline/{deadline_module.py => addon.py} (100%) diff --git a/server_addon/deadline/client/ayon_deadline/__init__.py b/server_addon/deadline/client/ayon_deadline/__init__.py index f37032f297..6fec1006e6 100644 --- a/server_addon/deadline/client/ayon_deadline/__init__.py +++ b/server_addon/deadline/client/ayon_deadline/__init__.py @@ -1,4 +1,4 @@ -from .deadline_module import DeadlineAddon +from .addon import DeadlineAddon from .version import __version__ diff --git a/server_addon/deadline/client/ayon_deadline/deadline_module.py b/server_addon/deadline/client/ayon_deadline/addon.py similarity index 100% rename from server_addon/deadline/client/ayon_deadline/deadline_module.py rename to server_addon/deadline/client/ayon_deadline/addon.py From d8f553943f9acc831286b2618534dd477b32a5f4 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 15:20:34 +0200 Subject: [PATCH 84/88] added settings category to publish plugins --- .../ayon_deadline/plugins/publish/submit_blender_deadline.py | 1 + .../ayon_deadline/plugins/publish/submit_celaction_deadline.py | 1 + .../ayon_deadline/plugins/publish/submit_fusion_deadline.py | 1 + .../ayon_deadline/plugins/publish/submit_harmony_deadline.py | 1 + .../plugins/publish/submit_houdini_cache_deadline.py | 1 + .../plugins/publish/submit_houdini_render_deadline.py | 1 + .../client/ayon_deadline/plugins/publish/submit_max_deadline.py | 1 + .../client/ayon_deadline/plugins/publish/submit_maya_deadline.py | 1 + .../client/ayon_deadline/plugins/publish/submit_nuke_deadline.py | 1 + .../ayon_deadline/plugins/publish/submit_publish_cache_job.py | 1 + .../client/ayon_deadline/plugins/publish/submit_publish_job.py | 1 + 11 files changed, 11 insertions(+) diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_blender_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_blender_deadline.py index 311dbcedd5..a6d697a9e8 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_blender_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_blender_deadline.py @@ -31,6 +31,7 @@ class BlenderSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, label = "Submit Render to Deadline" hosts = ["blender"] families = ["render"] + settings_category = "deadline" use_published = True priority = 50 diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_celaction_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_celaction_deadline.py index a17bf0c3ef..f58fb31919 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_celaction_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_celaction_deadline.py @@ -18,6 +18,7 @@ class CelactionSubmitDeadline(pyblish.api.InstancePlugin): order = pyblish.api.IntegratorOrder + 0.1 hosts = ["celaction"] families = ["render.farm"] + settings_category = "deadline" deadline_department = "" deadline_priority = 50 diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_fusion_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_fusion_deadline.py index 9eea4d6549..e26a6b8fb2 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_fusion_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_fusion_deadline.py @@ -27,6 +27,7 @@ class FusionSubmitDeadline( hosts = ["fusion"] families = ["render"] targets = ["local"] + settings_category = "deadline" # presets plugin = None diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_harmony_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_harmony_deadline.py index d52b16b27d..e7223dc699 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_harmony_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_harmony_deadline.py @@ -240,6 +240,7 @@ class HarmonySubmitDeadline( hosts = ["harmony"] families = ["render.farm"] targets = ["local"] + settings_category = "deadline" optional = True use_published = False diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_cache_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_cache_deadline.py index 5826607ff4..8857e4778f 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_cache_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_cache_deadline.py @@ -43,6 +43,7 @@ class HoudiniCacheSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline hosts = ["houdini"] families = ["publish.hou"] targets = ["local"] + settings_category = "deadline" priority = 50 chunk_size = 999999 diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_render_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_render_deadline.py index 590abc3f12..cc682614d8 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_render_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_render_deadline.py @@ -76,6 +76,7 @@ class HoudiniSubmitDeadline( "karma_rop", "vray_rop"] targets = ["local"] + settings_category = "deadline" use_published = True # presets diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_max_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_max_deadline.py index 4cb510f1cb..6455474f77 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_max_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_max_deadline.py @@ -39,6 +39,7 @@ class MaxSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, hosts = ["max"] families = ["maxrender"] targets = ["local"] + settings_category = "deadline" use_published = True priority = 50 diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_maya_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_maya_deadline.py index b1193fb914..e2e12d2f06 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_maya_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_maya_deadline.py @@ -105,6 +105,7 @@ class MayaSubmitDeadline(abstract_submit_deadline.AbstractSubmitDeadline, hosts = ["maya"] families = ["renderlayer"] targets = ["local"] + settings_category = "deadline" tile_assembler_plugin = "OpenPypeTileAssembler" priority = 50 diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_nuke_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_nuke_deadline.py index db35c2ae67..bdbbc926ac 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_nuke_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_nuke_deadline.py @@ -32,6 +32,7 @@ class NukeSubmitDeadline(pyblish.api.InstancePlugin, families = ["render", "prerender"] optional = True targets = ["local"] + settings_category = "deadline" # presets priority = 50 diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_cache_job.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_cache_job.py index 103f1355da..30fab9b1e6 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_cache_job.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_cache_job.py @@ -54,6 +54,7 @@ class ProcessSubmittedCacheJobOnFarm(pyblish.api.InstancePlugin, label = "Submit cache jobs to Deadline" order = pyblish.api.IntegratorOrder + 0.2 icon = "tractor" + settings_category = "deadline" targets = ["local"] diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_job.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_job.py index 64313c5c4d..756975e266 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_job.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_job.py @@ -95,6 +95,7 @@ class ProcessSubmittedJobOnFarm(pyblish.api.InstancePlugin, "arnold_rop", "mantra_rop", "karma_rop", "vray_rop", "redshift_rop"] + settings_category = "deadline" aov_filter = [ { From 9b258490148671e9f37413ad9e483e30c09ab544 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 15:38:49 +0200 Subject: [PATCH 85/88] fix more imports --- .../client/ayon_deadline/plugins/publish/collect_pools.py | 2 +- .../plugins/publish/submit_aftereffects_deadline.py | 4 ++-- .../ayon_deadline/plugins/publish/submit_blender_deadline.py | 4 ++-- .../plugins/publish/submit_celaction_deadline.py | 2 +- .../ayon_deadline/plugins/publish/submit_fusion_deadline.py | 2 +- .../ayon_deadline/plugins/publish/submit_harmony_deadline.py | 4 ++-- .../plugins/publish/submit_houdini_cache_deadline.py | 4 ++-- .../plugins/publish/submit_houdini_render_deadline.py | 4 ++-- .../ayon_deadline/plugins/publish/submit_max_deadline.py | 4 ++-- .../ayon_deadline/plugins/publish/submit_maya_deadline.py | 5 +++-- .../ayon_deadline/plugins/publish/submit_nuke_deadline.py | 2 +- .../plugins/publish/submit_publish_cache_job.py | 3 +-- .../ayon_deadline/plugins/publish/submit_publish_job.py | 2 +- .../plugins/publish/validate_deadline_connection.py | 2 +- .../plugins/publish/validate_expected_and_rendered_files.py | 2 +- 15 files changed, 23 insertions(+), 23 deletions(-) diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_pools.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_pools.py index 2592d358e5..49e247e872 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_pools.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/collect_pools.py @@ -86,7 +86,7 @@ class CollectDeadlinePools(pyblish.api.InstancePlugin, # but the Deadline server URL can be dynamic and # can be set per render instance. Since get_attribute_defs # can't be dynamic unfortunately EnumDef isn't possible (yet?) - # pool_names = self.deadline_module.get_deadline_pools(deadline_url, + # pool_names = self.deadline_addon.get_deadline_pools(deadline_url, # self.log) # secondary_pool_names = ["-"] + pool_names diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_aftereffects_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_aftereffects_deadline.py index 675346105c..9ca077d162 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_aftereffects_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_aftereffects_deadline.py @@ -9,8 +9,8 @@ from ayon_core.lib import ( collect_frames, is_in_tests, ) -from openpype_modules.deadline import abstract_submit_deadline -from openpype_modules.deadline.abstract_submit_deadline import DeadlineJobInfo +from ayon_deadline import abstract_submit_deadline +from ayon_deadline.abstract_submit_deadline import DeadlineJobInfo @attr.s diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_blender_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_blender_deadline.py index a6d697a9e8..a5e2398838 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_blender_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_blender_deadline.py @@ -15,8 +15,8 @@ from ayon_core.lib import ( from ayon_core.pipeline.publish import AYONPyblishPluginMixin from ayon_core.pipeline.farm.tools import iter_expected_files -from openpype_modules.deadline import abstract_submit_deadline -from openpype_modules.deadline.abstract_submit_deadline import DeadlineJobInfo +from ayon_deadline import abstract_submit_deadline +from ayon_deadline.abstract_submit_deadline import DeadlineJobInfo @attr.s diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_celaction_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_celaction_deadline.py index f58fb31919..e9313e3f2f 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_celaction_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_celaction_deadline.py @@ -4,7 +4,7 @@ import json import getpass import pyblish.api -from openpype_modules.deadline.abstract_submit_deadline import requests_post +from ayon_deadline.abstract_submit_deadline import requests_post class CelactionSubmitDeadline(pyblish.api.InstancePlugin): diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_fusion_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_fusion_deadline.py index e26a6b8fb2..f90bb9b597 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_fusion_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_fusion_deadline.py @@ -4,7 +4,7 @@ import getpass import pyblish.api -from openpype_modules.deadline.abstract_submit_deadline import requests_post +from ayon_deadline.abstract_submit_deadline import requests_post from ayon_core.pipeline.publish import ( AYONPyblishPluginMixin ) diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_harmony_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_harmony_deadline.py index e7223dc699..1a40f6f302 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_harmony_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_harmony_deadline.py @@ -10,8 +10,8 @@ from datetime import datetime import attr import pyblish.api -from openpype_modules.deadline import abstract_submit_deadline -from openpype_modules.deadline.abstract_submit_deadline import DeadlineJobInfo +from ayon_deadline import abstract_submit_deadline +from ayon_deadline.abstract_submit_deadline import DeadlineJobInfo from ayon_core.lib import is_in_tests diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_cache_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_cache_deadline.py index 8857e4778f..ac9ad570c3 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_cache_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_cache_deadline.py @@ -12,8 +12,8 @@ from ayon_core.lib import ( from ayon_core.pipeline import ( AYONPyblishPluginMixin ) -from openpype_modules.deadline import abstract_submit_deadline -from openpype_modules.deadline.abstract_submit_deadline import DeadlineJobInfo +from ayon_deadline import abstract_submit_deadline +from ayon_deadline.abstract_submit_deadline import DeadlineJobInfo @attr.s diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_render_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_render_deadline.py index cc682614d8..d3fbe62963 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_render_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_houdini_render_deadline.py @@ -6,13 +6,13 @@ from datetime import datetime import pyblish.api from ayon_core.pipeline import AYONPyblishPluginMixin -from openpype_modules.deadline import abstract_submit_deadline -from openpype_modules.deadline.abstract_submit_deadline import DeadlineJobInfo from ayon_core.lib import ( is_in_tests, TextDef, NumberDef ) +from ayon_deadline import abstract_submit_deadline +from ayon_deadline.abstract_submit_deadline import DeadlineJobInfo @attr.s diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_max_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_max_deadline.py index 6455474f77..61d02c9b54 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_max_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_max_deadline.py @@ -20,8 +20,8 @@ from ayon_max.api.lib import ( get_multipass_setting ) from ayon_max.api.lib_rendersettings import RenderSettings -from openpype_modules.deadline import abstract_submit_deadline -from openpype_modules.deadline.abstract_submit_deadline import DeadlineJobInfo +from ayon_deadline import abstract_submit_deadline +from ayon_deadline.abstract_submit_deadline import DeadlineJobInfo @attr.s diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_maya_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_maya_deadline.py index e2e12d2f06..957146cb79 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_maya_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_maya_deadline.py @@ -42,10 +42,11 @@ from ayon_core.lib import ( from ayon_maya.api.lib_rendersettings import RenderSettings from ayon_maya.api.lib import get_attr_in_layer -from openpype_modules.deadline import abstract_submit_deadline -from openpype_modules.deadline.abstract_submit_deadline import DeadlineJobInfo from ayon_core.pipeline.farm.tools import iter_expected_files +from ayon_deadline import abstract_submit_deadline +from ayon_deadline.abstract_submit_deadline import DeadlineJobInfo + def _validate_deadline_bool_value(instance, attribute, value): if not isinstance(value, (str, bool)): diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_nuke_deadline.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_nuke_deadline.py index bdbbc926ac..7ead5142cf 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_nuke_deadline.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_nuke_deadline.py @@ -6,7 +6,6 @@ from datetime import datetime import pyblish.api -from openpype_modules.deadline.abstract_submit_deadline import requests_post from ayon_core.pipeline.publish import ( AYONPyblishPluginMixin ) @@ -15,6 +14,7 @@ from ayon_core.lib import ( BoolDef, NumberDef ) +from ayon_deadline.abstract_submit_deadline import requests_post class NukeSubmitDeadline(pyblish.api.InstancePlugin, diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_cache_job.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_cache_job.py index 30fab9b1e6..2bb138d849 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_cache_job.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_cache_job.py @@ -8,11 +8,9 @@ from copy import deepcopy import ayon_api import pyblish.api -from openpype_modules.deadline.abstract_submit_deadline import requests_post from ayon_core.pipeline import publish from ayon_core.lib import EnumDef, is_in_tests from ayon_core.pipeline.version_start import get_versioning_start - from ayon_core.pipeline.farm.pyblish_functions import ( create_skeleton_instance_cache, create_instances_for_cache, @@ -20,6 +18,7 @@ from ayon_core.pipeline.farm.pyblish_functions import ( prepare_cache_representations, create_metadata_path ) +from ayon_deadline.abstract_submit_deadline import requests_post class ProcessSubmittedCacheJobOnFarm(pyblish.api.InstancePlugin, diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_job.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_job.py index 756975e266..721cd682ea 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_job.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/submit_publish_job.py @@ -9,7 +9,6 @@ import clique import ayon_api import pyblish.api -from openpype_modules.deadline.abstract_submit_deadline import requests_post from ayon_core.pipeline import publish from ayon_core.lib import EnumDef, is_in_tests from ayon_core.pipeline.version_start import get_versioning_start @@ -21,6 +20,7 @@ from ayon_core.pipeline.farm.pyblish_functions import ( prepare_representations, create_metadata_path ) +from ayon_deadline.abstract_submit_deadline import requests_post def get_resource_files(resources, frame_range=None): diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_deadline_connection.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_deadline_connection.py index 8fffd47786..fd89e3a2a7 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_deadline_connection.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_deadline_connection.py @@ -2,7 +2,7 @@ import pyblish.api from ayon_core.pipeline import PublishXmlValidationError -from openpype_modules.deadline.abstract_submit_deadline import requests_get +from ayon_deadline.abstract_submit_deadline import requests_get class ValidateDeadlineConnection(pyblish.api.InstancePlugin): diff --git a/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_expected_and_rendered_files.py b/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_expected_and_rendered_files.py index 83e867408c..3fd13cfa10 100644 --- a/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_expected_and_rendered_files.py +++ b/server_addon/deadline/client/ayon_deadline/plugins/publish/validate_expected_and_rendered_files.py @@ -4,7 +4,7 @@ import requests import pyblish.api from ayon_core.lib import collect_frames -from openpype_modules.deadline.abstract_submit_deadline import requests_get +from ayon_deadline.abstract_submit_deadline import requests_get class ValidateExpectedFiles(pyblish.api.InstancePlugin): From 9703feb2d0fdbf4ffebb1c3b1b54dc0b1d09fd6b Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 15:39:05 +0200 Subject: [PATCH 86/88] simplified initialization --- .../deadline/client/ayon_deadline/addon.py | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/server_addon/deadline/client/ayon_deadline/addon.py b/server_addon/deadline/client/ayon_deadline/addon.py index 54ed6dc8d3..87fc2ad665 100644 --- a/server_addon/deadline/client/ayon_deadline/addon.py +++ b/server_addon/deadline/client/ayon_deadline/addon.py @@ -21,23 +21,18 @@ class DeadlineAddon(AYONAddon, IPluginPaths): version = __version__ def initialize(self, studio_settings): - # This module is always enabled - deadline_servers_info = {} - enabled = self.name in studio_settings - if enabled: - deadline_settings = studio_settings[self.name] - deadline_servers_info = { - url_item["name"]: url_item - for url_item in deadline_settings["deadline_urls"] - } + deadline_settings = studio_settings[self.name] + deadline_servers_info = { + url_item["name"]: url_item + for url_item in deadline_settings["deadline_urls"] + } - if enabled and not deadline_servers_info: - enabled = False + if not deadline_servers_info: + self.enabled = False self.log.warning(( "Deadline Webservice URLs are not specified. Disabling addon." )) - self.enabled = enabled self.deadline_servers_info = deadline_servers_info def get_plugin_paths(self): From ace0a733c4059c57edd1cfffa77cd15a2ca32aa7 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 15:39:53 +0200 Subject: [PATCH 87/88] modify formatting in site settings model --- .../deadline/server/settings/site_settings.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/server_addon/deadline/server/settings/site_settings.py b/server_addon/deadline/server/settings/site_settings.py index a77a6edc7e..92c092324e 100644 --- a/server_addon/deadline/server/settings/site_settings.py +++ b/server_addon/deadline/server/settings/site_settings.py @@ -2,25 +2,27 @@ from ayon_server.settings import ( BaseSettingsModel, SettingsField, ) + from .main import defined_deadline_ws_name_enum_resolver class CredentialPerServerModel(BaseSettingsModel): """Provide credentials for configured DL servers""" _layout = "expanded" - server_name: str = SettingsField("", + server_name: str = SettingsField( + "", title="DL server name", - enum_resolver=defined_deadline_ws_name_enum_resolver) - username: str = SettingsField("", - title="Username") - password: str = SettingsField("", - title="Password") + enum_resolver=defined_deadline_ws_name_enum_resolver + ) + username: str = SettingsField("", title="Username") + password: str = SettingsField("", title="Password") class DeadlineSiteSettings(BaseSettingsModel): local_settings: list[CredentialPerServerModel] = SettingsField( default_factory=list, title="Local setting", - description="Please provide credentials for configured Deadline servers", + description=( + "Please provide credentials for configured Deadline servers" + ), ) - From d606dec5ad42c1095183833d3b12f3bea91ed6a6 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 16:31:47 +0200 Subject: [PATCH 88/88] fix ruff ignore paths --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 2f30778519..5fb7935f62 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -79,10 +79,10 @@ dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" exclude = [ "client/ayon_core/hosts/unreal/integration/*", - "client/ayon_core/modules/deadline/repository/custom/plugins/CelAction/*", - "client/ayon_core/modules/deadline/repository/custom/plugins/HarmonyAYON/*", "client/ayon_core/modules/click_wrap.py", "client/ayon_core/scripts/slates/__init__.py", + "server_addon/deadline/client/ayon_deadline/repository/custom/plugins/CelAction/*", + "server_addon/deadline/client/ayon_deadline/repository/custom/plugins/HarmonyAYON/*", "server_addon/hiero/client/ayon_hiero/api/startup/*", "server_addon/aftereffects/client/ayon_aftereffects/api/extension/js/libs/*" ]