diff --git a/client/ayon_core/addon/base.py b/client/ayon_core/addon/base.py
index ad02309635..b3a97a1a5d 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
-
from uuid import uuid4
from abc import ABCMeta, abstractmethod
@@ -56,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),
@@ -553,6 +553,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
@@ -583,6 +586,26 @@ 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
+ print(
+ f"DEV WARNING: Addon '{self.name}' does not have"
+ f" defined version."
+ )
+ return "0.0.0"
+
def initialize(self, settings):
"""Initialization of addon attributes.
@@ -698,6 +721,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.
@@ -874,10 +921,6 @@ 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))
now = time.time()
report[addon.__class__.__name__] = now - prev_start_time
@@ -889,6 +932,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:
@@ -1177,39 +1227,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
diff --git a/client/ayon_core/hosts/hiero/__init__.py b/client/ayon_core/hosts/hiero/__init__.py
deleted file mode 100644
index e6744d5aec..0000000000
--- a/client/ayon_core/hosts/hiero/__init__.py
+++ /dev/null
@@ -1,10 +0,0 @@
-from .addon import (
- HIERO_ROOT_DIR,
- HieroAddon,
-)
-
-
-__all__ = (
- "HIERO_ROOT_DIR",
- "HieroAddon",
-)
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
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"
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
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):
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"
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..485f44ac21
--- /dev/null
+++ b/client/ayon_core/modules/timers_manager/version.py
@@ -0,0 +1 @@
+__version__ = "0.1.1"
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"
diff --git a/client/ayon_core/pipeline/publish/lib.py b/client/ayon_core/pipeline/publish/lib.py
index 8d3644637b..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 plugin '{}' settings"
- " under settings category '{}'"
- ).format(plugin.__name__, settings_category))
+ "Couldn't find settings category '{}' in project settings"
+ ).format(settings_category))
+ return {}
+
+ try:
+ return category_settings["publish"][plugin.__name__]
+ except KeyError:
return {}
# Use project settings based on a category name
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 8035b1f0fe..7b9124608b 100644
--- a/client/ayon_core/tools/loader/ui/products_model.py
+++ b/client/ayon_core/tools/loader/ui/products_model.py
@@ -199,7 +199,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
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()
diff --git a/pyproject.toml b/pyproject.toml
index 63d7434c06..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/hosts/hiero/api/startup/*",
"client/ayon_core/modules/deadline/repository/custom/plugins/CelAction/*",
"client/ayon_core/modules/deadline/repository/custom/plugins/HarmonyAYON/*",
"client/ayon_core/modules/click_wrap.py",
- "client/ayon_core/scripts/slates/__init__.py"
+ "client/ayon_core/scripts/slates/__init__.py",
+ "server_addon/hiero/client/ayon_hiero/api/startup/*"
]
[tool.ruff.lint.per-file-ignores]
diff --git a/server_addon/hiero/client/ayon_hiero/__init__.py b/server_addon/hiero/client/ayon_hiero/__init__.py
new file mode 100644
index 0000000000..2dc490c1e9
--- /dev/null
+++ b/server_addon/hiero/client/ayon_hiero/__init__.py
@@ -0,0 +1,13 @@
+from .version import __version__
+from .addon import (
+ HIERO_ADDON_ROOT,
+ HieroAddon,
+)
+
+
+__all__ = (
+ "__version__",
+
+ "HIERO_ADDON_ROOT",
+ "HieroAddon",
+)
diff --git a/client/ayon_core/hosts/hiero/addon.py b/server_addon/hiero/client/ayon_hiero/addon.py
similarity index 89%
rename from client/ayon_core/hosts/hiero/addon.py
rename to server_addon/hiero/client/ayon_hiero/addon.py
index f612493ca1..671e29151b 100644
--- a/client/ayon_core/hosts/hiero/addon.py
+++ b/server_addon/hiero/client/ayon_hiero/addon.py
@@ -2,17 +2,20 @@ import os
import platform
from ayon_core.addon import AYONAddon, IHostAddon
-HIERO_ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
+from .version import __version__
+
+HIERO_ADDON_ROOT = 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):
# 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):
@@ -36,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)
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 99%
rename from client/ayon_core/hosts/hiero/api/lib.py
rename to server_addon/hiero/client/ayon_hiero/api/lib.py
index 456a68f125..2a6038fb98 100644
--- a/client/ayon_core/hosts/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/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 96%
rename from client/ayon_core/hosts/hiero/api/pipeline.py
rename to server_addon/hiero/client/ayon_hiero/api/pipeline.py
index 327a4ae29c..58045c4331 100644
--- a/client/ayon_core/hosts/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("\\", "/")
@@ -308,9 +309,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 +329,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/client/ayon_core/hosts/hiero/api/plugin.py b/server_addon/hiero/client/ayon_hiero/api/plugin.py
similarity index 99%
rename from client/ayon_core/hosts/hiero/api/plugin.py
rename to server_addon/hiero/client/ayon_hiero/api/plugin.py
index 1353673b31..16eb1d55f3 100644
--- a/client/ayon_core/hosts/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
@@ -600,7 +601,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/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 70%
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
index cffab8067c..c916bf37e9 100644
--- 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
@@ -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/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 97%
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
index bd5048a832..d4cb342c72 100644
--- 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
@@ -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/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 97%
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
index 25aa8bb0cf..131b385f53 100644
--- 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
@@ -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/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 98%
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
index 29507db975..c0f1cc9c67 100644
--- 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
@@ -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/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 99%
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
index 1fc808fdd1..201cf382e2 100644
--- 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
@@ -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/client/ayon_core/hosts/hiero/plugins/load/load_clip.py b/server_addon/hiero/client/ayon_hiero/plugins/load/load_clip.py
similarity index 99%
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
index 715e8c508e..d93730c735 100644
--- a/client/ayon_core/hosts/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/client/ayon_core/hosts/hiero/plugins/load/load_effects.py b/server_addon/hiero/client/ayon_hiero/plugins/load/load_effects.py
similarity index 99%
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
index 92aa2de325..24130f7485 100644
--- a/client/ayon_core/hosts/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/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 99%
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
index bfc63f2551..bd8af3b51a 100644
--- 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
@@ -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 = []
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 99%
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
index 25b52968fa..7ee979c37a 100644
--- 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
@@ -1,4 +1,3 @@
-# from ayon_core import plugins
import os
import json
import pyblish.api
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 99%
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
index b7a508f0b5..fa2c56182e 100644
--- a/client/ayon_core/hosts/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/client/ayon_core/hosts/hiero/plugins/publish/precollect_workfile.py b/server_addon/hiero/client/ayon_hiero/plugins/publish/precollect_workfile.py
similarity index 98%
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
index 0b6b34ea6c..1dd21b3f21 100644
--- a/client/ayon_core/hosts/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/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 98%
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
index 8503a0b6a7..c511b40abc 100644
--- 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
@@ -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."""
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
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 = {}
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": []
}
diff --git a/server_addon/maya/client/ayon_maya/plugins/load/load_reference.py b/server_addon/maya/client/ayon_maya/plugins/load/load_reference.py
index f8e1062e38..92cee414fd 100644
--- a/server_addon/maya/client/ayon_maya/plugins/load/load_reference.py
+++ b/server_addon/maya/client/ayon_maya/plugins/load/load_reference.py
@@ -13,6 +13,26 @@ from ayon_maya.api.lib import (
from maya import cmds
+@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.
@@ -348,6 +368,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)
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
new file mode 100644
index 0000000000..aaecdd78b9
--- /dev/null
+++ b/server_addon/maya/client/ayon_maya/plugins/workfile_build/assign_look_placeholder.py
@@ -0,0 +1,128 @@
+from maya import cmds
+
+from ayon_core.lib import (
+ UISeparatorDef,
+ UILabelDef,
+ TextDef,
+ BoolDef
+)
+from ayon_core.lib.events import weakref_partial
+from ayon_maya.api.workfile_template_builder import MayaPlaceholderPlugin
+from ayon_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.\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)
+ ),
+ ]
+
+ 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.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.add_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
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",