diff --git a/pype/plugins/ftrack/publish/integrate_ftrack_instances.py b/pype/plugins/ftrack/publish/integrate_ftrack_instances.py index 591dcf0dc2..db257e901a 100644 --- a/pype/plugins/ftrack/publish/integrate_ftrack_instances.py +++ b/pype/plugins/ftrack/publish/integrate_ftrack_instances.py @@ -127,7 +127,10 @@ class IntegrateFtrackInstance(pyblish.api.InstancePlugin): # Add custom attributes for AssetVersion assetversion_cust_attrs = {} - intent_val = instance.context.data.get("intent", {}).get("value") + intent_val = instance.context.data.get("intent") + if intent_val and isinstance(intent_val, dict): + intent_val = intent_val.get("value") + if intent_val: assetversion_cust_attrs["intent"] = intent_val diff --git a/pype/plugins/ftrack/publish/integrate_ftrack_note.py b/pype/plugins/ftrack/publish/integrate_ftrack_note.py index 679010ca58..9566207145 100644 --- a/pype/plugins/ftrack/publish/integrate_ftrack_note.py +++ b/pype/plugins/ftrack/publish/integrate_ftrack_note.py @@ -71,8 +71,13 @@ class IntegrateFtrackNote(pyblish.api.InstancePlugin): session = instance.context.data["ftrackSession"] - intent_val = instance.context.data.get("intent", {}).get("value") - intent_label = instance.context.data.get("intent", {}).get("label") + intent = instance.context.data.get("intent") + if intent and isinstance(intent, dict): + intent_val = intent.get("value") + intent_label = intent.get("label") + else: + intent_val = intent_label = intent + final_label = None if intent_val: final_label = self.get_intent_label(session, intent_val) diff --git a/pype/plugins/global/publish/extract_burnin.py b/pype/plugins/global/publish/extract_burnin.py index 086a1fdfb2..71463e296e 100644 --- a/pype/plugins/global/publish/extract_burnin.py +++ b/pype/plugins/global/publish/extract_burnin.py @@ -54,9 +54,12 @@ class ExtractBurnin(pype.api.Extractor): "comment": instance.context.data.get("comment", "") }) - intent = instance.context.data.get("intent", {}).get("label") - if intent: - prep_data["intent"] = intent + intent_label = instance.context.data.get("intent") + if intent_label and isinstance(intent_label, dict): + intent_label = intent_label.get("label") + + if intent_label: + prep_data["intent"] = intent_label # get anatomy project anatomy = instance.context.data['anatomy'] diff --git a/pype/plugins/global/publish/integrate_new.py b/pype/plugins/global/publish/integrate_new.py index aa214f36cb..ccfb3689e2 100644 --- a/pype/plugins/global/publish/integrate_new.py +++ b/pype/plugins/global/publish/integrate_new.py @@ -243,9 +243,12 @@ class IntegrateAssetNew(pyblish.api.InstancePlugin): instance.data['version'] = version['name'] - intent = context.data.get("intent") - if intent is not None: - anatomy_data["intent"] = intent + intent_value = instance.context.data.get("intent") + if intent_value and isinstance(intent_value, dict): + intent_value = intent_value.get("value") + + if intent_value: + anatomy_data["intent"] = intent_value anatomy = instance.context.data['anatomy'] @@ -653,9 +656,12 @@ class IntegrateAssetNew(pyblish.api.InstancePlugin): "fps": context.data.get( "fps", instance.data.get("fps"))} - intent = context.data.get("intent") - if intent is not None: - version_data["intent"] = intent + intent_value = instance.context.data.get("intent") + if intent_value and isinstance(intent_value, dict): + intent_value = intent_value.get("value") + + if intent_value: + version_data["intent"] = intent_value # Include optional data if present in optionals = [ diff --git a/pype/plugins/nuke/publish/extract_slate_frame.py b/pype/plugins/nuke/publish/extract_slate_frame.py index 369cbe0496..e1c05c3d1a 100644 --- a/pype/plugins/nuke/publish/extract_slate_frame.py +++ b/pype/plugins/nuke/publish/extract_slate_frame.py @@ -157,11 +157,13 @@ class ExtractSlateFrame(pype.api.Extractor): return comment = instance.context.data.get("comment") - intent = instance.context.data.get("intent", {}).get("value", "") + intent_value = instance.context.data.get("intent") + if intent_value and isinstance(intent_value, dict): + intent_value = intent_value.get("value") try: node["f_submission_note"].setValue(comment) - node["f_submitting_for"].setValue(intent) + node["f_submitting_for"].setValue(intent_value or "") except NameError: return instance.data.pop("slateNode")