diff --git a/.gitmodules b/.gitmodules index 95c8647d45..c70c2097d9 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "client/ayon_core/hosts/unreal/integration"] - path = client/ayon_core/hosts/unreal/integration + path = server_addon/unreal/client/ayon_unreal/integration url = https://github.com/ynput/ayon-unreal-plugin.git diff --git a/client/ayon_core/addon/base.py b/client/ayon_core/addon/base.py index 53f64eef8b..b10629ede8 100644 --- a/client/ayon_core/addon/base.py +++ b/client/ayon_core/addon/base.py @@ -63,6 +63,7 @@ MOVED_ADDON_MILESTONE_VERSIONS = { "royalrender": VersionInfo(0, 2, 0), "substancepainter": VersionInfo(0, 2, 0), "houdini": VersionInfo(0, 3, 0), + "unreal": VersionInfo(0, 2, 0), } diff --git a/client/ayon_core/hosts/unreal/__init__.py b/client/ayon_core/hosts/unreal/__init__.py deleted file mode 100644 index 42dd8f0ac4..0000000000 --- a/client/ayon_core/hosts/unreal/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -from .addon import UnrealAddon - - -__all__ = ( - "UnrealAddon", -) diff --git a/client/ayon_core/pipeline/create/context.py b/client/ayon_core/pipeline/create/context.py index 45846553a4..0d8722dab1 100644 --- a/client/ayon_core/pipeline/create/context.py +++ b/client/ayon_core/pipeline/create/context.py @@ -37,6 +37,7 @@ from .creator_plugins import ( # Changes of instances and context are send as tuple of 2 information UpdateData = collections.namedtuple("UpdateData", ["instance", "changes"]) +_NOT_SET = object() class UnavailableSharedData(Exception): @@ -1401,6 +1402,11 @@ class CreateContext: self._current_folder_path = None self._current_task_name = None self._current_workfile_path = None + self._current_project_settings = None + + self._current_folder_entity = _NOT_SET + self._current_task_entity = _NOT_SET + self._current_task_type = _NOT_SET self._current_project_anatomy = None @@ -1571,6 +1577,64 @@ class CreateContext: return self._current_task_name + def get_current_task_type(self): + """Task type which was used as current context on context reset. + + Returns: + Union[str, None]: Task type. + + """ + if self._current_task_type is _NOT_SET: + task_type = None + task_entity = self.get_current_task_entity() + if task_entity: + task_type = task_entity["taskType"] + self._current_task_type = task_type + return self._current_task_type + + def get_current_folder_entity(self): + """Folder entity for current context folder. + + Returns: + Union[dict[str, Any], None]: Folder entity. + + """ + if self._current_folder_entity is not _NOT_SET: + return copy.deepcopy(self._current_folder_entity) + folder_entity = None + folder_path = self.get_current_folder_path() + if folder_path: + project_name = self.get_current_project_name() + folder_entity = ayon_api.get_folder_by_path( + project_name, folder_path + ) + self._current_folder_entity = folder_entity + return copy.deepcopy(self._current_folder_entity) + + def get_current_task_entity(self): + """Task entity for current context task. + + Returns: + Union[dict[str, Any], None]: Task entity. + + """ + if self._current_task_entity is not _NOT_SET: + return copy.deepcopy(self._current_task_entity) + task_entity = None + task_name = self.get_current_task_name() + if task_name: + folder_entity = self.get_current_folder_entity() + if folder_entity: + project_name = self.get_current_project_name() + task_entity = ayon_api.get_task_by_name( + project_name, + folder_id=folder_entity["id"], + task_name=task_name + ) + self._current_task_entity = task_entity + return copy.deepcopy(self._current_task_entity) + + def get_current_workfile_path(self): """Workfile path which was opened on context reset. @@ -1592,6 +1656,12 @@ class CreateContext: self._current_project_name) return self._current_project_anatomy + def get_current_project_settings(self): + if self._current_project_settings is None: + self._current_project_settings = get_project_settings( + self.get_current_project_name()) + return self._current_project_settings + @property def context_has_changed(self): """Host context has changed. @@ -1718,7 +1788,12 @@ class CreateContext: self._current_task_name = task_name self._current_workfile_path = workfile_path + self._current_folder_entity = _NOT_SET + self._current_task_entity = _NOT_SET + self._current_task_type = _NOT_SET + self._current_project_anatomy = None + self._current_project_settings = None def reset_plugins(self, discover_publish_plugins=True): """Reload plugins. @@ -1772,7 +1847,7 @@ class CreateContext: def _reset_creator_plugins(self): # Prepare settings - project_settings = get_project_settings(self.project_name) + project_settings = self.get_current_project_settings() # Discover and prepare creators creators = {} diff --git a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py index b4d02f2ba5..b6636696c1 100644 --- a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py +++ b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py @@ -398,7 +398,11 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): anatomy_data.update(folder_data) return - if instance.data.get("newAssetPublishing"): + if ( + instance.data.get("newHierarchyIntegration") + # Backwards compatible (Deprecated since 24/06/06) + or instance.data.get("newAssetPublishing") + ): hierarchy = instance.data["hierarchy"] anatomy_data["hierarchy"] = hierarchy @@ -416,7 +420,7 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): "path": instance.data["folderPath"], # TODO get folder type from hierarchy # Using 'Shot' is current default behavior of editorial - # (or 'newAssetPublishing') publishing. + # (or 'newHierarchyIntegration') publishing. "type": "Shot", }, }) @@ -439,15 +443,22 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): if task_data: # Fill task data # - if we're in editorial, make sure the task type is filled - if ( - not instance.data.get("newAssetPublishing") - or task_data["type"] - ): + new_hierarchy = ( + instance.data.get("newHierarchyIntegration") + # Backwards compatible (Deprecated since 24/06/06) + or instance.data.get("newAssetPublishing") + ) + if not new_hierarchy or task_data["type"]: anatomy_data["task"] = task_data return # New hierarchy is not created, so we can only skip rest of the logic - if not instance.data.get("newAssetPublishing"): + new_hierarchy = ( + instance.data.get("newHierarchyIntegration") + # Backwards compatible (Deprecated since 24/06/06) + or instance.data.get("newAssetPublishing") + ) + if not new_hierarchy: return # Try to find task data based on hierarchy context and folder path diff --git a/client/ayon_core/plugins/publish/validate_asset_docs.py b/client/ayon_core/plugins/publish/validate_asset_docs.py index 95fe4252be..b80b81b366 100644 --- a/client/ayon_core/plugins/publish/validate_asset_docs.py +++ b/client/ayon_core/plugins/publish/validate_asset_docs.py @@ -24,7 +24,11 @@ class ValidateFolderEntities(pyblish.api.InstancePlugin): if instance.data.get("folderEntity"): self.log.debug("Instance has set fodler entity in its data.") - elif instance.data.get("newAssetPublishing"): + elif ( + instance.data.get("newHierarchyIntegration") + # Backwards compatible (Deprecated since 24/06/06) + or instance.data.get("newAssetPublishing") + ): # skip if it is editorial self.log.debug("Editorial instance has no need to check...") diff --git a/client/ayon_core/resources/ftrack/action_icons/ActionAskWhereIRun.svg b/client/ayon_core/resources/ftrack/action_icons/ActionAskWhereIRun.svg deleted file mode 100644 index c02b8f83d8..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/ActionAskWhereIRun.svg +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/AssetsRemover.svg b/client/ayon_core/resources/ftrack/action_icons/AssetsRemover.svg deleted file mode 100644 index e838ee9f28..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/AssetsRemover.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/ayon_core/resources/ftrack/action_icons/BatchTasks.svg b/client/ayon_core/resources/ftrack/action_icons/BatchTasks.svg deleted file mode 100644 index 5cf5d423dd..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/BatchTasks.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/ComponentOpen.svg b/client/ayon_core/resources/ftrack/action_icons/ComponentOpen.svg deleted file mode 100644 index f549e6142b..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/ComponentOpen.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/CreateFolders.svg b/client/ayon_core/resources/ftrack/action_icons/CreateFolders.svg deleted file mode 100644 index 18efc273aa..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/CreateFolders.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/CreateProjectFolders.svg b/client/ayon_core/resources/ftrack/action_icons/CreateProjectFolders.svg deleted file mode 100644 index 0e5821b0be..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/CreateProjectFolders.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/DeleteAsset.svg b/client/ayon_core/resources/ftrack/action_icons/DeleteAsset.svg deleted file mode 100644 index 855bdae7c5..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/DeleteAsset.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/Delivery.svg b/client/ayon_core/resources/ftrack/action_icons/Delivery.svg deleted file mode 100644 index a6333333ae..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/Delivery.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/MultipleNotes.svg b/client/ayon_core/resources/ftrack/action_icons/MultipleNotes.svg deleted file mode 100644 index 40113fc709..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/MultipleNotes.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/OpenPypeAdmin.svg b/client/ayon_core/resources/ftrack/action_icons/OpenPypeAdmin.svg deleted file mode 100644 index c2abc6146f..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/OpenPypeAdmin.svg +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/PrepareProject.svg b/client/ayon_core/resources/ftrack/action_icons/PrepareProject.svg deleted file mode 100644 index 644d83f84d..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/PrepareProject.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/RV.png b/client/ayon_core/resources/ftrack/action_icons/RV.png deleted file mode 100644 index 741e7a9772..0000000000 Binary files a/client/ayon_core/resources/ftrack/action_icons/RV.png and /dev/null differ diff --git a/client/ayon_core/resources/ftrack/action_icons/SeedProject.svg b/client/ayon_core/resources/ftrack/action_icons/SeedProject.svg deleted file mode 100644 index ff818b5ecb..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/SeedProject.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/SortReview.svg b/client/ayon_core/resources/ftrack/action_icons/SortReview.svg deleted file mode 100644 index 13a7def648..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/SortReview.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/TestAction.svg b/client/ayon_core/resources/ftrack/action_icons/TestAction.svg deleted file mode 100644 index 917ef2d0c7..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/TestAction.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/action_icons/Thumbnail.svg b/client/ayon_core/resources/ftrack/action_icons/Thumbnail.svg deleted file mode 100644 index 9af330e79a..0000000000 --- a/client/ayon_core/resources/ftrack/action_icons/Thumbnail.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/client/ayon_core/resources/ftrack/sign_in_message.html b/client/ayon_core/resources/ftrack/sign_in_message.html deleted file mode 100644 index 8ee2828c26..0000000000 --- a/client/ayon_core/resources/ftrack/sign_in_message.html +++ /dev/null @@ -1,32 +0,0 @@ - - - -

