From 39a92397431ba946f47975d852d5437632a2bcb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Samohel?= Date: Thu, 7 Nov 2024 17:05:24 +0100 Subject: [PATCH] :wrench: wip use FileLocation for transfers --- .../ayon_core/plugins/publish/integrate_traits.py | 14 +++++++++++++- .../plugins/publish/test_integrate_traits.py | 3 +++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/client/ayon_core/plugins/publish/integrate_traits.py b/client/ayon_core/plugins/publish/integrate_traits.py index f7f3f47489..ca79bf1518 100644 --- a/client/ayon_core/plugins/publish/integrate_traits.py +++ b/client/ayon_core/plugins/publish/integrate_traits.py @@ -20,6 +20,7 @@ from ayon_core.pipeline.publish import ( get_publish_template_name, ) from ayon_core.pipeline.traits import Persistent, Representation +from pipeline.traits import FileLocation if TYPE_CHECKING: import logging @@ -146,6 +147,12 @@ class IntegrateTraits(pyblish.api.InstancePlugin): instance.data["versionEntity"] = version_entity # 7) Get transfers from representations + for representation in representations: + # this should test version-less FileLocation probably + if representation.contains_trait(FileLocation): + self.log.debug( + "Representation: %s", representation) + # 8) Transfer files # 9) Commit the session to AYON # 10) Finalize represetations - add integrated path Trait etc. @@ -306,7 +313,7 @@ class IntegrateTraits(pyblish.api.InstancePlugin): all_version_data = self.get_version_data_from_instance(instance) version_data = {} version_attributes = {} - attr_defs = self._get_attributes_for_type(instance.context, "version") + attr_defs = self.get_attributes_for_type(instance.context, "version") for key, value in all_version_data.items(): if key in attr_defs: version_attributes[key] = value @@ -435,6 +442,11 @@ class IntegrateTraits(pyblish.api.InstancePlugin): ),path) return path + def get_attributes_for_type( + self, context: pyblish.api.Context, entity_type: str) -> dict: + """Get AYON attributes for the given entity type.""" + return self.get_attributes_by_type(context)[entity_type] + def get_attributes_by_type( self, context: pyblish.api.Context) -> dict: """Gets AYON attributes from the given context.""" diff --git a/tests/client/ayon_core/plugins/publish/test_integrate_traits.py b/tests/client/ayon_core/plugins/publish/test_integrate_traits.py index 1262266943..009cc3b7ff 100644 --- a/tests/client/ayon_core/plugins/publish/test_integrate_traits.py +++ b/tests/client/ayon_core/plugins/publish/test_integrate_traits.py @@ -108,6 +108,9 @@ def mock_context( frame_end=SEQUENCE_LENGTH, frame_padding=4, frame_regex=r"^img\.(\d{4})\.png$", + frame_in=0, + frame_out=SEQUENCE_LENGTH - 1, + frames_per_second=25 ), FileLocation( file_path=sequence_files[0],