From 53fb6ba45c843d4af6292b703fe5402ee7351a7e Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Thu, 27 Jun 2024 13:07:06 +0200 Subject: [PATCH 1/5] Cosmetics PEP8 --- .../plugins/publish/collect_files_for_cleaning_up.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_files_for_cleaning_up.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_files_for_cleaning_up.py index edd3a4c82b..af79aa089c 100644 --- a/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_files_for_cleaning_up.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_files_for_cleaning_up.py @@ -56,8 +56,8 @@ class CollectFilesForCleaningUp(plugin.HoudiniInstancePlugin, staging_dirs: list[os.PathLike] = [] expected_files = instance.data.get("expectedFiles", []) - # Prefer 'expectedFiles' over 'frames' because it usually contains - # more output files than just a single file or single sequence of files. + # Prefer 'expectedFiles' over 'frames' because it usually contains more + # output files than just a single file or single sequence of files. if expected_files: # Products with expected files # This can be Render products or submitted cache to farm. From 24cc6a9c418645762ae15bf54ed424b1b96899f3 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Thu, 27 Jun 2024 13:10:06 +0200 Subject: [PATCH 2/5] Use `List[str]` instead of `list[os.PathLike]` - `list[]` is only since Py3.9 - this way we're compatible with older Py3 - `os.PathLike` doesn't seem to like it if we just pass it a `str` for whatever reason --- .../plugins/publish/collect_files_for_cleaning_up.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_files_for_cleaning_up.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_files_for_cleaning_up.py index af79aa089c..a90df9749c 100644 --- a/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_files_for_cleaning_up.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_files_for_cleaning_up.py @@ -1,4 +1,5 @@ import os +from typing import List import clique import pyblish.api @@ -52,8 +53,8 @@ class CollectFilesForCleaningUp(plugin.HoudiniInstancePlugin, self.log.debug("Should be processed on farm, skipping.") return - files: list[os.PathLike] = [] - staging_dirs: list[os.PathLike] = [] + files: List[str] = [] + staging_dirs: List[str] = [] expected_files = instance.data.get("expectedFiles", []) # Prefer 'expectedFiles' over 'frames' because it usually contains more From 9b652dff1a839815fd6169e9b323229206a06c5d Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Thu, 27 Jun 2024 13:10:32 +0200 Subject: [PATCH 3/5] Cosmetics --- .../plugins/publish/collect_files_for_cleaning_up.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_files_for_cleaning_up.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_files_for_cleaning_up.py index a90df9749c..5067f046c4 100644 --- a/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_files_for_cleaning_up.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_files_for_cleaning_up.py @@ -11,8 +11,7 @@ class CollectFilesForCleaningUp(plugin.HoudiniInstancePlugin, AYONPyblishPluginMixin): """Collect Files For Cleaning Up. - This collector collects output files - and adds them to file remove list. + This collector collects output files and adds them to file remove list. CAUTION: This collector registers exported files and @@ -25,9 +24,9 @@ class CollectFilesForCleaningUp(plugin.HoudiniInstancePlugin, Farm instances will be processed on farm by other dedicated plugins that live in core addon e.g. `CollectRenderedFiles` plugin. These dedicated plugins don't support tracking and removing - intermediated render files. + intermediate render files. - Local Render instances don't track intermediated render files, + Local Render instances don't track intermediate render files, Therefore, this plugin doesn't support removing intermediate render files. From 52837d1d7f655fd5783b7aefa93892978a1c4db1 Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Thu, 27 Jun 2024 13:14:08 +0200 Subject: [PATCH 4/5] Explicitly error if it doesn't behave as we expect it to --- .../plugins/publish/collect_files_for_cleaning_up.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_files_for_cleaning_up.py b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_files_for_cleaning_up.py index 5067f046c4..d0c77cd98a 100644 --- a/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_files_for_cleaning_up.py +++ b/server_addon/houdini/client/ayon_houdini/plugins/publish/collect_files_for_cleaning_up.py @@ -104,14 +104,19 @@ class CollectFilesForCleaningUp(plugin.HoudiniInstancePlugin, parent_path = os.path.dirname(ifd_file) # Compute frames list - frame_collection, _ = clique.assemble( + collections, _ = clique.assemble( [file_name], patterns=[clique.PATTERNS["frames"]], minimum_items=1 ) # It's always expected to be one collection. - frame_collection = frame_collection[0] + if len(collections) != 1: + raise ValueError( + f"Expected to detect a single sequence from {file_name} but " + f"instead got {collections}") + + frame_collection = collections[0] frame_collection.indexes.clear() frame_collection.indexes.update( list(range(start_frame, (end_frame + 1)))) From b818abcd78ca6f8ed43bdeae958f5e8cf49b81be Mon Sep 17 00:00:00 2001 From: Roy Nieterau Date: Thu, 27 Jun 2024 13:15:34 +0200 Subject: [PATCH 5/5] Refactor `BasicValidateModel` -> `BasicEnabledStatesModel` --- server_addon/houdini/server/settings/publish.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server_addon/houdini/server/settings/publish.py b/server_addon/houdini/server/settings/publish.py index 555b6de376..ff39ff88e3 100644 --- a/server_addon/houdini/server/settings/publish.py +++ b/server_addon/houdini/server/settings/publish.py @@ -108,7 +108,7 @@ class PublishPluginsModel(BaseSettingsModel): title="Collect Chunk Size" ) CollectFilesForCleaningUp:CollectFilesForCleaningUpModel = SettingsField( - default_factory=BasicValidateModel, + default_factory=BasicEnabledStatesModel, title="Collect Files For Cleaning Up." ) CollectLocalRenderInstances: CollectLocalRenderInstancesModel = SettingsField(