Sign in to Ftrack was successful

-

- You signed in with username {}. -

-

- You can close this window now. -

- - diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index ede772b917..4e2cfd8783 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -8,6 +8,7 @@ import tempfile import shutil import inspect from abc import ABCMeta, abstractmethod +import re import six import arrow @@ -39,6 +40,7 @@ from ayon_core.pipeline.create.context import ( ) from ayon_core.pipeline.publish import get_publish_instance_label from ayon_core.tools.common_models import HierarchyModel +from ayon_core.lib.profiles_filtering import filter_profiles # Define constant for plugin orders offset PLUGIN_ORDER_OFFSET = 0.5 @@ -1686,6 +1688,15 @@ class PublisherController(BasePublisherController): """Publish plugins.""" return self._create_context.publish_plugins + def _get_current_project_settings(self): + """Current project settings. + + Returns: + dict + """ + + return self._create_context.get_current_project_settings() + # Hierarchy model def get_folder_items(self, project_name, sender=None): return self._hierarchy_model.get_folder_items(project_name, sender) @@ -1827,8 +1838,13 @@ class PublisherController(BasePublisherController): def _collect_creator_items(self): # TODO add crashed initialization of create plugins to report output = {} + allowed_creator_pattern = self._get_allowed_creators_pattern() for identifier, creator in self._create_context.creators.items(): try: + if (not self._is_label_allowed( + creator.label, allowed_creator_pattern)): + self.log.debug(f"{creator.label} not allowed for context") + continue output[identifier] = CreatorItem.from_creator(creator) except Exception: self.log.error( @@ -1839,6 +1855,60 @@ class PublisherController(BasePublisherController): return output + def _get_allowed_creators_pattern(self): + """Provide regex pattern for configured creator labels in this context + + If no profile matches current context, it shows all creators. + Support usage of regular expressions for configured values. + Returns: + (re.Pattern)[optional]: None or regex compiled patterns + into single one ('Render|Image.*') + """ + + task_type = self._create_context.get_current_task_type() + project_settings = self._get_current_project_settings() + + filter_creator_profiles = ( + project_settings + ["core"] + ["tools"] + ["creator"] + ["filter_creator_profiles"] + ) + filtering_criteria = { + "task_names": self.current_task_name, + "task_types": task_type, + "host_names": self._create_context.host_name + } + profile = filter_profiles( + filter_creator_profiles, + filtering_criteria, + logger=self.log + ) + + allowed_creator_pattern = None + if profile: + allowed_creator_labels = { + label + for label in profile["creator_labels"] + if label + } + self.log.debug(f"Only allowed `{allowed_creator_labels}` creators") + allowed_creator_pattern = ( + re.compile("|".join(allowed_creator_labels))) + return allowed_creator_pattern + + def _is_label_allowed(self, label, allowed_labels_regex): + """Implement regex support for allowed labels. + + Args: + label (str): Label of creator - shown in Publisher + allowed_labels_regex (re.Pattern): compiled regular expression + """ + if not allowed_labels_regex: + return True + return bool(allowed_labels_regex.match(label)) + def _reset_instances(self): """Reset create instances.""" if self._resetting_instances: diff --git a/server/settings/tools.py b/server/settings/tools.py index 1d32169954..1cb070e2af 100644 --- a/server/settings/tools.py +++ b/server/settings/tools.py @@ -35,6 +35,28 @@ class ProductNameProfile(BaseSettingsModel): template: str = SettingsField("", title="Template") +class FilterCreatorProfile(BaseSettingsModel): + """Provide list of allowed Creator identifiers for context""" + + _layout = "expanded" + host_names: list[str] = SettingsField( + default_factory=list, title="Host names" + ) + task_types: list[str] = SettingsField( + default_factory=list, + title="Task types", + enum_resolver=task_types_enum + ) + task_names: list[str] = SettingsField( + default_factory=list, + title="Task names") + creator_labels: list[str] = SettingsField( + default_factory=list, + title="Allowed Creator Labels", + description="Copy creator label from Publisher, regex supported." + ) + + class CreatorToolModel(BaseSettingsModel): # TODO this was dynamic dictionary '{name: task_names}' product_types_smart_select: list[ProductTypeSmartSelectModel] = ( @@ -48,6 +70,13 @@ class CreatorToolModel(BaseSettingsModel): title="Product name profiles" ) + filter_creator_profiles: list[FilterCreatorProfile] = SettingsField( + default_factory=list, + title="Filter creator profiles", + description="Allowed list of creator labels that will be only shown if " + "profile matches context." + ) + @validator("product_types_smart_select") def validate_unique_name(cls, value): ensure_unique_names(value) @@ -420,7 +449,8 @@ DEFAULT_TOOLS_VALUES = { "tasks": [], "template": "SK_{folder[name]}{variant}" } - ] + ], + "filter_creator_profiles": [] }, "Workfiles": { "workfile_template_profiles": [ diff --git a/server_addon/aftereffects/client/ayon_aftereffects/version.py b/server_addon/aftereffects/client/ayon_aftereffects/version.py index 8ab87ea78c..2faa06ba3a 100644 --- a/server_addon/aftereffects/client/ayon_aftereffects/version.py +++ b/server_addon/aftereffects/client/ayon_aftereffects/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring AYON addon 'aftereffects' version.""" -__version__ = "0.2.0" +__version__ = "0.2.1" diff --git a/server_addon/applications/client/ayon_applications/version.py b/server_addon/applications/client/ayon_applications/version.py index e69de29bb2..fe2358c4a0 100644 --- a/server_addon/applications/client/ayon_applications/version.py +++ b/server_addon/applications/client/ayon_applications/version.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +"""Package declaring AYON addon 'applications' version.""" +__version__ = "0.2.3" diff --git a/server_addon/flame/client/ayon_flame/plugins/publish/collect_timeline_instances.py b/server_addon/flame/client/ayon_flame/plugins/publish/collect_timeline_instances.py index 35591f1a0d..7680483db1 100644 --- a/server_addon/flame/client/ayon_flame/plugins/publish/collect_timeline_instances.py +++ b/server_addon/flame/client/ayon_flame/plugins/publish/collect_timeline_instances.py @@ -152,7 +152,9 @@ class CollectTimelineInstances(pyblish.api.ContextPlugin): task["name"]: {"type": task["type"]} for task in self.add_tasks}, "representations": [], - "newAssetPublishing": True + "newHierarchyIntegration": True, + # Backwards compatible (Deprecated since 24/06/06) + "newAssetPublishing": True, }) self.log.debug("__ inst_data: {}".format(pformat(inst_data))) diff --git a/server_addon/flame/client/ayon_flame/version.py b/server_addon/flame/client/ayon_flame/version.py index 0004797e59..68bdb6e6a0 100644 --- a/server_addon/flame/client/ayon_flame/version.py +++ b/server_addon/flame/client/ayon_flame/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring AYON addon 'flame' version.""" -__version__ = "0.2.0" +__version__ = "0.2.1" diff --git a/server_addon/flame/package.py b/server_addon/flame/package.py index f228e61f8e..b25a514a9f 100644 --- a/server_addon/flame/package.py +++ b/server_addon/flame/package.py @@ -1,6 +1,6 @@ name = "flame" title = "Flame" -version = "0.2.0" +version = "0.2.1" client_dir = "ayon_flame" 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 27b3b54ffa..ca60231361 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 @@ -140,7 +140,9 @@ class PrecollectInstances(pyblish.api.ContextPlugin): # add all additional tags "tags": phiero.get_track_item_tags(track_item), - "newAssetPublishing": True + "newHierarchyIntegration": True, + # Backwards compatible (Deprecated since 24/06/06) + "newAssetPublishing": True, }) # otio clip data diff --git a/server_addon/hiero/client/ayon_hiero/version.py b/server_addon/hiero/client/ayon_hiero/version.py index fe6d62221c..74ebfba8b0 100644 --- a/server_addon/hiero/client/ayon_hiero/version.py +++ b/server_addon/hiero/client/ayon_hiero/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring AYON addon 'hiero' version.""" -__version__ = "0.2.1" +__version__ = "0.2.2" diff --git a/server_addon/hiero/package.py b/server_addon/hiero/package.py index 95714d95da..eba3fb12f4 100644 --- a/server_addon/hiero/package.py +++ b/server_addon/hiero/package.py @@ -1,6 +1,6 @@ name = "hiero" title = "Hiero" -version = "0.2.1" +version = "0.2.2" client_dir = "ayon_hiero" ayon_required_addons = { diff --git a/server_addon/maya/client/ayon_maya/version.py b/server_addon/maya/client/ayon_maya/version.py index e69de29bb2..1655067287 100644 --- a/server_addon/maya/client/ayon_maya/version.py +++ b/server_addon/maya/client/ayon_maya/version.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +"""Package declaring AYON addon 'maya' version.""" +__version__ = "0.2.2" diff --git a/server_addon/resolve/client/ayon_resolve/plugins/publish/precollect_instances.py b/server_addon/resolve/client/ayon_resolve/plugins/publish/precollect_instances.py index 10e1eba3e3..e2b6e7ba37 100644 --- a/server_addon/resolve/client/ayon_resolve/plugins/publish/precollect_instances.py +++ b/server_addon/resolve/client/ayon_resolve/plugins/publish/precollect_instances.py @@ -101,6 +101,8 @@ class PrecollectInstances(pyblish.api.ContextPlugin): "fps": context.data["fps"], "handleStart": handle_start, "handleEnd": handle_end, + "newHierarchyIntegration": True, + # Backwards compatible (Deprecated since 24/06/06) "newAssetPublishing": True, "families": ["clip"], "productType": product_type, diff --git a/server_addon/resolve/client/ayon_resolve/version.py b/server_addon/resolve/client/ayon_resolve/version.py index c8f8df554c..53e8882ed7 100644 --- a/server_addon/resolve/client/ayon_resolve/version.py +++ b/server_addon/resolve/client/ayon_resolve/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring AYON addon 'resolve' version.""" -__version__ = "0.2.0" +__version__ = "0.2.1" diff --git a/server_addon/resolve/package.py b/server_addon/resolve/package.py index 993f700e40..47b6c9a8b6 100644 --- a/server_addon/resolve/package.py +++ b/server_addon/resolve/package.py @@ -1,6 +1,6 @@ name = "resolve" title = "DaVinci Resolve" -version = "0.2.0" +version = "0.2.1" client_dir = "ayon_resolve" diff --git a/server_addon/traypublisher/client/ayon_traypublisher/plugins/create/create_editorial.py b/server_addon/traypublisher/client/ayon_traypublisher/plugins/create/create_editorial.py index a2f6f211f5..b013ed6864 100644 --- a/server_addon/traypublisher/client/ayon_traypublisher/plugins/create/create_editorial.py +++ b/server_addon/traypublisher/client/ayon_traypublisher/plugins/create/create_editorial.py @@ -676,6 +676,8 @@ or updating already created. Publishing will create OTIO file. "shotName": shot_name, "variant": variant_name, "task": None, + "newHierarchyIntegration": True, + # Backwards compatible (Deprecated since 24/06/06) "newAssetPublishing": True, "trackStartFrame": track_start_frame, "timelineOffset": timeline_offset, diff --git a/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/collect_sequence_frame_data.py b/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/collect_sequence_frame_data.py index de18050f41..c2894e15ad 100644 --- a/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/collect_sequence_frame_data.py +++ b/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/collect_sequence_frame_data.py @@ -28,8 +28,12 @@ class CollectSequenceFrameData( return # editorial would fail since they might not be in database yet - new_folder_publishing = instance.data.get("newAssetPublishing") - if new_folder_publishing: + new_hierarchy = ( + instance.data.get("newHierarchyIntegration") + # Backwards compatible (Deprecated since 24/06/06) + or instance.data.get("newAssetPublishing") + ) + if new_hierarchy: self.log.debug("Instance is creating new folders. Skipping.") return diff --git a/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/validate_frame_ranges.py b/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/validate_frame_ranges.py index 13f13b05bb..42127f4a5f 100644 --- a/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/validate_frame_ranges.py +++ b/server_addon/traypublisher/client/ayon_traypublisher/plugins/publish/validate_frame_ranges.py @@ -33,8 +33,12 @@ class ValidateFrameRange(OptionalPyblishPluginMixin, return # editorial would fail since they might not be in database yet - new_folder_publishing = instance.data.get("newAssetPublishing") - if new_folder_publishing: + new_hierarchy = ( + instance.data.get("newHierarchyIntegration") + # Backwards compatible (Deprecated since 24/06/06) + or instance.data.get("newAssetPublishing") + ) + if new_hierarchy: self.log.debug("Instance is creating new folder. Skipping.") return diff --git a/server_addon/traypublisher/client/ayon_traypublisher/version.py b/server_addon/traypublisher/client/ayon_traypublisher/version.py index 01f2ad4f1d..514b5691d3 100644 --- a/server_addon/traypublisher/client/ayon_traypublisher/version.py +++ b/server_addon/traypublisher/client/ayon_traypublisher/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring AYON addon 'traypublisher' version.""" -__version__ = "0.2.2" +__version__ = "0.2.3" diff --git a/server_addon/traypublisher/package.py b/server_addon/traypublisher/package.py index 85611526d0..8fc725c6cb 100644 --- a/server_addon/traypublisher/package.py +++ b/server_addon/traypublisher/package.py @@ -1,6 +1,6 @@ name = "traypublisher" title = "TrayPublisher" -version = "0.2.2" +version = "0.2.3" client_dir = "ayon_traypublisher" diff --git a/client/ayon_core/hosts/unreal/README.md b/server_addon/unreal/client/ayon_unreal/README.md similarity index 100% rename from client/ayon_core/hosts/unreal/README.md rename to server_addon/unreal/client/ayon_unreal/README.md diff --git a/server_addon/unreal/client/ayon_unreal/__init__.py b/server_addon/unreal/client/ayon_unreal/__init__.py new file mode 100644 index 0000000000..6be5ae13c9 --- /dev/null +++ b/server_addon/unreal/client/ayon_unreal/__init__.py @@ -0,0 +1,10 @@ +from .version import __version__ +from .addon import UNREAL_ADDON_ROOT, UnrealAddon + + +__all__ = ( + "__version__", + + "UNREAL_ADDON_ROOT", + "UnrealAddon", +) diff --git a/client/ayon_core/hosts/unreal/addon.py b/server_addon/unreal/client/ayon_unreal/addon.py similarity index 85% rename from client/ayon_core/hosts/unreal/addon.py rename to server_addon/unreal/client/ayon_unreal/addon.py index c65490bd8c..d9e1bfaca9 100644 --- a/client/ayon_core/hosts/unreal/addon.py +++ b/server_addon/unreal/client/ayon_unreal/addon.py @@ -2,16 +2,19 @@ import os import re from ayon_core.addon import AYONAddon, IHostAddon -UNREAL_ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) +from .version import __version__ + +UNREAL_ADDON_ROOT = os.path.dirname(os.path.abspath(__file__)) class UnrealAddon(AYONAddon, IHostAddon): name = "unreal" + version = __version__ host_name = "unreal" def get_global_environments(self): return { - "AYON_UNREAL_ROOT": UNREAL_ROOT_DIR, + "AYON_UNREAL_ROOT": UNREAL_ADDON_ROOT, } def add_implementation_envs(self, env, app): @@ -40,11 +43,11 @@ class UnrealAddon(AYONAddon, IHostAddon): ue_version = app.name.replace("-", ".") unreal_plugin_path = os.path.join( - UNREAL_ROOT_DIR, "integration", "UE_{}".format(ue_version), "Ayon" + UNREAL_ADDON_ROOT, "integration", "UE_{}".format(ue_version), "Ayon" ) if not Path(unreal_plugin_path).exists(): compatible_versions = get_compatible_integration( - ue_version, Path(UNREAL_ROOT_DIR) / "integration" + ue_version, Path(UNREAL_ADDON_ROOT) / "integration" ) if compatible_versions: unreal_plugin_path = compatible_versions[-1] / "Ayon" @@ -67,7 +70,7 @@ class UnrealAddon(AYONAddon, IHostAddon): if app.host_name != self.host_name: return [] return [ - os.path.join(UNREAL_ROOT_DIR, "hooks") + os.path.join(UNREAL_ADDON_ROOT, "hooks") ] def get_workfile_extensions(self): diff --git a/client/ayon_core/hosts/unreal/api/__init__.py b/server_addon/unreal/client/ayon_unreal/api/__init__.py similarity index 100% rename from client/ayon_core/hosts/unreal/api/__init__.py rename to server_addon/unreal/client/ayon_unreal/api/__init__.py diff --git a/client/ayon_core/hosts/unreal/api/helpers.py b/server_addon/unreal/client/ayon_unreal/api/helpers.py similarity index 100% rename from client/ayon_core/hosts/unreal/api/helpers.py rename to server_addon/unreal/client/ayon_unreal/api/helpers.py diff --git a/client/ayon_core/hosts/unreal/api/pipeline.py b/server_addon/unreal/client/ayon_unreal/api/pipeline.py similarity index 98% rename from client/ayon_core/hosts/unreal/api/pipeline.py rename to server_addon/unreal/client/ayon_unreal/api/pipeline.py index a60564d5b0..f04d8e10a4 100644 --- a/client/ayon_core/hosts/unreal/api/pipeline.py +++ b/server_addon/unreal/client/ayon_unreal/api/pipeline.py @@ -21,8 +21,8 @@ from ayon_core.pipeline import ( get_current_project_name, ) from ayon_core.tools.utils import host_tools -import ayon_core.hosts.unreal from ayon_core.host import HostBase, ILoadHost, IPublishHost +from ayon_unreal import UNREAL_ADDON_ROOT import unreal # noqa @@ -36,8 +36,7 @@ UNREAL_VERSION = semver.VersionInfo( *os.getenv("AYON_UNREAL_VERSION").split(".") ) -HOST_DIR = os.path.dirname(os.path.abspath(ayon_core.hosts.unreal.__file__)) -PLUGINS_DIR = os.path.join(HOST_DIR, "plugins") +PLUGINS_DIR = os.path.join(UNREAL_ADDON_ROOT, "plugins") PUBLISH_PATH = os.path.join(PLUGINS_DIR, "publish") LOAD_PATH = os.path.join(PLUGINS_DIR, "load") CREATE_PATH = os.path.join(PLUGINS_DIR, "create") @@ -324,7 +323,7 @@ def show_tools_popup(): Popup will disappear on click or losing focus. """ - from ayon_core.hosts.unreal.api import tools_ui + from ayon_unreal.api import tools_ui tools_ui.show_tools_popup() @@ -334,7 +333,7 @@ def show_tools_dialog(): Dialog will stay visible. """ - from ayon_core.hosts.unreal.api import tools_ui + from ayon_unreal.api import tools_ui tools_ui.show_tools_dialog() diff --git a/client/ayon_core/hosts/unreal/api/plugin.py b/server_addon/unreal/client/ayon_unreal/api/plugin.py similarity index 100% rename from client/ayon_core/hosts/unreal/api/plugin.py rename to server_addon/unreal/client/ayon_unreal/api/plugin.py diff --git a/client/ayon_core/hosts/unreal/api/rendering.py b/server_addon/unreal/client/ayon_unreal/api/rendering.py similarity index 99% rename from client/ayon_core/hosts/unreal/api/rendering.py rename to server_addon/unreal/client/ayon_unreal/api/rendering.py index 395513aefa..6ae9fee26d 100644 --- a/client/ayon_core/hosts/unreal/api/rendering.py +++ b/server_addon/unreal/client/ayon_unreal/api/rendering.py @@ -4,8 +4,8 @@ import unreal from ayon_core.settings import get_project_settings from ayon_core.pipeline import Anatomy -from ayon_core.hosts.unreal.api import pipeline from ayon_core.tools.utils import show_message_dialog +from ayon_unreal.api import pipeline queue = None diff --git a/client/ayon_core/hosts/unreal/api/tools_ui.py b/server_addon/unreal/client/ayon_unreal/api/tools_ui.py similarity index 98% rename from client/ayon_core/hosts/unreal/api/tools_ui.py rename to server_addon/unreal/client/ayon_unreal/api/tools_ui.py index efae5bb702..f464d39b92 100644 --- a/client/ayon_core/hosts/unreal/api/tools_ui.py +++ b/server_addon/unreal/client/ayon_unreal/api/tools_ui.py @@ -7,7 +7,7 @@ from ayon_core import ( ) from ayon_core.tools.utils import host_tools from ayon_core.tools.utils.lib import qt_app_context -from ayon_core.hosts.unreal.api import rendering +from ayon_unreal.api import rendering class ToolsBtnsWidget(QtWidgets.QWidget): diff --git a/client/ayon_core/hosts/unreal/hooks/pre_workfile_preparation.py b/server_addon/unreal/client/ayon_unreal/hooks/pre_workfile_preparation.py similarity index 98% rename from client/ayon_core/hosts/unreal/hooks/pre_workfile_preparation.py rename to server_addon/unreal/client/ayon_unreal/hooks/pre_workfile_preparation.py index e38591f65d..e70b3131b3 100644 --- a/client/ayon_core/hosts/unreal/hooks/pre_workfile_preparation.py +++ b/server_addon/unreal/client/ayon_unreal/hooks/pre_workfile_preparation.py @@ -15,12 +15,12 @@ from ayon_applications import ( LaunchTypes, ) from ayon_core.pipeline.workfile import get_workfile_template_key -import ayon_core.hosts.unreal.lib as unreal_lib -from ayon_core.hosts.unreal.ue_workers import ( +import ayon_unreal.lib as unreal_lib +from ayon_unreal.ue_workers import ( UEProjectGenerationWorker, UEPluginInstallWorker ) -from ayon_core.hosts.unreal.ui import SplashScreen +from ayon_unreal.ui import SplashScreen class UnrealPrelaunchHook(PreLaunchHook): diff --git a/client/ayon_core/hosts/unreal/integration b/server_addon/unreal/client/ayon_unreal/integration similarity index 100% rename from client/ayon_core/hosts/unreal/integration rename to server_addon/unreal/client/ayon_unreal/integration diff --git a/client/ayon_core/hosts/unreal/lib.py b/server_addon/unreal/client/ayon_unreal/lib.py similarity index 100% rename from client/ayon_core/hosts/unreal/lib.py rename to server_addon/unreal/client/ayon_unreal/lib.py diff --git a/client/ayon_core/hosts/unreal/plugins/__init__.py b/server_addon/unreal/client/ayon_unreal/plugins/__init__.py similarity index 100% rename from client/ayon_core/hosts/unreal/plugins/__init__.py rename to server_addon/unreal/client/ayon_unreal/plugins/__init__.py diff --git a/client/ayon_core/hosts/unreal/plugins/create/create_camera.py b/server_addon/unreal/client/ayon_unreal/plugins/create/create_camera.py similarity index 90% rename from client/ayon_core/hosts/unreal/plugins/create/create_camera.py rename to server_addon/unreal/client/ayon_unreal/plugins/create/create_camera.py index 3ffb9dd70b..d9a66215db 100644 --- a/client/ayon_core/hosts/unreal/plugins/create/create_camera.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/create/create_camera.py @@ -2,8 +2,8 @@ import unreal from ayon_core.pipeline import CreatorError -from ayon_core.hosts.unreal.api.pipeline import UNREAL_VERSION -from ayon_core.hosts.unreal.api.plugin import ( +from ayon_unreal.api.pipeline import UNREAL_VERSION +from ayon_unreal.api.plugin import ( UnrealAssetCreator, ) diff --git a/client/ayon_core/hosts/unreal/plugins/create/create_layout.py b/server_addon/unreal/client/ayon_unreal/plugins/create/create_layout.py similarity index 84% rename from client/ayon_core/hosts/unreal/plugins/create/create_layout.py rename to server_addon/unreal/client/ayon_unreal/plugins/create/create_layout.py index 9bcddfe507..fa4fc072ae 100644 --- a/client/ayon_core/hosts/unreal/plugins/create/create_layout.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/create/create_layout.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from ayon_core.hosts.unreal.api.plugin import ( +from ayon_unreal.api.plugin import ( UnrealActorCreator, ) diff --git a/client/ayon_core/hosts/unreal/plugins/create/create_look.py b/server_addon/unreal/client/ayon_unreal/plugins/create/create_look.py similarity index 96% rename from client/ayon_core/hosts/unreal/plugins/create/create_look.py rename to server_addon/unreal/client/ayon_unreal/plugins/create/create_look.py index edc6d45f2f..9017997864 100644 --- a/client/ayon_core/hosts/unreal/plugins/create/create_look.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/create/create_look.py @@ -2,10 +2,10 @@ import unreal from ayon_core.pipeline import CreatorError -from ayon_core.hosts.unreal.api.pipeline import ( +from ayon_unreal.api.pipeline import ( create_folder ) -from ayon_core.hosts.unreal.api.plugin import ( +from ayon_unreal.api.plugin import ( UnrealAssetCreator ) from ayon_core.lib import UILabelDef diff --git a/client/ayon_core/hosts/unreal/plugins/create/create_render.py b/server_addon/unreal/client/ayon_unreal/plugins/create/create_render.py similarity index 99% rename from client/ayon_core/hosts/unreal/plugins/create/create_render.py rename to server_addon/unreal/client/ayon_unreal/plugins/create/create_render.py index 5a96d9809c..e1999e5385 100644 --- a/client/ayon_core/hosts/unreal/plugins/create/create_render.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/create/create_render.py @@ -3,12 +3,12 @@ from pathlib import Path import unreal -from ayon_core.hosts.unreal.api.pipeline import ( +from ayon_unreal.api.pipeline import ( UNREAL_VERSION, create_folder, get_subsequences, ) -from ayon_core.hosts.unreal.api.plugin import ( +from ayon_unreal.api.plugin import ( UnrealAssetCreator ) from ayon_core.lib import ( diff --git a/client/ayon_core/hosts/unreal/plugins/create/create_staticmeshfbx.py b/server_addon/unreal/client/ayon_unreal/plugins/create/create_staticmeshfbx.py similarity index 85% rename from client/ayon_core/hosts/unreal/plugins/create/create_staticmeshfbx.py rename to server_addon/unreal/client/ayon_unreal/plugins/create/create_staticmeshfbx.py index 603b852873..79cc249083 100644 --- a/client/ayon_core/hosts/unreal/plugins/create/create_staticmeshfbx.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/create/create_staticmeshfbx.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from ayon_core.hosts.unreal.api.plugin import ( +from ayon_unreal.api.plugin import ( UnrealAssetCreator, ) diff --git a/client/ayon_core/hosts/unreal/plugins/create/create_uasset.py b/server_addon/unreal/client/ayon_unreal/plugins/create/create_uasset.py similarity index 97% rename from client/ayon_core/hosts/unreal/plugins/create/create_uasset.py rename to server_addon/unreal/client/ayon_unreal/plugins/create/create_uasset.py index 1cd532c63d..f053503c45 100644 --- a/client/ayon_core/hosts/unreal/plugins/create/create_uasset.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/create/create_uasset.py @@ -4,7 +4,7 @@ from pathlib import Path import unreal from ayon_core.pipeline import CreatorError -from ayon_core.hosts.unreal.api.plugin import ( +from ayon_unreal.api.plugin import ( UnrealAssetCreator, ) diff --git a/client/ayon_core/hosts/unreal/plugins/inventory/delete_unused_assets.py b/server_addon/unreal/client/ayon_unreal/plugins/inventory/delete_unused_assets.py similarity index 93% rename from client/ayon_core/hosts/unreal/plugins/inventory/delete_unused_assets.py rename to server_addon/unreal/client/ayon_unreal/plugins/inventory/delete_unused_assets.py index 1f63a1697a..1892f8ab14 100644 --- a/client/ayon_core/hosts/unreal/plugins/inventory/delete_unused_assets.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/inventory/delete_unused_assets.py @@ -1,7 +1,7 @@ import unreal -from ayon_core.hosts.unreal.api.tools_ui import qt_app_context -from ayon_core.hosts.unreal.api.pipeline import delete_asset_if_unused +from ayon_unreal.api.tools_ui import qt_app_context +from ayon_unreal.api.pipeline import delete_asset_if_unused from ayon_core.pipeline import InventoryAction diff --git a/client/ayon_core/hosts/unreal/plugins/inventory/update_actors.py b/server_addon/unreal/client/ayon_unreal/plugins/inventory/update_actors.py similarity index 98% rename from client/ayon_core/hosts/unreal/plugins/inventory/update_actors.py rename to server_addon/unreal/client/ayon_unreal/plugins/inventory/update_actors.py index 96965d68e6..3ca861f0c7 100644 --- a/client/ayon_core/hosts/unreal/plugins/inventory/update_actors.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/inventory/update_actors.py @@ -1,6 +1,6 @@ import unreal -from ayon_core.hosts.unreal.api.pipeline import ( +from ayon_unreal.api.pipeline import ( ls, replace_static_mesh_actors, replace_skeletal_mesh_actors, diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_alembic_animation.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_alembic_animation.py similarity index 98% rename from client/ayon_core/hosts/unreal/plugins/load/load_alembic_animation.py rename to server_addon/unreal/client/ayon_unreal/plugins/load/load_alembic_animation.py index a12f4f41b4..109daf86c4 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_alembic_animation.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/load/load_alembic_animation.py @@ -6,8 +6,8 @@ from ayon_core.pipeline import ( get_representation_path, AYON_CONTAINER_ID ) -from ayon_core.hosts.unreal.api import plugin -from ayon_core.hosts.unreal.api import pipeline as unreal_pipeline +from ayon_unreal.api import plugin +from ayon_unreal.api import pipeline as unreal_pipeline import unreal # noqa diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_animation.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_animation.py similarity index 99% rename from client/ayon_core/hosts/unreal/plugins/load/load_animation.py rename to server_addon/unreal/client/ayon_unreal/plugins/load/load_animation.py index f6a612ce53..1cb5c58ea4 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_animation.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/load/load_animation.py @@ -13,8 +13,8 @@ from ayon_core.pipeline import ( get_representation_path, AYON_CONTAINER_ID ) -from ayon_core.hosts.unreal.api import plugin -from ayon_core.hosts.unreal.api import pipeline as unreal_pipeline +from ayon_unreal.api import plugin +from ayon_unreal.api import pipeline as unreal_pipeline class AnimationFBXLoader(plugin.Loader): diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_camera.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_camera.py similarity index 99% rename from client/ayon_core/hosts/unreal/plugins/load/load_camera.py rename to server_addon/unreal/client/ayon_unreal/plugins/load/load_camera.py index 681c83c6a1..10172094b6 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_camera.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/load/load_camera.py @@ -16,8 +16,8 @@ from ayon_core.pipeline import ( get_current_project_name, get_representation_path, ) -from ayon_core.hosts.unreal.api import plugin -from ayon_core.hosts.unreal.api.pipeline import ( +from ayon_unreal.api import plugin +from ayon_unreal.api.pipeline import ( generate_sequence, set_sequence_hierarchy, create_container, diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_geometrycache_abc.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_geometrycache_abc.py similarity index 98% rename from client/ayon_core/hosts/unreal/plugins/load/load_geometrycache_abc.py rename to server_addon/unreal/client/ayon_unreal/plugins/load/load_geometrycache_abc.py index ae7d41192a..1262ade9af 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_geometrycache_abc.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/load/load_geometrycache_abc.py @@ -6,8 +6,8 @@ from ayon_core.pipeline import ( get_representation_path, AYON_CONTAINER_ID ) -from ayon_core.hosts.unreal.api import plugin -from ayon_core.hosts.unreal.api.pipeline import ( +from ayon_unreal.api import plugin +from ayon_unreal.api.pipeline import ( AYON_ASSET_DIR, create_container, imprint, diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_layout.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_layout.py similarity index 99% rename from client/ayon_core/hosts/unreal/plugins/load/load_layout.py rename to server_addon/unreal/client/ayon_unreal/plugins/load/load_layout.py index 49d95c6459..25883a1ffb 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_layout.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/load/load_layout.py @@ -27,8 +27,8 @@ from ayon_core.pipeline import ( ) from ayon_core.pipeline.context_tools import get_current_folder_entity from ayon_core.settings import get_current_project_settings -from ayon_core.hosts.unreal.api import plugin -from ayon_core.hosts.unreal.api.pipeline import ( +from ayon_unreal.api import plugin +from ayon_unreal.api.pipeline import ( generate_sequence, set_sequence_hierarchy, create_container, diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_layout_existing.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_layout_existing.py similarity index 99% rename from client/ayon_core/hosts/unreal/plugins/load/load_layout_existing.py rename to server_addon/unreal/client/ayon_unreal/plugins/load/load_layout_existing.py index f9d438367b..df5f154d7c 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_layout_existing.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/load/load_layout_existing.py @@ -12,8 +12,8 @@ from ayon_core.pipeline import ( get_representation_path, AYON_CONTAINER_ID, ) -from ayon_core.hosts.unreal.api import plugin -from ayon_core.hosts.unreal.api import pipeline as upipeline +from ayon_unreal.api import plugin +from ayon_unreal.api import pipeline as upipeline class ExistingLayoutLoader(plugin.Loader): diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_abc.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_skeletalmesh_abc.py similarity index 98% rename from client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_abc.py rename to server_addon/unreal/client/ayon_unreal/plugins/load/load_skeletalmesh_abc.py index dfc5d58708..5db3e364f1 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_abc.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/load/load_skeletalmesh_abc.py @@ -6,8 +6,8 @@ from ayon_core.pipeline import ( get_representation_path, AYON_CONTAINER_ID ) -from ayon_core.hosts.unreal.api import plugin -from ayon_core.hosts.unreal.api.pipeline import ( +from ayon_unreal.api import plugin +from ayon_unreal.api.pipeline import ( AYON_ASSET_DIR, create_container, imprint, diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_fbx.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_skeletalmesh_fbx.py similarity index 98% rename from client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_fbx.py rename to server_addon/unreal/client/ayon_unreal/plugins/load/load_skeletalmesh_fbx.py index 513404ab98..6f1ebc1d51 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_skeletalmesh_fbx.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/load/load_skeletalmesh_fbx.py @@ -6,8 +6,8 @@ from ayon_core.pipeline import ( get_representation_path, AYON_CONTAINER_ID ) -from ayon_core.hosts.unreal.api import plugin -from ayon_core.hosts.unreal.api.pipeline import ( +from ayon_unreal.api import plugin +from ayon_unreal.api.pipeline import ( AYON_ASSET_DIR, create_container, imprint, diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_abc.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_staticmesh_abc.py similarity index 98% rename from client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_abc.py rename to server_addon/unreal/client/ayon_unreal/plugins/load/load_staticmesh_abc.py index 0bf6ce9eaa..f60a173cf6 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_abc.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/load/load_staticmesh_abc.py @@ -6,8 +6,8 @@ from ayon_core.pipeline import ( get_representation_path, AYON_CONTAINER_ID ) -from ayon_core.hosts.unreal.api import plugin -from ayon_core.hosts.unreal.api.pipeline import ( +from ayon_unreal.api import plugin +from ayon_unreal.api.pipeline import ( AYON_ASSET_DIR, create_container, imprint, diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_fbx.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_staticmesh_fbx.py similarity index 98% rename from client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_fbx.py rename to server_addon/unreal/client/ayon_unreal/plugins/load/load_staticmesh_fbx.py index b7bb57ac23..914f0e23f2 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_staticmesh_fbx.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/load/load_staticmesh_fbx.py @@ -6,8 +6,8 @@ from ayon_core.pipeline import ( get_representation_path, AYON_CONTAINER_ID ) -from ayon_core.hosts.unreal.api import plugin -from ayon_core.hosts.unreal.api.pipeline import ( +from ayon_unreal.api import plugin +from ayon_unreal.api.pipeline import ( AYON_ASSET_DIR, create_container, imprint, diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_uasset.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_uasset.py similarity index 97% rename from client/ayon_core/hosts/unreal/plugins/load/load_uasset.py rename to server_addon/unreal/client/ayon_unreal/plugins/load/load_uasset.py index 63f23ecc11..31c13aa9ee 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_uasset.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/load/load_uasset.py @@ -7,8 +7,8 @@ from ayon_core.pipeline import ( get_representation_path, AYON_CONTAINER_ID ) -from ayon_core.hosts.unreal.api import plugin -from ayon_core.hosts.unreal.api import pipeline as unreal_pipeline +from ayon_unreal.api import plugin +from ayon_unreal.api import pipeline as unreal_pipeline import unreal # noqa diff --git a/client/ayon_core/hosts/unreal/plugins/load/load_yeticache.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_yeticache.py similarity index 98% rename from client/ayon_core/hosts/unreal/plugins/load/load_yeticache.py rename to server_addon/unreal/client/ayon_unreal/plugins/load/load_yeticache.py index 708fc83745..79cf8e21f7 100644 --- a/client/ayon_core/hosts/unreal/plugins/load/load_yeticache.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/load/load_yeticache.py @@ -7,8 +7,8 @@ from ayon_core.pipeline import ( get_representation_path, AYON_CONTAINER_ID ) -from ayon_core.hosts.unreal.api import plugin -from ayon_core.hosts.unreal.api import pipeline as unreal_pipeline +from ayon_unreal.api import plugin +from ayon_unreal.api import pipeline as unreal_pipeline import unreal # noqa diff --git a/client/ayon_core/hosts/unreal/plugins/publish/collect_current_file.py b/server_addon/unreal/client/ayon_unreal/plugins/publish/collect_current_file.py similarity index 100% rename from client/ayon_core/hosts/unreal/plugins/publish/collect_current_file.py rename to server_addon/unreal/client/ayon_unreal/plugins/publish/collect_current_file.py diff --git a/client/ayon_core/hosts/unreal/plugins/publish/collect_instance_members.py b/server_addon/unreal/client/ayon_unreal/plugins/publish/collect_instance_members.py similarity index 100% rename from client/ayon_core/hosts/unreal/plugins/publish/collect_instance_members.py rename to server_addon/unreal/client/ayon_unreal/plugins/publish/collect_instance_members.py diff --git a/client/ayon_core/hosts/unreal/plugins/publish/collect_remove_marked.py b/server_addon/unreal/client/ayon_unreal/plugins/publish/collect_remove_marked.py similarity index 100% rename from client/ayon_core/hosts/unreal/plugins/publish/collect_remove_marked.py rename to server_addon/unreal/client/ayon_unreal/plugins/publish/collect_remove_marked.py diff --git a/client/ayon_core/hosts/unreal/plugins/publish/collect_render_instances.py b/server_addon/unreal/client/ayon_unreal/plugins/publish/collect_render_instances.py similarity index 98% rename from client/ayon_core/hosts/unreal/plugins/publish/collect_render_instances.py rename to server_addon/unreal/client/ayon_unreal/plugins/publish/collect_render_instances.py index ce2a03155b..a93bca70da 100644 --- a/client/ayon_core/hosts/unreal/plugins/publish/collect_render_instances.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/publish/collect_render_instances.py @@ -5,7 +5,7 @@ import pyblish.api from ayon_core.pipeline import get_current_project_name from ayon_core.pipeline import Anatomy -from ayon_core.hosts.unreal.api import pipeline +from ayon_unreal.api import pipeline class CollectRenderInstances(pyblish.api.InstancePlugin): diff --git a/client/ayon_core/hosts/unreal/plugins/publish/extract_camera.py b/server_addon/unreal/client/ayon_unreal/plugins/publish/extract_camera.py similarity index 98% rename from client/ayon_core/hosts/unreal/plugins/publish/extract_camera.py rename to server_addon/unreal/client/ayon_unreal/plugins/publish/extract_camera.py index ebc5452011..85f9cb0eaa 100644 --- a/client/ayon_core/hosts/unreal/plugins/publish/extract_camera.py +++ b/server_addon/unreal/client/ayon_unreal/plugins/publish/extract_camera.py @@ -5,7 +5,7 @@ import os import unreal from ayon_core.pipeline import publish -from ayon_core.hosts.unreal.api.pipeline import UNREAL_VERSION +from ayon_unreal.api.pipeline import UNREAL_VERSION class ExtractCamera(publish.Extractor): diff --git a/client/ayon_core/hosts/unreal/plugins/publish/extract_layout.py b/server_addon/unreal/client/ayon_unreal/plugins/publish/extract_layout.py similarity index 100% rename from client/ayon_core/hosts/unreal/plugins/publish/extract_layout.py rename to server_addon/unreal/client/ayon_unreal/plugins/publish/extract_layout.py diff --git a/client/ayon_core/hosts/unreal/plugins/publish/extract_look.py b/server_addon/unreal/client/ayon_unreal/plugins/publish/extract_look.py similarity index 100% rename from client/ayon_core/hosts/unreal/plugins/publish/extract_look.py rename to server_addon/unreal/client/ayon_unreal/plugins/publish/extract_look.py diff --git a/client/ayon_core/hosts/unreal/plugins/publish/extract_uasset.py b/server_addon/unreal/client/ayon_unreal/plugins/publish/extract_uasset.py similarity index 100% rename from client/ayon_core/hosts/unreal/plugins/publish/extract_uasset.py rename to server_addon/unreal/client/ayon_unreal/plugins/publish/extract_uasset.py diff --git a/client/ayon_core/hosts/unreal/plugins/publish/validate_no_dependencies.py b/server_addon/unreal/client/ayon_unreal/plugins/publish/validate_no_dependencies.py similarity index 100% rename from client/ayon_core/hosts/unreal/plugins/publish/validate_no_dependencies.py rename to server_addon/unreal/client/ayon_unreal/plugins/publish/validate_no_dependencies.py diff --git a/client/ayon_core/hosts/unreal/plugins/publish/validate_sequence_frames.py b/server_addon/unreal/client/ayon_unreal/plugins/publish/validate_sequence_frames.py similarity index 100% rename from client/ayon_core/hosts/unreal/plugins/publish/validate_sequence_frames.py rename to server_addon/unreal/client/ayon_unreal/plugins/publish/validate_sequence_frames.py diff --git a/client/ayon_core/hosts/unreal/ue_workers.py b/server_addon/unreal/client/ayon_unreal/ue_workers.py similarity index 99% rename from client/ayon_core/hosts/unreal/ue_workers.py rename to server_addon/unreal/client/ayon_unreal/ue_workers.py index 256c0557be..1be1287901 100644 --- a/client/ayon_core/hosts/unreal/ue_workers.py +++ b/server_addon/unreal/client/ayon_unreal/ue_workers.py @@ -11,7 +11,7 @@ from typing import List, Union from qtpy import QtCore -import ayon_core.hosts.unreal.lib as ue_lib +import ayon_unreal.lib as ue_lib from ayon_core.settings import get_project_settings diff --git a/client/ayon_core/hosts/unreal/ui/__init__.py b/server_addon/unreal/client/ayon_unreal/ui/__init__.py similarity index 100% rename from client/ayon_core/hosts/unreal/ui/__init__.py rename to server_addon/unreal/client/ayon_unreal/ui/__init__.py diff --git a/client/ayon_core/hosts/unreal/ui/splash_screen.py b/server_addon/unreal/client/ayon_unreal/ui/splash_screen.py similarity index 100% rename from client/ayon_core/hosts/unreal/ui/splash_screen.py rename to server_addon/unreal/client/ayon_unreal/ui/splash_screen.py diff --git a/server_addon/unreal/client/ayon_unreal/version.py b/server_addon/unreal/client/ayon_unreal/version.py new file mode 100644 index 0000000000..1ddc580946 --- /dev/null +++ b/server_addon/unreal/client/ayon_unreal/version.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +"""Package declaring AYON addon 'unreal' version.""" +__version__ = "0.2.0" diff --git a/server_addon/unreal/package.py b/server_addon/unreal/package.py index cab89ca873..f1c56b15f6 100644 --- a/server_addon/unreal/package.py +++ b/server_addon/unreal/package.py @@ -1,3 +1,10 @@ name = "unreal" title = "Unreal" -version = "0.1.0" +version = "0.2.0" + +client_dir = "ayon_unreal" + +ayon_required_addons = { + "core": ">0.3.2", +} +ayon_compatible_addons = {}