From e3babf1aed1674812fe25e434781d8f6b93e9d02 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Fri, 19 Apr 2024 20:25:31 +0200 Subject: [PATCH 01/34] 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/34] 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 e6b3492cc54b6a8d2d2642e81faaaedfcae43944 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Tue, 30 Apr 2024 06:36:33 +0200 Subject: [PATCH 03/34] Preserve time units on load and update with `MayaUSDReferenceLoader` --- .../hosts/maya/plugins/load/load_reference.py | 35 +++++++++++++++++-- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/client/ayon_core/hosts/maya/plugins/load/load_reference.py b/client/ayon_core/hosts/maya/plugins/load/load_reference.py index 847591bd11..a26982ddfa 100644 --- a/client/ayon_core/hosts/maya/plugins/load/load_reference.py +++ b/client/ayon_core/hosts/maya/plugins/load/load_reference.py @@ -14,6 +14,26 @@ from ayon_core.hosts.maya.api.lib import ( ) +@contextlib.contextmanager +def preserve_time_units(): + """Preserve current frame, frame range and fps""" + frame = cmds.currentTime(query=True) + fps = cmds.currentUnit(query=True, time=True) + start = cmds.playbackOptions(query=True, minTime=True) + end = cmds.playbackOptions(query=True, maxTime=True) + anim_start = cmds.playbackOptions(query=True, animationStartTime=True) + anim_end = cmds.playbackOptions(query=True, animationEndTime=True) + try: + yield + finally: + cmds.currentUnit(time=fps, updateAnimation=False) + cmds.currentTime(frame) + cmds.playbackOptions(minTime=start, + maxTime=end, + animationStartTime=anim_start, + animationEndTime=anim_end) + + @contextlib.contextmanager def preserve_modelpanel_cameras(container, log=None): """Preserve camera members of container in the modelPanels. @@ -349,6 +369,15 @@ class MayaUSDReferenceLoader(ReferenceLoader): ]) options["file_type"] = self.file_type - return super(MayaUSDReferenceLoader, self).process_reference( - context, name, namespace, options - ) + # Maya USD import reference has the tendency to change the time slider + # range and current frame, so we force revert it after + with preserve_time_units(): + return super(MayaUSDReferenceLoader, self).process_reference( + context, name, namespace, options + ) + + def update(self, container, context): + # Maya USD import reference has the tendency to change the time slider + # range and current frame, so we force revert it after + with preserve_time_units(): + super(MayaUSDReferenceLoader, self).update(container, context) 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 04/34] 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 5e8aca34204e3c065217e314880ea89b2d2373af Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 13:36:26 +0200 Subject: [PATCH 05/34] added version property to addon class --- client/ayon_core/addon/base.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/client/ayon_core/addon/base.py b/client/ayon_core/addon/base.py index d2c072c50c..9eb5773927 100644 --- a/client/ayon_core/addon/base.py +++ b/client/ayon_core/addon/base.py @@ -8,7 +8,7 @@ import inspect import logging import threading import collections - +import warnings from uuid import uuid4 from abc import ABCMeta, abstractmethod @@ -551,6 +551,9 @@ class AYONAddon(object): enabled = True _id = None + # Temporary variable for 'version' property + _missing_version_warned = False + def __init__(self, manager, settings): self.manager = manager @@ -581,6 +584,25 @@ class AYONAddon(object): pass + @property + def version(self): + """Addon version. + + Todo: + Should be abstract property (required). Introduced in + ayon-core 0.3.3 . + + Returns: + str: Addon version as semver compatible string. + + """ + if not self.__class__._missing_version_warned: + self.__class__._missing_version_warned = True + warnings.warn( + f"Addon '{self.name}' does not have defined version." + ) + return "0.0.0" + def initialize(self, settings): """Initialization of addon attributes. From 8f0522ac3e846cb62fb29cf6fb0059274cc60231 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 13:36:40 +0200 Subject: [PATCH 06/34] log addon version and show it in report --- client/ayon_core/addon/base.py | 98 ++++++++++++++++++++++++---------- 1 file changed, 69 insertions(+), 29 deletions(-) diff --git a/client/ayon_core/addon/base.py b/client/ayon_core/addon/base.py index 9eb5773927..a70c1b7961 100644 --- a/client/ayon_core/addon/base.py +++ b/client/ayon_core/addon/base.py @@ -718,6 +718,30 @@ class OpenPypeAddOn(OpenPypeModule): enabled = True +class _AddonReportInfo: + def __init__( + self, class_name, name, version, report_value_by_label + ): + self.class_name = class_name + self.name = name + self.version = version + self.report_value_by_label = report_value_by_label + + @classmethod + def from_addon(cls, addon, report): + class_name = addon.__class__.__name__ + report_value_by_label = { + label: reported.get(class_name) + for label, reported in report.items() + } + return cls( + addon.__class__.__name__, + addon.name, + addon.version, + report_value_by_label + ) + + class AddonsManager: """Manager of addons that helps to load and prepare them to work. @@ -894,10 +918,10 @@ class AddonsManager: name_alias = getattr(addon, "openpype_alias", None) if name_alias: aliased_names.append((name_alias, addon)) - enabled_str = "X" - if not addon.enabled: - enabled_str = " " - self.log.debug("[{}] {}".format(enabled_str, name)) + enabled_str = "X" if addon.enabled else " " + self.log.debug( + f"[{enabled_str}] {addon.name} ({addon.version})" + ) now = time.time() report[addon.__class__.__name__] = now - prev_start_time @@ -1197,39 +1221,55 @@ class AddonsManager: available_col_names |= set(addon_names.keys()) # Prepare ordered dictionary for columns - cols = collections.OrderedDict() - # Add addon names to first columnt - cols["Addon name"] = list(sorted( - addon.__class__.__name__ + addons_info = [ + _AddonReportInfo.from_addon(addon, self._report) for addon in self.addons if addon.__class__.__name__ in available_col_names - )) + ] + addons_info.sort(key=lambda x: x.name) + + addon_name_rows = [ + addon_info.name + for addon_info in addons_info + ] + addon_version_rows = [ + addon_info.version + for addon_info in addons_info + ] + # Add total key (as last addon) - cols["Addon name"].append(self._report_total_key) + addon_name_rows.append(self._report_total_key) + addon_version_rows.append(f"({len(addons_info)})") + + cols = collections.OrderedDict() + # Add addon names to first columnt + cols["Addon name"] = addon_name_rows + cols["Version"] = addon_version_rows # Add columns from report + total_by_addon = { + row: 0 + for row in addon_name_rows + } for label in self._report.keys(): - cols[label] = [] - - total_addon_times = {} - for addon_name in cols["Addon name"]: - total_addon_times[addon_name] = 0 - - for label, reported in self._report.items(): - for addon_name in cols["Addon name"]: - col_time = reported.get(addon_name) - if col_time is None: - cols[label].append("N/A") + rows = [] + col_total = 0 + for addon_info in addons_info: + value = addon_info.report_value_by_label.get(label) + if value is None: + rows.append("N/A") continue - cols[label].append("{:.3f}".format(col_time)) - total_addon_times[addon_name] += col_time - + rows.append("{:.3f}".format(value)) + total_by_addon[addon_info.name] += value + col_total += value + total_by_addon[self._report_total_key] += col_total + rows.append("{:.3f}".format(col_total)) + cols[label] = rows # Add to also total column that should sum the row - cols[self._report_total_key] = [] - for addon_name in cols["Addon name"]: - cols[self._report_total_key].append( - "{:.3f}".format(total_addon_times[addon_name]) - ) + cols[self._report_total_key] = [ + "{:.3f}".format(total_by_addon[addon_name]) + for addon_name in cols["Addon name"] + ] # Prepare column widths and total row count # - column width is by From 3e9c08205ee83d1b4006c9f25d3f3bd50c62d03a Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 13:40:18 +0200 Subject: [PATCH 07/34] added version to job queue --- client/ayon_core/modules/job_queue/__init__.py | 3 +++ client/ayon_core/modules/job_queue/addon.py | 3 +++ client/ayon_core/modules/job_queue/version.py | 1 + 3 files changed, 7 insertions(+) create mode 100644 client/ayon_core/modules/job_queue/version.py diff --git a/client/ayon_core/modules/job_queue/__init__.py b/client/ayon_core/modules/job_queue/__init__.py index 0a4c62abfb..041782dd29 100644 --- a/client/ayon_core/modules/job_queue/__init__.py +++ b/client/ayon_core/modules/job_queue/__init__.py @@ -1,6 +1,9 @@ +from .version import __version__ from .addon import JobQueueAddon __all__ = ( + "__version__", + "JobQueueAddon", ) diff --git a/client/ayon_core/modules/job_queue/addon.py b/client/ayon_core/modules/job_queue/addon.py index 0fa54eb2f0..96f6ff0d4d 100644 --- a/client/ayon_core/modules/job_queue/addon.py +++ b/client/ayon_core/modules/job_queue/addon.py @@ -44,9 +44,12 @@ import platform from ayon_core.addon import AYONAddon, click_wrap from ayon_core.settings import get_studio_settings +from .version import __version__ + class JobQueueAddon(AYONAddon): name = "job_queue" + version = __version__ def initialize(self, studio_settings): addon_settings = studio_settings.get(self.name) or {} diff --git a/client/ayon_core/modules/job_queue/version.py b/client/ayon_core/modules/job_queue/version.py new file mode 100644 index 0000000000..5becc17c04 --- /dev/null +++ b/client/ayon_core/modules/job_queue/version.py @@ -0,0 +1 @@ +__version__ = "1.0.0" From b7e2b83efce5ee9f5d2c22a03f4fe3562f230acd Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 13:40:29 +0200 Subject: [PATCH 08/34] added version to timers manager --- client/ayon_core/modules/timers_manager/__init__.py | 3 +++ client/ayon_core/modules/timers_manager/timers_manager.py | 2 ++ client/ayon_core/modules/timers_manager/version.py | 1 + 3 files changed, 6 insertions(+) create mode 100644 client/ayon_core/modules/timers_manager/version.py diff --git a/client/ayon_core/modules/timers_manager/__init__.py b/client/ayon_core/modules/timers_manager/__init__.py index 5d7a4166d3..1ec0d9b74b 100644 --- a/client/ayon_core/modules/timers_manager/__init__.py +++ b/client/ayon_core/modules/timers_manager/__init__.py @@ -1,7 +1,10 @@ +from .version import __version__ from .timers_manager import ( TimersManager ) __all__ = ( + "__version__", + "TimersManager", ) diff --git a/client/ayon_core/modules/timers_manager/timers_manager.py b/client/ayon_core/modules/timers_manager/timers_manager.py index 4212ff6b25..2aac7b2a49 100644 --- a/client/ayon_core/modules/timers_manager/timers_manager.py +++ b/client/ayon_core/modules/timers_manager/timers_manager.py @@ -10,6 +10,7 @@ from ayon_core.addon import ( ) from ayon_core.lib.events import register_event_callback +from .version import __version__ from .exceptions import InvalidContextError TIMER_MODULE_DIR = os.path.dirname(os.path.abspath(__file__)) @@ -96,6 +97,7 @@ class TimersManager( See `ExampleTimersManagerConnector`. """ name = "timers_manager" + version = __version__ label = "Timers Service" _required_methods = ( diff --git a/client/ayon_core/modules/timers_manager/version.py b/client/ayon_core/modules/timers_manager/version.py new file mode 100644 index 0000000000..5becc17c04 --- /dev/null +++ b/client/ayon_core/modules/timers_manager/version.py @@ -0,0 +1 @@ +__version__ = "1.0.0" From 090208d8bc1cd2653487babb9d0af19820fd1362 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 13:43:05 +0200 Subject: [PATCH 09/34] fix timers manager version --- client/ayon_core/modules/timers_manager/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/ayon_core/modules/timers_manager/version.py b/client/ayon_core/modules/timers_manager/version.py index 5becc17c04..485f44ac21 100644 --- a/client/ayon_core/modules/timers_manager/version.py +++ b/client/ayon_core/modules/timers_manager/version.py @@ -1 +1 @@ -__version__ = "1.0.0" +__version__ = "0.1.1" From 75f55101f8a70bc09106813ab8a1054fc2ab2cbb Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 13:43:24 +0200 Subject: [PATCH 10/34] added version to webserver --- client/ayon_core/modules/webserver/__init__.py | 3 +++ client/ayon_core/modules/webserver/version.py | 1 + client/ayon_core/modules/webserver/webserver_module.py | 3 +++ 3 files changed, 7 insertions(+) create mode 100644 client/ayon_core/modules/webserver/version.py diff --git a/client/ayon_core/modules/webserver/__init__.py b/client/ayon_core/modules/webserver/__init__.py index 0d3f767638..a978b94bc4 100644 --- a/client/ayon_core/modules/webserver/__init__.py +++ b/client/ayon_core/modules/webserver/__init__.py @@ -1,8 +1,11 @@ +from .version import __version__ from .webserver_module import ( WebServerAddon ) __all__ = ( + "__version__", + "WebServerAddon", ) diff --git a/client/ayon_core/modules/webserver/version.py b/client/ayon_core/modules/webserver/version.py new file mode 100644 index 0000000000..5becc17c04 --- /dev/null +++ b/client/ayon_core/modules/webserver/version.py @@ -0,0 +1 @@ +__version__ = "1.0.0" diff --git a/client/ayon_core/modules/webserver/webserver_module.py b/client/ayon_core/modules/webserver/webserver_module.py index c324e0dd18..997b6f754c 100644 --- a/client/ayon_core/modules/webserver/webserver_module.py +++ b/client/ayon_core/modules/webserver/webserver_module.py @@ -26,9 +26,12 @@ import socket from ayon_core import resources from ayon_core.addon import AYONAddon, ITrayService +from .version import __version__ + class WebServerAddon(AYONAddon, ITrayService): name = "webserver" + version = __version__ label = "WebServer" webserver_url_env = "AYON_WEBSERVER_URL" From c687ec7430497ab7fd306cf03830d1784e5bebff Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 13:43:59 +0200 Subject: [PATCH 11/34] use version in deadline addon --- client/ayon_core/modules/deadline/deadline_module.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/client/ayon_core/modules/deadline/deadline_module.py b/client/ayon_core/modules/deadline/deadline_module.py index b1089bbfe2..ea0350d2d9 100644 --- a/client/ayon_core/modules/deadline/deadline_module.py +++ b/client/ayon_core/modules/deadline/deadline_module.py @@ -7,6 +7,8 @@ import six from ayon_core.lib import Logger from ayon_core.modules import AYONAddon, IPluginPaths +from .version import __version__ + class DeadlineWebserviceError(Exception): """ @@ -16,6 +18,7 @@ class DeadlineWebserviceError(Exception): class DeadlineModule(AYONAddon, IPluginPaths): name = "deadline" + version = __version__ def initialize(self, studio_settings): # This module is always enabled From 1bf0421e7af8104c89ffe21c3cdd99e1d708c2bd Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 13:44:09 +0200 Subject: [PATCH 12/34] define version if actions --- client/ayon_core/modules/launcher_action.py | 1 + client/ayon_core/modules/loader_action.py | 1 + 2 files changed, 2 insertions(+) diff --git a/client/ayon_core/modules/launcher_action.py b/client/ayon_core/modules/launcher_action.py index 38e88d36ca..344b0bc389 100644 --- a/client/ayon_core/modules/launcher_action.py +++ b/client/ayon_core/modules/launcher_action.py @@ -7,6 +7,7 @@ from ayon_core.addon import AYONAddon, ITrayAction class LauncherAction(AYONAddon, ITrayAction): label = "Launcher" name = "launcher_tool" + version = "1.0.0" def initialize(self, settings): diff --git a/client/ayon_core/modules/loader_action.py b/client/ayon_core/modules/loader_action.py index 1e45db05dc..a58d7fd456 100644 --- a/client/ayon_core/modules/loader_action.py +++ b/client/ayon_core/modules/loader_action.py @@ -3,6 +3,7 @@ from ayon_core.addon import AYONAddon, ITrayAddon class LoaderAddon(AYONAddon, ITrayAddon): name = "loader_tool" + version = "1.0.0" def initialize(self, settings): # Tray attributes From 8e27a2238d3474c3f394422328206425e85e4454 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 13:45:50 +0200 Subject: [PATCH 13/34] added version to royal render --- client/ayon_core/modules/royalrender/__init__.py | 3 +++ client/ayon_core/modules/royalrender/addon.py | 3 +++ client/ayon_core/modules/royalrender/version.py | 1 + 3 files changed, 7 insertions(+) create mode 100644 client/ayon_core/modules/royalrender/version.py diff --git a/client/ayon_core/modules/royalrender/__init__.py b/client/ayon_core/modules/royalrender/__init__.py index 121530beda..8bf207e7db 100644 --- a/client/ayon_core/modules/royalrender/__init__.py +++ b/client/ayon_core/modules/royalrender/__init__.py @@ -1,6 +1,9 @@ +from .version import __version__ from .addon import RoyalRenderAddon __all__ = ( + "__version__", + "RoyalRenderAddon", ) diff --git a/client/ayon_core/modules/royalrender/addon.py b/client/ayon_core/modules/royalrender/addon.py index e69cf9feec..264d3516c1 100644 --- a/client/ayon_core/modules/royalrender/addon.py +++ b/client/ayon_core/modules/royalrender/addon.py @@ -4,10 +4,13 @@ import os from ayon_core.addon import AYONAddon, IPluginPaths +from .version import __version__ + class RoyalRenderAddon(AYONAddon, IPluginPaths): """Class providing basic Royal Render implementation logic.""" name = "royalrender" + version = __version__ # _rr_api = None # @property diff --git a/client/ayon_core/modules/royalrender/version.py b/client/ayon_core/modules/royalrender/version.py new file mode 100644 index 0000000000..485f44ac21 --- /dev/null +++ b/client/ayon_core/modules/royalrender/version.py @@ -0,0 +1 @@ +__version__ = "0.1.1" From 807e931d0a9513ed79c4bf970332ecd5468c1241 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 13:46:04 +0200 Subject: [PATCH 14/34] added version to python console action --- client/ayon_core/modules/python_console_interpreter/addon.py | 1 + 1 file changed, 1 insertion(+) diff --git a/client/ayon_core/modules/python_console_interpreter/addon.py b/client/ayon_core/modules/python_console_interpreter/addon.py index ffad3ce707..b0dce2585e 100644 --- a/client/ayon_core/modules/python_console_interpreter/addon.py +++ b/client/ayon_core/modules/python_console_interpreter/addon.py @@ -4,6 +4,7 @@ from ayon_core.addon import AYONAddon, ITrayAction class PythonInterpreterAction(AYONAddon, ITrayAction): label = "Console" name = "python_interpreter" + version = "1.0.0" admin_action = True def initialize(self, settings): From 8ae140fc6cfb70f1e6d19a311e3f4355c47ca3a5 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 13:47:20 +0200 Subject: [PATCH 15/34] change warning to print --- client/ayon_core/addon/base.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/ayon_core/addon/base.py b/client/ayon_core/addon/base.py index a70c1b7961..bbefc4ca1d 100644 --- a/client/ayon_core/addon/base.py +++ b/client/ayon_core/addon/base.py @@ -8,7 +8,6 @@ import inspect import logging import threading import collections -import warnings from uuid import uuid4 from abc import ABCMeta, abstractmethod @@ -598,8 +597,9 @@ class AYONAddon(object): """ if not self.__class__._missing_version_warned: self.__class__._missing_version_warned = True - warnings.warn( - f"Addon '{self.name}' does not have defined version." + print( + f"DEV WARNING: Addon '{self.name}' does not have" + f" defined version." ) return "0.0.0" From e531b94981b76b91197c3590cfd1c5d90a503880 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 13:49:34 +0200 Subject: [PATCH 16/34] make sure '_initializing_addons' is set to 'False' --- client/ayon_core/tools/tray/tray.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/client/ayon_core/tools/tray/tray.py b/client/ayon_core/tools/tray/tray.py index 957518afe4..eca87eb11d 100644 --- a/client/ayon_core/tools/tray/tray.py +++ b/client/ayon_core/tools/tray/tray.py @@ -447,8 +447,10 @@ class SystemTrayIcon(QtWidgets.QSystemTrayIcon): def initialize_addons(self): self._initializing_addons = True - self.tray_man.initialize_addons() - self._initializing_addons = False + try: + self.tray_man.initialize_addons() + finally: + self._initializing_addons = False def _click_timer_timeout(self): self._click_timer.stop() 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 17/34] 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 18/34] 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 19/34] 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 20/34] 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 21/34] 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 22/34] 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 23/34] 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 24/34] 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 25/34] 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 26/34] 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 52a82a911004a90e16a6b1e10fd0ea86c3c5eb5c Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 15:29:58 +0200 Subject: [PATCH 27/34] log debug for missing settings --- client/ayon_core/pipeline/publish/lib.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/ayon_core/pipeline/publish/lib.py b/client/ayon_core/pipeline/publish/lib.py index 8d3644637b..94acf64047 100644 --- a/client/ayon_core/pipeline/publish/lib.py +++ b/client/ayon_core/pipeline/publish/lib.py @@ -343,7 +343,7 @@ def get_plugin_settings(plugin, project_settings, log, category=None): [plugin.__name__] ) except KeyError: - log.warning(( + log.debug(( "Couldn't find plugin '{}' settings" " under settings category '{}'" ).format(plugin.__name__, settings_category)) From 1c1489af848ae00bf70b0738f8eb0615c4df7ac6 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 16:01:40 +0200 Subject: [PATCH 28/34] warn about missing category and ignore missing publish plugin --- client/ayon_core/pipeline/publish/lib.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/client/ayon_core/pipeline/publish/lib.py b/client/ayon_core/pipeline/publish/lib.py index 94acf64047..7f63089d33 100644 --- a/client/ayon_core/pipeline/publish/lib.py +++ b/client/ayon_core/pipeline/publish/lib.py @@ -336,17 +336,16 @@ def get_plugin_settings(plugin, project_settings, log, category=None): settings_category = getattr(plugin, "settings_category", None) if settings_category: try: - return ( - project_settings - [settings_category] - ["publish"] - [plugin.__name__] - ) + category_settings = project_settings[settings_category] + except KeyError: + log.warning(( + "Couldn't find settings category '{}' in project settings" + ).format(settings_category)) + return {} + + try: + return category_settings["publish"][plugin.__name__] except KeyError: - log.debug(( - "Couldn't find plugin '{}' settings" - " under settings category '{}'" - ).format(plugin.__name__, settings_category)) return {} # Use project settings based on a category name From 34432b299fe666d7cf208ae880b64b5c75e75d51 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Mon, 3 Jun 2024 16:41:29 +0200 Subject: [PATCH 29/34] Bump 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 33bd9a82eb3fef006bb549c6f0a36f8a4e9d05c8 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 16:56:58 +0200 Subject: [PATCH 30/34] log addons alphabetically --- client/ayon_core/addon/base.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/client/ayon_core/addon/base.py b/client/ayon_core/addon/base.py index bbefc4ca1d..87c40b096c 100644 --- a/client/ayon_core/addon/base.py +++ b/client/ayon_core/addon/base.py @@ -918,10 +918,6 @@ class AddonsManager: name_alias = getattr(addon, "openpype_alias", None) if name_alias: aliased_names.append((name_alias, addon)) - enabled_str = "X" if addon.enabled else " " - self.log.debug( - f"[{enabled_str}] {addon.name} ({addon.version})" - ) now = time.time() report[addon.__class__.__name__] = now - prev_start_time @@ -933,6 +929,13 @@ class AddonsManager: exc_info=True ) + for addon_name in sorted(self._addons_by_name.keys()): + addon = self._addons_by_name[addon_name] + enabled_str = "X" if addon.enabled else " " + self.log.debug( + f"[{enabled_str}] {addon.name} ({addon.version})" + ) + for item in aliased_names: name_alias, addon = item if name_alias not in self._addons_by_name: From 91edccbd703154e23692998ba3f453f0e58efae9 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 3 Jun 2024 17:15:46 +0200 Subject: [PATCH 31/34] fix indentation --- client/ayon_core/addon/base.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/client/ayon_core/addon/base.py b/client/ayon_core/addon/base.py index 3fbba6c619..13f1550e6e 100644 --- a/client/ayon_core/addon/base.py +++ b/client/ayon_core/addon/base.py @@ -930,12 +930,12 @@ class AddonsManager: exc_info=True ) - for addon_name in sorted(self._addons_by_name.keys()): - addon = self._addons_by_name[addon_name] - enabled_str = "X" if addon.enabled else " " - self.log.debug( - f"[{enabled_str}] {addon.name} ({addon.version})" - ) + for addon_name in sorted(self._addons_by_name.keys()): + addon = self._addons_by_name[addon_name] + enabled_str = "X" if addon.enabled else " " + self.log.debug( + f"[{enabled_str}] {addon.name} ({addon.version})" + ) for item in aliased_names: name_alias, addon = item From fa158d3f4633dc0f7d336f55110eecb142b295d7 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Mon, 3 Jun 2024 23:07:57 +0200 Subject: [PATCH 32/34] 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 33/34] 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 213742c877e1ea57755591d9fbf9e6028891f1c8 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Tue, 4 Jun 2024 14:55:48 +0200 Subject: [PATCH 34/34] 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