From ddd998f417c1f90266319c9152bfe6f639c9e877 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Tue, 28 May 2024 16:46:41 +0200 Subject: [PATCH 01/44] AY-5539 - new Settings for filtering of creators --- server/settings/tools.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/server/settings/tools.py b/server/settings/tools.py index fb8430a71c..6d0c133511 100644 --- a/server/settings/tools.py +++ b/server/settings/tools.py @@ -35,6 +35,22 @@ class ProductNameProfile(BaseSettingsModel): template: str = SettingsField("", title="Template") +class FilterCreatorProfile(BaseSettingsModel): + """Provide list of allowed Creator identifiers for context""" + + _layout = "expanded" + hosts: list[str] = SettingsField(default_factory=list, title="Hosts") + 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_identifiers: list[str] = SettingsField( + "", title="Allowed Creator Identifiers") + + class CreatorToolModel(BaseSettingsModel): # TODO this was dynamic dictionary '{name: task_names}' product_types_smart_select: list[ProductTypeSmartSelectModel] = ( @@ -48,6 +64,11 @@ class CreatorToolModel(BaseSettingsModel): title="Product name profiles" ) + filter_creator_profiles: list[FilterCreatorProfile] = SettingsField( + default_factory=list, + title="Filter creator profiles" + ) + @validator("product_types_smart_select") def validate_unique_name(cls, value): ensure_unique_names(value) @@ -404,7 +425,8 @@ DEFAULT_TOOLS_VALUES = { "tasks": [], "template": "SK_{folder[name]}{variant}" } - ] + ], + "filter_creator_profiles": [] }, "Workfiles": { "workfile_template_profiles": [ From cd11db27aa316c669f0963ac0cec1b2a612362e8 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Tue, 28 May 2024 16:47:42 +0200 Subject: [PATCH 02/44] AY-5539 - use configured profiles to filter creators --- client/ayon_core/tools/publisher/control.py | 37 +++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index ede772b917..9ffa33ce5c 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -39,6 +39,9 @@ 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.settings import get_project_settings +from ayon_core.lib.profiles_filtering import filter_profiles +from ayon_core.pipeline.context_tools import get_current_task_entity # Define constant for plugin orders offset PLUGIN_ORDER_OFFSET = 0.5 @@ -1827,8 +1830,13 @@ class PublisherController(BasePublisherController): def _collect_creator_items(self): # TODO add crashed initialization of create plugins to report output = {} + allowed_creator_identifiers = self._get_allowed_creator_identifiers() for identifier, creator in self._create_context.creators.items(): try: + if (allowed_creator_identifiers and + identifier not in allowed_creator_identifiers): + self.log.debug(f"{identifier} not allowed for context") + continue output[identifier] = CreatorItem.from_creator(creator) except Exception: self.log.error( @@ -1839,6 +1847,35 @@ class PublisherController(BasePublisherController): return output + def _get_allowed_creator_identifiers(self): + """Provide configured creator identifier in this context + + If no profile provided for current context, it shows all creators + """ + proj_settings = get_project_settings(self.project_name) + filter_creator_profiles = ( + proj_settings + ["core"] + ["tools"] + ["creator"] + ["filter_creator_profiles"] + ) + task_type = get_current_task_entity()["taskType"] + filtering_criteria = { + "task_names": self.current_task_name, + "task_types": task_type, + "hosts": self._create_context.host_name + } + profile = filter_profiles( + filter_creator_profiles, + filtering_criteria, + logger=self.log + ) + allowed_creator_identifiers = [] + if profile: + allowed_creator_identifiers = profile["creator_identifiers"] + return allowed_creator_identifiers + def _reset_instances(self): """Reset create instances.""" if self._resetting_instances: From 2cf7f36f9b5820b35684d3f66406d4256bf2f919 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Tue, 28 May 2024 16:50:32 +0200 Subject: [PATCH 03/44] AY-5539 - do not use profiles for traypublisher --- client/ayon_core/tools/publisher/control.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index 9ffa33ce5c..b116b4138b 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1852,6 +1852,10 @@ class PublisherController(BasePublisherController): If no profile provided for current context, it shows all creators """ + allowed_creator_identifiers = [] + if self._create_context.host_name == "traypublisher": + # no real context known + return allowed_creator_identifiers proj_settings = get_project_settings(self.project_name) filter_creator_profiles = ( proj_settings @@ -1871,7 +1875,7 @@ class PublisherController(BasePublisherController): filtering_criteria, logger=self.log ) - allowed_creator_identifiers = [] + if profile: allowed_creator_identifiers = profile["creator_identifiers"] return allowed_creator_identifiers From ce13e2ee027c620f04baf7c9207e561dfc30807a Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Tue, 28 May 2024 16:58:11 +0200 Subject: [PATCH 04/44] AY-5539 - provide better method signature Should be used for unittests --- client/ayon_core/tools/publisher/control.py | 28 +++++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index b116b4138b..7753804911 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1830,7 +1830,13 @@ class PublisherController(BasePublisherController): def _collect_creator_items(self): # TODO add crashed initialization of create plugins to report output = {} - allowed_creator_identifiers = self._get_allowed_creator_identifiers() + allowed_creator_identifiers = self._get_allowed_creator_identifiers( + self.project_name, + self._create_context.host_name, + self.current_task_name, + get_current_task_entity()["taskType"], + self.log + ) for identifier, creator in self._create_context.creators.items(): try: if (allowed_creator_identifiers and @@ -1847,16 +1853,23 @@ class PublisherController(BasePublisherController): return output - def _get_allowed_creator_identifiers(self): + def _get_allowed_creator_identifiers( + self, + project_name, + host_name, + task_name, + task_type, + log=None + ): """Provide configured creator identifier in this context If no profile provided for current context, it shows all creators """ allowed_creator_identifiers = [] - if self._create_context.host_name == "traypublisher": + if host_name == "traypublisher": # no real context known return allowed_creator_identifiers - proj_settings = get_project_settings(self.project_name) + proj_settings = get_project_settings(project_name) filter_creator_profiles = ( proj_settings ["core"] @@ -1864,16 +1877,15 @@ class PublisherController(BasePublisherController): ["creator"] ["filter_creator_profiles"] ) - task_type = get_current_task_entity()["taskType"] filtering_criteria = { - "task_names": self.current_task_name, + "task_names": task_name, "task_types": task_type, - "hosts": self._create_context.host_name + "hosts": host_name } profile = filter_profiles( filter_creator_profiles, filtering_criteria, - logger=self.log + logger=log ) if profile: From 170b1ab9dce32804c737b4b3e5d316fb8b7b56e8 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Wed, 29 May 2024 12:12:56 +0200 Subject: [PATCH 05/44] Fix default factory Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> --- server/settings/tools.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/settings/tools.py b/server/settings/tools.py index 6d0c133511..5587e38ed1 100644 --- a/server/settings/tools.py +++ b/server/settings/tools.py @@ -48,7 +48,8 @@ class FilterCreatorProfile(BaseSettingsModel): task_names: list[str] = SettingsField(default_factory=list, title="Task names") creator_identifiers: list[str] = SettingsField( - "", title="Allowed Creator Identifiers") + default_factory=list, + title="Allowed Creator Identifiers") class CreatorToolModel(BaseSettingsModel): From ea626e125769e91ab2afa6b5fe01dcddecf5159c Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Wed, 29 May 2024 12:13:10 +0200 Subject: [PATCH 06/44] Fix formatting Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> --- client/ayon_core/tools/publisher/control.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index 7753804911..9ea1efecba 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1839,8 +1839,10 @@ class PublisherController(BasePublisherController): ) for identifier, creator in self._create_context.creators.items(): try: - if (allowed_creator_identifiers and - identifier not in allowed_creator_identifiers): + if ( + allowed_creator_identifiers is not None + and identifier not in allowed_creator_identifiers + ): self.log.debug(f"{identifier} not allowed for context") continue output[identifier] = CreatorItem.from_creator(creator) From 34041b3a1d3c3419b024f0b458d5eb1a76bc8d1f Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Wed, 29 May 2024 12:13:23 +0200 Subject: [PATCH 07/44] Fix formatting Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> --- client/ayon_core/tools/publisher/control.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index 9ea1efecba..fa8236e64f 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1856,12 +1856,12 @@ class PublisherController(BasePublisherController): return output def _get_allowed_creator_identifiers( - self, - project_name, - host_name, - task_name, - task_type, - log=None + self, + project_name, + host_name, + task_name, + task_type, + log=None ): """Provide configured creator identifier in this context From 5e95565d25eb6f5511e4a109c4eb5c527cff9689 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Wed, 29 May 2024 12:15:05 +0200 Subject: [PATCH 08/44] Fix formatting Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> --- server/settings/tools.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/server/settings/tools.py b/server/settings/tools.py index 5587e38ed1..37b0ddfd59 100644 --- a/server/settings/tools.py +++ b/server/settings/tools.py @@ -45,8 +45,9 @@ class FilterCreatorProfile(BaseSettingsModel): title="Task types", enum_resolver=task_types_enum ) - task_names: list[str] = SettingsField(default_factory=list, - title="Task names") + task_names: list[str] = SettingsField( + default_factory=list, + title="Task names") creator_identifiers: list[str] = SettingsField( default_factory=list, title="Allowed Creator Identifiers") From 719e5aa56bb3cc84471509631bb6b75aa18b8b17 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Wed, 29 May 2024 13:16:05 +0200 Subject: [PATCH 09/44] AY-5539 - remove explicit check for traypublisher Safely return task_type only if task_entity exits. --- client/ayon_core/tools/publisher/control.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index fa8236e64f..76c647d37f 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1830,11 +1830,15 @@ class PublisherController(BasePublisherController): def _collect_creator_items(self): # TODO add crashed initialization of create plugins to report output = {} + task_type = None + current_task_entity = get_current_task_entity() + if current_task_entity: + task_type = current_task_entity["taskType"] allowed_creator_identifiers = self._get_allowed_creator_identifiers( self.project_name, self._create_context.host_name, self.current_task_name, - get_current_task_entity()["taskType"], + task_type, self.log ) for identifier, creator in self._create_context.creators.items(): @@ -1867,10 +1871,7 @@ class PublisherController(BasePublisherController): If no profile provided for current context, it shows all creators """ - allowed_creator_identifiers = [] - if host_name == "traypublisher": - # no real context known - return allowed_creator_identifiers + allowed_creator_identifiers = None proj_settings = get_project_settings(project_name) filter_creator_profiles = ( proj_settings From 3c287e1d64151f76487a504e40eb4afb21b7f0a0 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Wed, 29 May 2024 14:13:49 +0200 Subject: [PATCH 10/44] AY-5539 - added project settings to CreatorContext --- client/ayon_core/pipeline/create/context.py | 18 ++++++++++++++++++ client/ayon_core/tools/publisher/control.py | 18 +++++++++++++----- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/client/ayon_core/pipeline/create/context.py b/client/ayon_core/pipeline/create/context.py index 45846553a4..f29f2a12a0 100644 --- a/client/ayon_core/pipeline/create/context.py +++ b/client/ayon_core/pipeline/create/context.py @@ -1401,6 +1401,7 @@ class CreateContext: self._current_folder_path = None self._current_task_name = None self._current_workfile_path = None + self._current_project_settings = None self._current_project_anatomy = None @@ -1571,6 +1572,17 @@ class CreateContext: return self._current_task_name + def get_current_task_entity(self): + """Task name which was used as current context on context reset. + + Returns: + Union[str, None]: Task name. + """ + task_name = self.get_current_task_name() + if self._current_task_entity is None and task_name: + self._current_task_entity = get_current_task_entity() + return self._current_task_entity + def get_current_workfile_path(self): """Workfile path which was opened on context reset. @@ -1592,6 +1604,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. diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index 76c647d37f..9b12b3c318 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -39,7 +39,6 @@ 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.settings import get_project_settings from ayon_core.lib.profiles_filtering import filter_profiles from ayon_core.pipeline.context_tools import get_current_task_entity @@ -1665,6 +1664,16 @@ class PublisherController(BasePublisherController): return self._create_context.get_current_task_name() + @property + def current_project_settings(self): + """Current project settings. + + Returns: + dict + """ + + return self._create_context.get_current_project_settings() + @property def host_context_has_changed(self): return self._create_context.context_has_changed @@ -1835,7 +1844,7 @@ class PublisherController(BasePublisherController): if current_task_entity: task_type = current_task_entity["taskType"] allowed_creator_identifiers = self._get_allowed_creator_identifiers( - self.project_name, + self.current_project_settings, self._create_context.host_name, self.current_task_name, task_type, @@ -1861,7 +1870,7 @@ class PublisherController(BasePublisherController): def _get_allowed_creator_identifiers( self, - project_name, + project_settings, host_name, task_name, task_type, @@ -1872,9 +1881,8 @@ class PublisherController(BasePublisherController): If no profile provided for current context, it shows all creators """ allowed_creator_identifiers = None - proj_settings = get_project_settings(project_name) filter_creator_profiles = ( - proj_settings + project_settings ["core"] ["tools"] ["creator"] From cafb4c9ad099830a81f1018299036f24b49b45f5 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Wed, 29 May 2024 16:28:18 +0200 Subject: [PATCH 11/44] Use host_names in Settings Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> --- server/settings/tools.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/settings/tools.py b/server/settings/tools.py index 37b0ddfd59..f1ee44168f 100644 --- a/server/settings/tools.py +++ b/server/settings/tools.py @@ -39,7 +39,9 @@ class FilterCreatorProfile(BaseSettingsModel): """Provide list of allowed Creator identifiers for context""" _layout = "expanded" - hosts: list[str] = SettingsField(default_factory=list, title="Hosts") + host_names: list[str] = SettingsField( + default_factory=list, title="Host names" + ) task_types: list[str] = SettingsField( default_factory=list, title="Task types", From e899dd05f36173435348f520d6d8229d8f71b937 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Wed, 29 May 2024 16:29:14 +0200 Subject: [PATCH 12/44] AY-5539 - changed value from Settings --- client/ayon_core/tools/publisher/control.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index 9b12b3c318..08229ae7f4 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1891,7 +1891,7 @@ class PublisherController(BasePublisherController): filtering_criteria = { "task_names": task_name, "task_types": task_type, - "hosts": host_name + "host_names": host_name } profile = filter_profiles( filter_creator_profiles, From 63a2e8f81e311eba37eb14a2d1741dcc28f4f3ca Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Thu, 30 May 2024 11:36:07 +0200 Subject: [PATCH 13/44] AY-5539 - removed get_current_task_entity Wasn't implemented properly, cannot import from context_tools because of circular import. --- client/ayon_core/pipeline/create/context.py | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/client/ayon_core/pipeline/create/context.py b/client/ayon_core/pipeline/create/context.py index f29f2a12a0..f9ed61bc5b 100644 --- a/client/ayon_core/pipeline/create/context.py +++ b/client/ayon_core/pipeline/create/context.py @@ -1572,17 +1572,6 @@ class CreateContext: return self._current_task_name - def get_current_task_entity(self): - """Task name which was used as current context on context reset. - - Returns: - Union[str, None]: Task name. - """ - task_name = self.get_current_task_name() - if self._current_task_entity is None and task_name: - self._current_task_entity = get_current_task_entity() - return self._current_task_entity - def get_current_workfile_path(self): """Workfile path which was opened on context reset. From 4d812df9ad13356204368aa0feea5b66371ac393 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Thu, 30 May 2024 11:38:07 +0200 Subject: [PATCH 14/44] AY-5539 - reset project_setting when necessary --- client/ayon_core/pipeline/create/context.py | 1 + 1 file changed, 1 insertion(+) diff --git a/client/ayon_core/pipeline/create/context.py b/client/ayon_core/pipeline/create/context.py index f9ed61bc5b..cca40362d6 100644 --- a/client/ayon_core/pipeline/create/context.py +++ b/client/ayon_core/pipeline/create/context.py @@ -1726,6 +1726,7 @@ class CreateContext: self._current_workfile_path = workfile_path self._current_project_anatomy = None + self._current_project_settings = None def reset_plugins(self, discover_publish_plugins=True): """Reload plugins. From 7b6f8d24affd645854a94bcf248e326122bacaa0 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Thu, 30 May 2024 11:39:39 +0200 Subject: [PATCH 15/44] AY-5539 - use internal method for settings --- client/ayon_core/pipeline/create/context.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/ayon_core/pipeline/create/context.py b/client/ayon_core/pipeline/create/context.py index cca40362d6..35b78689f5 100644 --- a/client/ayon_core/pipeline/create/context.py +++ b/client/ayon_core/pipeline/create/context.py @@ -1780,7 +1780,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 = {} From 739d459e74b3e5e7390fe2eb38f7b4fce4bf832d Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 30 May 2024 12:29:56 +0200 Subject: [PATCH 16/44] CreateContext has methods to get folder & task entity and task type --- client/ayon_core/pipeline/create/context.py | 67 +++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/client/ayon_core/pipeline/create/context.py b/client/ayon_core/pipeline/create/context.py index 35b78689f5..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): @@ -1403,6 +1404,10 @@ class CreateContext: 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 self._host_is_valid = host_is_valid @@ -1572,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. @@ -1725,6 +1788,10 @@ 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 From ec0327f44f1de63f00d539148c2b0849fbb9d7e7 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 30 May 2024 12:30:59 +0200 Subject: [PATCH 17/44] use new method in publish controller --- client/ayon_core/tools/publisher/control.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index 08229ae7f4..acbd7683ad 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1839,10 +1839,7 @@ class PublisherController(BasePublisherController): def _collect_creator_items(self): # TODO add crashed initialization of create plugins to report output = {} - task_type = None - current_task_entity = get_current_task_entity() - if current_task_entity: - task_type = current_task_entity["taskType"] + task_type = self._create_context.get_current_task_type() allowed_creator_identifiers = self._get_allowed_creator_identifiers( self.current_project_settings, self._create_context.host_name, From 6e2cdf36a0b887840f7f30ffb502c6d45aaa0d33 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 30 May 2024 12:33:46 +0200 Subject: [PATCH 18/44] '_get_allowed_creator_identifiers' does not expect any arguments --- client/ayon_core/tools/publisher/control.py | 47 ++++++++------------- 1 file changed, 18 insertions(+), 29 deletions(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index acbd7683ad..61bd74de5a 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1664,16 +1664,6 @@ class PublisherController(BasePublisherController): return self._create_context.get_current_task_name() - @property - def current_project_settings(self): - """Current project settings. - - Returns: - dict - """ - - return self._create_context.get_current_project_settings() - @property def host_context_has_changed(self): return self._create_context.context_has_changed @@ -1698,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) @@ -1839,14 +1838,7 @@ class PublisherController(BasePublisherController): def _collect_creator_items(self): # TODO add crashed initialization of create plugins to report output = {} - task_type = self._create_context.get_current_task_type() - allowed_creator_identifiers = self._get_allowed_creator_identifiers( - self.current_project_settings, - self._create_context.host_name, - self.current_task_name, - task_type, - self.log - ) + allowed_creator_identifiers = self._get_allowed_creator_identifiers() for identifier, creator in self._create_context.creators.items(): try: if ( @@ -1865,18 +1857,15 @@ class PublisherController(BasePublisherController): return output - def _get_allowed_creator_identifiers( - self, - project_settings, - host_name, - task_name, - task_type, - log=None - ): + def _get_allowed_creator_identifiers(self): """Provide configured creator identifier in this context If no profile provided for current context, it shows all creators """ + + task_type = self._create_context.get_current_task_type() + project_settings = self._get_current_project_settings() + allowed_creator_identifiers = None filter_creator_profiles = ( project_settings @@ -1886,14 +1875,14 @@ class PublisherController(BasePublisherController): ["filter_creator_profiles"] ) filtering_criteria = { - "task_names": task_name, + "task_names": self.current_task_name, "task_types": task_type, - "host_names": host_name + "host_names": self._create_context.host_name } profile = filter_profiles( filter_creator_profiles, filtering_criteria, - logger=log + logger=self.log ) if profile: From 31c2d7ef3b0c901f1592d6b5157b082b213570c2 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 30 May 2024 13:02:21 +0200 Subject: [PATCH 19/44] removed unused import --- client/ayon_core/tools/publisher/control.py | 1 - 1 file changed, 1 deletion(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index 61bd74de5a..0a933ffbfb 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -40,7 +40,6 @@ 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 -from ayon_core.pipeline.context_tools import get_current_task_entity # Define constant for plugin orders offset PLUGIN_ORDER_OFFSET = 0.5 From 96c11e6a332a5d3d5a2476c8428136fe7259ed19 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 31 May 2024 12:47:00 +0200 Subject: [PATCH 20/44] AY-5539 - used labels instead of identifiers Identifiers are bit hard to get to fill them into Settings, labels are visible in Publisher and can by Copy&Pasted. --- client/ayon_core/tools/publisher/control.py | 20 ++++++++++---------- server/settings/tools.py | 10 +++++++--- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index 61bd74de5a..1ded279aa2 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1838,14 +1838,14 @@ class PublisherController(BasePublisherController): def _collect_creator_items(self): # TODO add crashed initialization of create plugins to report output = {} - allowed_creator_identifiers = self._get_allowed_creator_identifiers() + allowed_creator_labels = self._get_allowed_creator_labels() for identifier, creator in self._create_context.creators.items(): try: if ( - allowed_creator_identifiers is not None - and identifier not in allowed_creator_identifiers + allowed_creator_labels is not None + and creator.label not in allowed_creator_labels ): - self.log.debug(f"{identifier} not allowed for context") + self.log.debug(f"{creator.label} not allowed for context") continue output[identifier] = CreatorItem.from_creator(creator) except Exception: @@ -1857,16 +1857,16 @@ class PublisherController(BasePublisherController): return output - def _get_allowed_creator_identifiers(self): - """Provide configured creator identifier in this context + def _get_allowed_creator_labels(self): + """Provide configured creator label in this context - If no profile provided for current context, it shows all creators + If no profile matches current context, it shows all creators """ task_type = self._create_context.get_current_task_type() project_settings = self._get_current_project_settings() - allowed_creator_identifiers = None + allowed_creator_labels = None filter_creator_profiles = ( project_settings ["core"] @@ -1886,8 +1886,8 @@ class PublisherController(BasePublisherController): ) if profile: - allowed_creator_identifiers = profile["creator_identifiers"] - return allowed_creator_identifiers + allowed_creator_labels = profile["creator_labels"] + return allowed_creator_labels def _reset_instances(self): """Reset create instances.""" diff --git a/server/settings/tools.py b/server/settings/tools.py index f1ee44168f..ed0c723bac 100644 --- a/server/settings/tools.py +++ b/server/settings/tools.py @@ -50,9 +50,11 @@ class FilterCreatorProfile(BaseSettingsModel): task_names: list[str] = SettingsField( default_factory=list, title="Task names") - creator_identifiers: list[str] = SettingsField( + creator_labels: list[str] = SettingsField( default_factory=list, - title="Allowed Creator Identifiers") + title="Allowed Creator Labels", + description="Copy creator label from Publisher, regex supported." + ) class CreatorToolModel(BaseSettingsModel): @@ -70,7 +72,9 @@ class CreatorToolModel(BaseSettingsModel): filter_creator_profiles: list[FilterCreatorProfile] = SettingsField( default_factory=list, - title="Filter creator profiles" + title="Filter creator profiles", + description="White list of creator labels that will be only shown if " + "profile matches context." ) @validator("product_types_smart_select") From 5a314354b7b23473f97c609c897f423649a5ecb1 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 31 May 2024 13:00:17 +0200 Subject: [PATCH 21/44] AY-5539 - support regex in creator label --- client/ayon_core/tools/publisher/control.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index 1ded279aa2..a15ab09256 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 @@ -1843,7 +1844,8 @@ class PublisherController(BasePublisherController): try: if ( allowed_creator_labels is not None - and creator.label not in allowed_creator_labels + and not self._label_matches_allowed( + creator.label, allowed_creator_labels) ): self.log.debug(f"{creator.label} not allowed for context") continue @@ -1889,6 +1891,13 @@ class PublisherController(BasePublisherController): allowed_creator_labels = profile["creator_labels"] return allowed_creator_labels + def _label_matches_allowed(self, label, allowed_labels): + """Implement regex support for allowed labels.""" + for allowed in allowed_labels: + if re.match(allowed, label): + return True + return False + def _reset_instances(self): """Reset create instances.""" if self._resetting_instances: From 2794190160cfb370c160c65e5158bb5607ab5f3b Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 31 May 2024 13:01:44 +0200 Subject: [PATCH 22/44] AY-5539 - added logging on profile match --- client/ayon_core/tools/publisher/control.py | 1 + 1 file changed, 1 insertion(+) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index a15ab09256..abf116d337 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1889,6 +1889,7 @@ class PublisherController(BasePublisherController): if profile: allowed_creator_labels = profile["creator_labels"] + self.log.debug(f"Only allowed `{allowed_creator_labels}` creators") return allowed_creator_labels def _label_matches_allowed(self, label, allowed_labels): From d2d05f64f75efd33501b000925c27d90214a17f7 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 31 May 2024 13:31:47 +0200 Subject: [PATCH 23/44] Updated description Co-authored-by: Roy Nieterau --- server/settings/tools.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/settings/tools.py b/server/settings/tools.py index ed0c723bac..6c02a928bf 100644 --- a/server/settings/tools.py +++ b/server/settings/tools.py @@ -73,7 +73,7 @@ class CreatorToolModel(BaseSettingsModel): filter_creator_profiles: list[FilterCreatorProfile] = SettingsField( default_factory=list, title="Filter creator profiles", - description="White list of creator labels that will be only shown if " + description="Allowed list of creator labels that will be only shown if " "profile matches context." ) From 0fe6526ae9d0b207c43ad85d867b354ea79a2ac1 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 31 May 2024 13:34:41 +0200 Subject: [PATCH 24/44] AY-5539 - possible speedup of resolution --- client/ayon_core/tools/publisher/control.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index b38df857c0..e73c68a295 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1893,9 +1893,9 @@ class PublisherController(BasePublisherController): def _label_matches_allowed(self, label, allowed_labels): """Implement regex support for allowed labels.""" - for allowed in allowed_labels: - if re.match(allowed, label): - return True + allowed_patterns = re.compile("|".join(allowed_labels)) + if allowed_patterns.match(label): + return True return False def _reset_instances(self): From 0fa90417369919248500d6b83ccbfca4f125e602 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Mon, 3 Jun 2024 11:42:29 +0200 Subject: [PATCH 25/44] AY-5539 - update resolution logic --- client/ayon_core/tools/publisher/control.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index e73c68a295..9578b07b15 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1841,11 +1841,8 @@ class PublisherController(BasePublisherController): allowed_creator_labels = self._get_allowed_creator_labels() for identifier, creator in self._create_context.creators.items(): try: - if ( - allowed_creator_labels is not None - and not self._label_matches_allowed( - creator.label, allowed_creator_labels) - ): + if (not self._label_matches_allowed( + creator.label, allowed_creator_labels)): self.log.debug(f"{creator.label} not allowed for context") continue output[identifier] = CreatorItem.from_creator(creator) @@ -1893,9 +1890,10 @@ class PublisherController(BasePublisherController): def _label_matches_allowed(self, label, allowed_labels): """Implement regex support for allowed labels.""" - allowed_patterns = re.compile("|".join(allowed_labels)) - if allowed_patterns.match(label): - return True + if allowed_labels: + allowed_patterns = re.compile("|".join(allowed_labels)) + if allowed_patterns.match(label): + return True return False def _reset_instances(self): From c7f0e977f79d6b35ba9f782d21a4da58145901ba Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Mon, 3 Jun 2024 11:45:13 +0200 Subject: [PATCH 26/44] AY-5539 - refactor variable position --- client/ayon_core/tools/publisher/control.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index 9578b07b15..c9680b1d9e 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1864,7 +1864,6 @@ class PublisherController(BasePublisherController): task_type = self._create_context.get_current_task_type() project_settings = self._get_current_project_settings() - allowed_creator_labels = None filter_creator_profiles = ( project_settings ["core"] @@ -1883,6 +1882,7 @@ class PublisherController(BasePublisherController): logger=self.log ) + allowed_creator_labels = None if profile: allowed_creator_labels = profile["creator_labels"] self.log.debug(f"Only allowed `{allowed_creator_labels}` creators") From 4e07b756af65cdb08c58271976bf95b7216ad306 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Mon, 3 Jun 2024 12:06:29 +0200 Subject: [PATCH 27/44] AY-5539 - fix wrong logic --- client/ayon_core/tools/publisher/control.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index c9680b1d9e..72a89d2a3a 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1841,7 +1841,7 @@ class PublisherController(BasePublisherController): allowed_creator_labels = self._get_allowed_creator_labels() for identifier, creator in self._create_context.creators.items(): try: - if (not self._label_matches_allowed( + if (not self._is_label_allowed( creator.label, allowed_creator_labels)): self.log.debug(f"{creator.label} not allowed for context") continue @@ -1888,13 +1888,12 @@ class PublisherController(BasePublisherController): self.log.debug(f"Only allowed `{allowed_creator_labels}` creators") return allowed_creator_labels - def _label_matches_allowed(self, label, allowed_labels): + def _is_label_allowed(self, label, allowed_labels): """Implement regex support for allowed labels.""" - if allowed_labels: - allowed_patterns = re.compile("|".join(allowed_labels)) - if allowed_patterns.match(label): - return True - return False + if not allowed_labels: + return True + allowed_patterns = re.compile("|".join(allowed_labels)) + return bool(allowed_patterns.match(label)) def _reset_instances(self): """Reset create instances.""" From 577da3fb7fcbc2a217d487708b093d81f6c5dee9 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Mon, 3 Jun 2024 15:57:30 +0200 Subject: [PATCH 28/44] AY-5539 - protect from empty field in Settings --- client/ayon_core/tools/publisher/control.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index 72a89d2a3a..66487343d1 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1884,7 +1884,11 @@ class PublisherController(BasePublisherController): allowed_creator_labels = None if profile: - allowed_creator_labels = profile["creator_labels"] + allowed_creator_labels = { + label + for label in profile["creator_labels"] + if label + } self.log.debug(f"Only allowed `{allowed_creator_labels}` creators") return allowed_creator_labels From dd02631786628729fec3fcb696696d1761d513bb Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Mon, 3 Jun 2024 17:46:01 +0200 Subject: [PATCH 29/44] AY-5539 - do only single re compile re.compile might be expensive, do it outside of loop --- client/ayon_core/tools/publisher/control.py | 24 +++++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index 66487343d1..f2a440d701 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1856,9 +1856,13 @@ class PublisherController(BasePublisherController): return output def _get_allowed_creator_labels(self): - """Provide configured creator label in this context + """Provide configured creator labels in this context - If no profile matches current context, it shows all creators + If no profile matches current context, it shows all creators. + Support usage of regular expressions for configured values. + Returns: + (str): None or regex compiled patterns into single one + ('Render|Image.*') """ task_type = self._create_context.get_current_task_type() @@ -1890,14 +1894,20 @@ class PublisherController(BasePublisherController): if label } self.log.debug(f"Only allowed `{allowed_creator_labels}` creators") + allowed_creator_labels = ( + re.compile("|".join(allowed_creator_labels))) return allowed_creator_labels - def _is_label_allowed(self, label, allowed_labels): - """Implement regex support for allowed labels.""" - if not allowed_labels: + def _is_label_allowed(self, label, allowed_label_regexes): + """Implement regex support for allowed labels. + + Args: + label (str): Label of creator - shown in Publisher + allowed_label_regexes (str): compiled regular expression + """ + if not allowed_label_regexes: return True - allowed_patterns = re.compile("|".join(allowed_labels)) - return bool(allowed_patterns.match(label)) + return bool(allowed_label_regexes.match(label)) def _reset_instances(self): """Reset create instances.""" From 8f7882ae28d6048ae8da102b392a42e2f63714e1 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Tue, 4 Jun 2024 16:21:11 +0200 Subject: [PATCH 30/44] use 'newHierarchyIntegration' instead of 'newAssetPublishing' --- .../publish/collect_anatomy_instance_data.py | 25 +++++++++++++------ .../plugins/publish/validate_asset_docs.py | 6 ++++- 2 files changed, 23 insertions(+), 8 deletions(-) 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 ad5a5d43fc..3086c04000 100644 --- a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py +++ b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py @@ -391,7 +391,11 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): anatomy_data.update(folder_data) return - if instance.data.get("newAssetPublishing"): + if ( + instance.data.get("newHierarchyIntegration") + # Backwards compatible + or instance.data.get("newAssetPublishing") + ): hierarchy = instance.data["hierarchy"] anatomy_data["hierarchy"] = hierarchy @@ -409,7 +413,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", }, }) @@ -432,15 +436,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 + 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 + 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..361f288545 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 + or instance.data.get("newAssetPublishing") + ): # skip if it is editorial self.log.debug("Editorial instance has no need to check...") From cfe6ae1c67db2b22a9c4590926febb0e2497e3b6 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Tue, 4 Jun 2024 16:23:14 +0200 Subject: [PATCH 31/44] use 'newHierarchyIntegration' over 'newAssetPublishing' in hosts --- .../plugins/publish/collect_timeline_instances.py | 4 +++- server_addon/flame/client/ayon_flame/version.py | 2 +- server_addon/flame/package.py | 2 +- .../ayon_hiero/plugins/publish/precollect_instances.py | 4 +++- server_addon/hiero/client/ayon_hiero/version.py | 2 +- server_addon/hiero/package.py | 2 +- .../ayon_resolve/plugins/publish/precollect_instances.py | 2 ++ .../ayon_traypublisher/plugins/create/create_editorial.py | 2 ++ .../plugins/publish/collect_sequence_frame_data.py | 8 ++++++-- .../plugins/publish/validate_frame_ranges.py | 8 ++++++-- server_addon/traypublisher/package.py | 2 +- 11 files changed, 27 insertions(+), 11 deletions(-) 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..f38a0903a0 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 + "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 fa2c56182e..be5312b325 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 + "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 6a2d180afb..fe6d62221c 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.0" +__version__ = "0.2.1" diff --git a/server_addon/hiero/package.py b/server_addon/hiero/package.py index 1948d50e6d..95714d95da 100644 --- a/server_addon/hiero/package.py +++ b/server_addon/hiero/package.py @@ -1,6 +1,6 @@ name = "hiero" title = "Hiero" -version = "0.2.0" +version = "0.2.1" client_dir = "ayon_hiero" ayon_required_addons = { 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..af9a63d796 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 "newAssetPublishing": True, "families": ["clip"], "productType": product_type, 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..0e4512d052 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 "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..b76d81e431 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 + 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..301b306089 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 + or instance.data.get("newAssetPublishing") + ) + if new_hierarchy: self.log.debug("Instance is creating new folder. Skipping.") return diff --git a/server_addon/traypublisher/package.py b/server_addon/traypublisher/package.py index c9b94c2b72..85611526d0 100644 --- a/server_addon/traypublisher/package.py +++ b/server_addon/traypublisher/package.py @@ -1,6 +1,6 @@ name = "traypublisher" title = "TrayPublisher" -version = "0.2.1" +version = "0.2.2" client_dir = "ayon_traypublisher" From cbc0516475a06bc930e725cef6a7147bc160dd7d Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Thu, 6 Jun 2024 11:44:54 +0200 Subject: [PATCH 32/44] AY-5539 - refactor argument name --- client/ayon_core/tools/publisher/control.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index f2a440d701..510885ddad 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1898,16 +1898,16 @@ class PublisherController(BasePublisherController): re.compile("|".join(allowed_creator_labels))) return allowed_creator_labels - def _is_label_allowed(self, label, allowed_label_regexes): + 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_label_regexes (str): compiled regular expression + allowed_labels_regex (re.Pattern): compiled regular expression """ - if not allowed_label_regexes: + if not allowed_labels_regex: return True - return bool(allowed_label_regexes.match(label)) + return bool(allowed_labels_regex.match(label)) def _reset_instances(self): """Reset create instances.""" From 909d6e74e782d755d1d0d9685296aa9c0d852d82 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Thu, 6 Jun 2024 11:49:04 +0200 Subject: [PATCH 33/44] AY-5539 - refactor name of method --- client/ayon_core/tools/publisher/control.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/client/ayon_core/tools/publisher/control.py b/client/ayon_core/tools/publisher/control.py index 510885ddad..4e2cfd8783 100644 --- a/client/ayon_core/tools/publisher/control.py +++ b/client/ayon_core/tools/publisher/control.py @@ -1838,11 +1838,11 @@ class PublisherController(BasePublisherController): def _collect_creator_items(self): # TODO add crashed initialization of create plugins to report output = {} - allowed_creator_labels = self._get_allowed_creator_labels() + 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_labels)): + creator.label, allowed_creator_pattern)): self.log.debug(f"{creator.label} not allowed for context") continue output[identifier] = CreatorItem.from_creator(creator) @@ -1855,14 +1855,14 @@ class PublisherController(BasePublisherController): return output - def _get_allowed_creator_labels(self): - """Provide configured creator labels in this context + 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: - (str): None or regex compiled patterns into single one - ('Render|Image.*') + (re.Pattern)[optional]: None or regex compiled patterns + into single one ('Render|Image.*') """ task_type = self._create_context.get_current_task_type() @@ -1886,7 +1886,7 @@ class PublisherController(BasePublisherController): logger=self.log ) - allowed_creator_labels = None + allowed_creator_pattern = None if profile: allowed_creator_labels = { label @@ -1894,9 +1894,9 @@ class PublisherController(BasePublisherController): if label } self.log.debug(f"Only allowed `{allowed_creator_labels}` creators") - allowed_creator_labels = ( + allowed_creator_pattern = ( re.compile("|".join(allowed_creator_labels))) - return allowed_creator_labels + return allowed_creator_pattern def _is_label_allowed(self, label, allowed_labels_regex): """Implement regex support for allowed labels. From 4cbbe322b51530c6c73131ddb7df09013c577ce0 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 17:34:46 +0200 Subject: [PATCH 34/44] mark 'newAssetPublishing' as deprecated since 24/06/06 --- .../plugins/publish/collect_anatomy_instance_data.py | 6 +++--- client/ayon_core/plugins/publish/validate_asset_docs.py | 2 +- .../plugins/publish/collect_timeline_instances.py | 2 +- .../ayon_hiero/plugins/publish/precollect_instances.py | 2 +- .../ayon_resolve/plugins/publish/precollect_instances.py | 2 +- .../ayon_traypublisher/plugins/create/create_editorial.py | 2 +- .../plugins/publish/collect_sequence_frame_data.py | 2 +- .../plugins/publish/validate_frame_ranges.py | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) 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 3086c04000..0c15ec0b57 100644 --- a/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py +++ b/client/ayon_core/plugins/publish/collect_anatomy_instance_data.py @@ -393,7 +393,7 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): if ( instance.data.get("newHierarchyIntegration") - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) or instance.data.get("newAssetPublishing") ): hierarchy = instance.data["hierarchy"] @@ -438,7 +438,7 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): # - if we're in editorial, make sure the task type is filled new_hierarchy = ( instance.data.get("newHierarchyIntegration") - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) or instance.data.get("newAssetPublishing") ) if not new_hierarchy or task_data["type"]: @@ -448,7 +448,7 @@ class CollectAnatomyInstanceData(pyblish.api.ContextPlugin): # New hierarchy is not created, so we can only skip rest of the logic new_hierarchy = ( instance.data.get("newHierarchyIntegration") - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) or instance.data.get("newAssetPublishing") ) if not new_hierarchy: diff --git a/client/ayon_core/plugins/publish/validate_asset_docs.py b/client/ayon_core/plugins/publish/validate_asset_docs.py index 361f288545..b80b81b366 100644 --- a/client/ayon_core/plugins/publish/validate_asset_docs.py +++ b/client/ayon_core/plugins/publish/validate_asset_docs.py @@ -26,7 +26,7 @@ class ValidateFolderEntities(pyblish.api.InstancePlugin): elif ( instance.data.get("newHierarchyIntegration") - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) or instance.data.get("newAssetPublishing") ): # skip if it is editorial 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 f38a0903a0..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 @@ -153,7 +153,7 @@ class CollectTimelineInstances(pyblish.api.ContextPlugin): for task in self.add_tasks}, "representations": [], "newHierarchyIntegration": True, - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) "newAssetPublishing": True, }) self.log.debug("__ inst_data: {}".format(pformat(inst_data))) 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 be5312b325..4bc749d77c 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 @@ -141,7 +141,7 @@ class PrecollectInstances(pyblish.api.ContextPlugin): # add all additional tags "tags": phiero.get_track_item_tags(track_item), "newHierarchyIntegration": True, - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) "newAssetPublishing": True, }) 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 af9a63d796..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 @@ -102,7 +102,7 @@ class PrecollectInstances(pyblish.api.ContextPlugin): "handleStart": handle_start, "handleEnd": handle_end, "newHierarchyIntegration": True, - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) "newAssetPublishing": True, "families": ["clip"], "productType": product_type, 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 0e4512d052..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 @@ -677,7 +677,7 @@ or updating already created. Publishing will create OTIO file. "variant": variant_name, "task": None, "newHierarchyIntegration": True, - # Backwards compatible + # 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 b76d81e431..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 @@ -30,7 +30,7 @@ class CollectSequenceFrameData( # editorial would fail since they might not be in database yet new_hierarchy = ( instance.data.get("newHierarchyIntegration") - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) or instance.data.get("newAssetPublishing") ) if new_hierarchy: 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 301b306089..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 @@ -35,7 +35,7 @@ class ValidateFrameRange(OptionalPyblishPluginMixin, # editorial would fail since they might not be in database yet new_hierarchy = ( instance.data.get("newHierarchyIntegration") - # Backwards compatible + # Backwards compatible (Deprecated since 24/06/06) or instance.data.get("newAssetPublishing") ) if new_hierarchy: From b7686fe046b3c802d890a4b6a2e4487e4031235b Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 17:37:40 +0200 Subject: [PATCH 35/44] moved unreal integration next to server codebase --- .../unreal => server_addon/unreal/client/ayon_unreal}/README.md | 0 .../unreal => server_addon/unreal/client/ayon_unreal}/__init__.py | 0 .../unreal => server_addon/unreal/client/ayon_unreal}/addon.py | 0 .../unreal/client/ayon_unreal}/api/__init__.py | 0 .../unreal/client/ayon_unreal}/api/helpers.py | 0 .../unreal/client/ayon_unreal}/api/pipeline.py | 0 .../unreal/client/ayon_unreal}/api/plugin.py | 0 .../unreal/client/ayon_unreal}/api/rendering.py | 0 .../unreal/client/ayon_unreal}/api/tools_ui.py | 0 .../unreal/client/ayon_unreal}/hooks/pre_workfile_preparation.py | 0 .../unreal => server_addon/unreal/client/ayon_unreal}/lib.py | 0 .../unreal/client/ayon_unreal}/plugins/__init__.py | 0 .../unreal/client/ayon_unreal}/plugins/create/create_camera.py | 0 .../unreal/client/ayon_unreal}/plugins/create/create_layout.py | 0 .../unreal/client/ayon_unreal}/plugins/create/create_look.py | 0 .../unreal/client/ayon_unreal}/plugins/create/create_render.py | 0 .../client/ayon_unreal}/plugins/create/create_staticmeshfbx.py | 0 .../unreal/client/ayon_unreal}/plugins/create/create_uasset.py | 0 .../client/ayon_unreal}/plugins/inventory/delete_unused_assets.py | 0 .../unreal/client/ayon_unreal}/plugins/inventory/update_actors.py | 0 .../client/ayon_unreal}/plugins/load/load_alembic_animation.py | 0 .../unreal/client/ayon_unreal}/plugins/load/load_animation.py | 0 .../unreal/client/ayon_unreal}/plugins/load/load_camera.py | 0 .../client/ayon_unreal}/plugins/load/load_geometrycache_abc.py | 0 .../unreal/client/ayon_unreal}/plugins/load/load_layout.py | 0 .../client/ayon_unreal}/plugins/load/load_layout_existing.py | 0 .../client/ayon_unreal}/plugins/load/load_skeletalmesh_abc.py | 0 .../client/ayon_unreal}/plugins/load/load_skeletalmesh_fbx.py | 0 .../client/ayon_unreal}/plugins/load/load_staticmesh_abc.py | 0 .../client/ayon_unreal}/plugins/load/load_staticmesh_fbx.py | 0 .../unreal/client/ayon_unreal}/plugins/load/load_uasset.py | 0 .../unreal/client/ayon_unreal}/plugins/load/load_yeticache.py | 0 .../client/ayon_unreal}/plugins/publish/collect_current_file.py | 0 .../ayon_unreal}/plugins/publish/collect_instance_members.py | 0 .../client/ayon_unreal}/plugins/publish/collect_remove_marked.py | 0 .../ayon_unreal}/plugins/publish/collect_render_instances.py | 0 .../unreal/client/ayon_unreal}/plugins/publish/extract_camera.py | 0 .../unreal/client/ayon_unreal}/plugins/publish/extract_layout.py | 0 .../unreal/client/ayon_unreal}/plugins/publish/extract_look.py | 0 .../unreal/client/ayon_unreal}/plugins/publish/extract_uasset.py | 0 .../ayon_unreal}/plugins/publish/validate_no_dependencies.py | 0 .../ayon_unreal}/plugins/publish/validate_sequence_frames.py | 0 .../unreal/client/ayon_unreal}/ue_workers.py | 0 .../unreal/client/ayon_unreal}/ui/__init__.py | 0 .../unreal/client/ayon_unreal}/ui/splash_screen.py | 0 45 files changed, 0 insertions(+), 0 deletions(-) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/README.md (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/__init__.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/addon.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/api/__init__.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/api/helpers.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/api/pipeline.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/api/plugin.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/api/rendering.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/api/tools_ui.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/hooks/pre_workfile_preparation.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/lib.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/__init__.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/create/create_camera.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/create/create_layout.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/create/create_look.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/create/create_render.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/create/create_staticmeshfbx.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/create/create_uasset.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/inventory/delete_unused_assets.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/inventory/update_actors.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/load/load_alembic_animation.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/load/load_animation.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/load/load_camera.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/load/load_geometrycache_abc.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/load/load_layout.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/load/load_layout_existing.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/load/load_skeletalmesh_abc.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/load/load_skeletalmesh_fbx.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/load/load_staticmesh_abc.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/load/load_staticmesh_fbx.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/load/load_uasset.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/load/load_yeticache.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/publish/collect_current_file.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/publish/collect_instance_members.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/publish/collect_remove_marked.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/publish/collect_render_instances.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/publish/extract_camera.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/publish/extract_layout.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/publish/extract_look.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/publish/extract_uasset.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/publish/validate_no_dependencies.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/plugins/publish/validate_sequence_frames.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/ue_workers.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/ui/__init__.py (100%) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/ui/splash_screen.py (100%) 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/client/ayon_core/hosts/unreal/__init__.py b/server_addon/unreal/client/ayon_unreal/__init__.py similarity index 100% rename from client/ayon_core/hosts/unreal/__init__.py rename to server_addon/unreal/client/ayon_unreal/__init__.py diff --git a/client/ayon_core/hosts/unreal/addon.py b/server_addon/unreal/client/ayon_unreal/addon.py similarity index 100% rename from client/ayon_core/hosts/unreal/addon.py rename to server_addon/unreal/client/ayon_unreal/addon.py 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 100% rename from client/ayon_core/hosts/unreal/api/pipeline.py rename to server_addon/unreal/client/ayon_unreal/api/pipeline.py 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 100% rename from client/ayon_core/hosts/unreal/api/rendering.py rename to server_addon/unreal/client/ayon_unreal/api/rendering.py 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 100% rename from client/ayon_core/hosts/unreal/api/tools_ui.py rename to server_addon/unreal/client/ayon_unreal/api/tools_ui.py 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% 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 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 100% rename from client/ayon_core/hosts/unreal/ue_workers.py rename to server_addon/unreal/client/ayon_unreal/ue_workers.py 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 From b92b7f5231eb7f0f92bec84a88f63799e90fc351 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 17:39:25 +0200 Subject: [PATCH 36/44] moved integration to client codebase --- .gitmodules | 2 +- .../unreal/client/ayon_unreal}/integration | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename {client/ayon_core/hosts/unreal => server_addon/unreal/client/ayon_unreal}/integration (100%) 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/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 From 196d307a577d51db5c31ec48c9ed6e8d550d9e09 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 17:43:41 +0200 Subject: [PATCH 37/44] bump version and add version to client addon --- server_addon/unreal/client/ayon_unreal/__init__.py | 3 +++ server_addon/unreal/client/ayon_unreal/addon.py | 3 +++ server_addon/unreal/client/ayon_unreal/version.py | 3 +++ server_addon/unreal/package.py | 9 ++++++++- 4 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 server_addon/unreal/client/ayon_unreal/version.py diff --git a/server_addon/unreal/client/ayon_unreal/__init__.py b/server_addon/unreal/client/ayon_unreal/__init__.py index 42dd8f0ac4..7dd6875154 100644 --- a/server_addon/unreal/client/ayon_unreal/__init__.py +++ b/server_addon/unreal/client/ayon_unreal/__init__.py @@ -1,6 +1,9 @@ +from .version import __version__ from .addon import UnrealAddon __all__ = ( + "__version__", + "UnrealAddon", ) diff --git a/server_addon/unreal/client/ayon_unreal/addon.py b/server_addon/unreal/client/ayon_unreal/addon.py index c65490bd8c..5cfbc3c019 100644 --- a/server_addon/unreal/client/ayon_unreal/addon.py +++ b/server_addon/unreal/client/ayon_unreal/addon.py @@ -2,11 +2,14 @@ import os import re from ayon_core.addon import AYONAddon, IHostAddon +from .version import __version__ + UNREAL_ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) class UnrealAddon(AYONAddon, IHostAddon): name = "unreal" + version = __version__ host_name = "unreal" def get_global_environments(self): 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 = {} From 8ca69f512ba01f286f7285a468e213d900fb2f72 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 17:50:01 +0200 Subject: [PATCH 38/44] define 'UNREAL_ADDON_ROOT' and use it --- server_addon/unreal/client/ayon_unreal/__init__.py | 3 ++- server_addon/unreal/client/ayon_unreal/addon.py | 10 +++++----- server_addon/unreal/client/ayon_unreal/api/pipeline.py | 5 ++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/server_addon/unreal/client/ayon_unreal/__init__.py b/server_addon/unreal/client/ayon_unreal/__init__.py index 7dd6875154..6be5ae13c9 100644 --- a/server_addon/unreal/client/ayon_unreal/__init__.py +++ b/server_addon/unreal/client/ayon_unreal/__init__.py @@ -1,9 +1,10 @@ from .version import __version__ -from .addon import UnrealAddon +from .addon import UNREAL_ADDON_ROOT, UnrealAddon __all__ = ( "__version__", + "UNREAL_ADDON_ROOT", "UnrealAddon", ) diff --git a/server_addon/unreal/client/ayon_unreal/addon.py b/server_addon/unreal/client/ayon_unreal/addon.py index 5cfbc3c019..d9e1bfaca9 100644 --- a/server_addon/unreal/client/ayon_unreal/addon.py +++ b/server_addon/unreal/client/ayon_unreal/addon.py @@ -4,7 +4,7 @@ from ayon_core.addon import AYONAddon, IHostAddon from .version import __version__ -UNREAL_ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) +UNREAL_ADDON_ROOT = os.path.dirname(os.path.abspath(__file__)) class UnrealAddon(AYONAddon, IHostAddon): @@ -14,7 +14,7 @@ class UnrealAddon(AYONAddon, IHostAddon): 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): @@ -43,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" @@ -70,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/server_addon/unreal/client/ayon_unreal/api/pipeline.py b/server_addon/unreal/client/ayon_unreal/api/pipeline.py index a60564d5b0..9f8502669d 100644 --- a/server_addon/unreal/client/ayon_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") From 54e57facca9206744cf43511fe9ae67ef47b64c5 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 17:50:41 +0200 Subject: [PATCH 39/44] fix imports --- server_addon/unreal/client/ayon_unreal/api/pipeline.py | 4 ++-- server_addon/unreal/client/ayon_unreal/api/rendering.py | 2 +- server_addon/unreal/client/ayon_unreal/api/tools_ui.py | 2 +- .../client/ayon_unreal/hooks/pre_workfile_preparation.py | 6 +++--- .../client/ayon_unreal/plugins/create/create_camera.py | 4 ++-- .../client/ayon_unreal/plugins/create/create_layout.py | 2 +- .../unreal/client/ayon_unreal/plugins/create/create_look.py | 4 ++-- .../client/ayon_unreal/plugins/create/create_render.py | 4 ++-- .../ayon_unreal/plugins/create/create_staticmeshfbx.py | 2 +- .../client/ayon_unreal/plugins/create/create_uasset.py | 2 +- .../ayon_unreal/plugins/inventory/delete_unused_assets.py | 4 ++-- .../client/ayon_unreal/plugins/inventory/update_actors.py | 2 +- .../ayon_unreal/plugins/load/load_alembic_animation.py | 4 ++-- .../client/ayon_unreal/plugins/load/load_animation.py | 4 ++-- .../unreal/client/ayon_unreal/plugins/load/load_camera.py | 4 ++-- .../ayon_unreal/plugins/load/load_geometrycache_abc.py | 4 ++-- .../unreal/client/ayon_unreal/plugins/load/load_layout.py | 4 ++-- .../client/ayon_unreal/plugins/load/load_layout_existing.py | 4 ++-- .../ayon_unreal/plugins/load/load_skeletalmesh_abc.py | 4 ++-- .../ayon_unreal/plugins/load/load_skeletalmesh_fbx.py | 4 ++-- .../client/ayon_unreal/plugins/load/load_staticmesh_abc.py | 4 ++-- .../client/ayon_unreal/plugins/load/load_staticmesh_fbx.py | 4 ++-- .../unreal/client/ayon_unreal/plugins/load/load_uasset.py | 4 ++-- .../client/ayon_unreal/plugins/load/load_yeticache.py | 4 ++-- .../ayon_unreal/plugins/publish/collect_render_instances.py | 2 +- .../client/ayon_unreal/plugins/publish/extract_camera.py | 2 +- server_addon/unreal/client/ayon_unreal/ue_workers.py | 2 +- 27 files changed, 46 insertions(+), 46 deletions(-) diff --git a/server_addon/unreal/client/ayon_unreal/api/pipeline.py b/server_addon/unreal/client/ayon_unreal/api/pipeline.py index 9f8502669d..f04d8e10a4 100644 --- a/server_addon/unreal/client/ayon_unreal/api/pipeline.py +++ b/server_addon/unreal/client/ayon_unreal/api/pipeline.py @@ -323,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() @@ -333,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/server_addon/unreal/client/ayon_unreal/api/rendering.py b/server_addon/unreal/client/ayon_unreal/api/rendering.py index 395513aefa..6ae9fee26d 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/api/tools_ui.py b/server_addon/unreal/client/ayon_unreal/api/tools_ui.py index efae5bb702..f464d39b92 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/hooks/pre_workfile_preparation.py b/server_addon/unreal/client/ayon_unreal/hooks/pre_workfile_preparation.py index e38591f65d..e70b3131b3 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/create/create_camera.py b/server_addon/unreal/client/ayon_unreal/plugins/create/create_camera.py index 3ffb9dd70b..d9a66215db 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/create/create_layout.py b/server_addon/unreal/client/ayon_unreal/plugins/create/create_layout.py index 9bcddfe507..fa4fc072ae 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/create/create_look.py b/server_addon/unreal/client/ayon_unreal/plugins/create/create_look.py index edc6d45f2f..9017997864 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/create/create_render.py b/server_addon/unreal/client/ayon_unreal/plugins/create/create_render.py index 5a96d9809c..e1999e5385 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/create/create_staticmeshfbx.py b/server_addon/unreal/client/ayon_unreal/plugins/create/create_staticmeshfbx.py index 603b852873..79cc249083 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/create/create_uasset.py b/server_addon/unreal/client/ayon_unreal/plugins/create/create_uasset.py index 1cd532c63d..f053503c45 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/inventory/delete_unused_assets.py b/server_addon/unreal/client/ayon_unreal/plugins/inventory/delete_unused_assets.py index 1f63a1697a..1892f8ab14 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/inventory/update_actors.py b/server_addon/unreal/client/ayon_unreal/plugins/inventory/update_actors.py index 96965d68e6..3ca861f0c7 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/load/load_alembic_animation.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_alembic_animation.py index a12f4f41b4..109daf86c4 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/load/load_animation.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_animation.py index f6a612ce53..1cb5c58ea4 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/load/load_camera.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_camera.py index 681c83c6a1..10172094b6 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/load/load_geometrycache_abc.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_geometrycache_abc.py index ae7d41192a..1262ade9af 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/load/load_layout.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_layout.py index 49d95c6459..25883a1ffb 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/load/load_layout_existing.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_layout_existing.py index f9d438367b..df5f154d7c 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/load/load_skeletalmesh_abc.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_skeletalmesh_abc.py index dfc5d58708..5db3e364f1 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/load/load_skeletalmesh_fbx.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_skeletalmesh_fbx.py index 513404ab98..6f1ebc1d51 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/load/load_staticmesh_abc.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_staticmesh_abc.py index 0bf6ce9eaa..f60a173cf6 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/load/load_staticmesh_fbx.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_staticmesh_fbx.py index b7bb57ac23..914f0e23f2 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/load/load_uasset.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_uasset.py index 63f23ecc11..31c13aa9ee 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/load/load_yeticache.py b/server_addon/unreal/client/ayon_unreal/plugins/load/load_yeticache.py index 708fc83745..79cf8e21f7 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/publish/collect_render_instances.py b/server_addon/unreal/client/ayon_unreal/plugins/publish/collect_render_instances.py index ce2a03155b..a93bca70da 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/plugins/publish/extract_camera.py b/server_addon/unreal/client/ayon_unreal/plugins/publish/extract_camera.py index ebc5452011..85f9cb0eaa 100644 --- a/server_addon/unreal/client/ayon_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/server_addon/unreal/client/ayon_unreal/ue_workers.py b/server_addon/unreal/client/ayon_unreal/ue_workers.py index 256c0557be..1be1287901 100644 --- a/server_addon/unreal/client/ayon_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 From b296492844895996628b2f08edffac9dcfa09bc3 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Thu, 6 Jun 2024 17:58:21 +0200 Subject: [PATCH 40/44] add unreal milestone --- client/ayon_core/addon/base.py | 1 + 1 file changed, 1 insertion(+) diff --git a/client/ayon_core/addon/base.py b/client/ayon_core/addon/base.py index c4407424cc..4a24a6c298 100644 --- a/client/ayon_core/addon/base.py +++ b/client/ayon_core/addon/base.py @@ -68,6 +68,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), } From 2ce77d81ca8fb837d1a260b52cbb9489bb7a13e6 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Fri, 7 Jun 2024 13:44:17 +0200 Subject: [PATCH 41/44] bump resolve version --- server_addon/resolve/client/ayon_resolve/version.py | 2 +- server_addon/resolve/package.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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" From b6d7bd949a14a2bb83d0644dc84f0ca36de2ccbb Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 10 Jun 2024 11:06:49 +0200 Subject: [PATCH 42/44] bump versions --- server_addon/hiero/client/ayon_hiero/version.py | 2 +- server_addon/hiero/package.py | 2 +- server_addon/traypublisher/client/ayon_traypublisher/version.py | 2 +- server_addon/traypublisher/package.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) 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/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" From f0d12503a7d3dd1f1b9a383187d75e27daa1693b Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 10 Jun 2024 11:12:38 +0200 Subject: [PATCH 43/44] fix client versions --- server_addon/aftereffects/client/ayon_aftereffects/version.py | 2 +- server_addon/applications/client/ayon_applications/version.py | 3 +++ server_addon/maya/client/ayon_maya/version.py | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) 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/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" From f9cc394aae92f71083552ddeeffbace760125184 Mon Sep 17 00:00:00 2001 From: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com> Date: Mon, 10 Jun 2024 11:20:28 +0200 Subject: [PATCH 44/44] removed ftrack resources --- .../action_icons/ActionAskWhereIRun.svg | 131 ------------------ .../ftrack/action_icons/AssetsRemover.svg | 1 - .../ftrack/action_icons/BatchTasks.svg | 32 ----- .../ftrack/action_icons/ComponentOpen.svg | 31 ----- .../ftrack/action_icons/CreateFolders.svg | 29 ---- .../action_icons/CreateProjectFolders.svg | 29 ---- .../ftrack/action_icons/DeleteAsset.svg | 32 ----- .../ftrack/action_icons/Delivery.svg | 27 ---- .../ftrack/action_icons/MultipleNotes.svg | 29 ---- .../ftrack/action_icons/OpenPypeAdmin.svg | 47 ------- .../ftrack/action_icons/PrepareProject.svg | 29 ---- .../resources/ftrack/action_icons/RV.png | Bin 10126 -> 0 bytes .../ftrack/action_icons/SeedProject.svg | 29 ---- .../ftrack/action_icons/SortReview.svg | 32 ----- .../ftrack/action_icons/TestAction.svg | 28 ---- .../ftrack/action_icons/Thumbnail.svg | 31 ----- .../resources/ftrack/sign_in_message.html | 32 ----- 17 files changed, 569 deletions(-) delete mode 100644 client/ayon_core/resources/ftrack/action_icons/ActionAskWhereIRun.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/AssetsRemover.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/BatchTasks.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/ComponentOpen.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/CreateFolders.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/CreateProjectFolders.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/DeleteAsset.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/Delivery.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/MultipleNotes.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/OpenPypeAdmin.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/PrepareProject.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/RV.png delete mode 100644 client/ayon_core/resources/ftrack/action_icons/SeedProject.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/SortReview.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/TestAction.svg delete mode 100644 client/ayon_core/resources/ftrack/action_icons/Thumbnail.svg delete mode 100644 client/ayon_core/resources/ftrack/sign_in_message.html 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 741e7a9772bc76815556d92323542be25f069d63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10126 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 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. -

- -