From a88827cb625344a9b831bc052b6fea6f2980f559 Mon Sep 17 00:00:00 2001 From: mao3267 Date: Tue, 24 Dec 2024 20:58:56 +0800 Subject: [PATCH 1/4] feat: add variable_map in data response Signed-off-by: mao3267 --- flytekit/remote/remote.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/flytekit/remote/remote.py b/flytekit/remote/remote.py index 08bb677171..6eb94a6b90 100644 --- a/flytekit/remote/remote.py +++ b/flytekit/remote/remote.py @@ -358,8 +358,10 @@ def get( data_response = self.client.get_data(flyte_uri) if data_response.HasField("literal_map"): + from flytekit.models.interface import VariableMap lm = LiteralMap.from_flyte_idl(data_response.literal_map) - return LiteralsResolver(lm.literals) + vm = VariableMap.from_flyte_idl(data_response.variable_map) + return LiteralsResolver(lm.literals, vm.variables) elif data_response.HasField("literal"): return Literal.from_flyte_idl(data_response.literal) elif data_response.HasField("pre_signed_urls"): From e0b8f3acf76382be47735d626f5c332ef9ddd915 Mon Sep 17 00:00:00 2001 From: mao3267 Date: Sat, 4 Jan 2025 10:22:27 +0800 Subject: [PATCH 2/4] fix: make lint Signed-off-by: mao3267 --- flytekit/remote/remote.py | 1 + 1 file changed, 1 insertion(+) diff --git a/flytekit/remote/remote.py b/flytekit/remote/remote.py index 6eb94a6b90..7241c04868 100644 --- a/flytekit/remote/remote.py +++ b/flytekit/remote/remote.py @@ -359,6 +359,7 @@ def get( if data_response.HasField("literal_map"): from flytekit.models.interface import VariableMap + lm = LiteralMap.from_flyte_idl(data_response.literal_map) vm = VariableMap.from_flyte_idl(data_response.variable_map) return LiteralsResolver(lm.literals, vm.variables) From 607209903d73b68dc4aa304ca4ddcd5ddf5c0aa1 Mon Sep 17 00:00:00 2001 From: mao3267 Date: Fri, 17 Jan 2025 10:35:09 +0800 Subject: [PATCH 3/4] fix: add null check for variable map Signed-off-by: mao3267 --- flytekit/remote/remote.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/flytekit/remote/remote.py b/flytekit/remote/remote.py index d222be9579..2d9c28ece5 100644 --- a/flytekit/remote/remote.py +++ b/flytekit/remote/remote.py @@ -361,8 +361,11 @@ def get( from flytekit.models.interface import VariableMap lm = LiteralMap.from_flyte_idl(data_response.literal_map) - vm = VariableMap.from_flyte_idl(data_response.variable_map) - return LiteralsResolver(lm.literals, vm.variables) + if data_response.variable_map is not None: + vm = VariableMap.from_flyte_idl(data_response.variable_map) + return LiteralsResolver(lm.literals, vm.variables) + else: + return LiteralsResolver(lm.literals) elif data_response.HasField("literal"): return Literal.from_flyte_idl(data_response.literal) elif data_response.HasField("pre_signed_urls"): @@ -2521,11 +2524,19 @@ def _assign_inputs_and_outputs( ): """Helper for assigning synced inputs and outputs to an execution object.""" input_literal_map = self._get_input_literal_map(execution_data) - execution._inputs = LiteralsResolver(input_literal_map.literals, interface.inputs, self.context) + # 如果 interface.inputs 为空,则只返回 literals + if not interface.inputs: + execution._inputs = input_literal_map.literals + else: + execution._inputs = LiteralsResolver(input_literal_map.literals, interface.inputs, self.context) if execution.is_done and not execution.error: output_literal_map = self._get_output_literal_map(execution_data) - execution._outputs = LiteralsResolver(output_literal_map.literals, interface.outputs, self.context) + # 如果 interface.outputs 为空,则只返回 literals + if not interface.outputs: + execution._outputs = output_literal_map.literals + else: + execution._outputs = LiteralsResolver(output_literal_map.literals, interface.outputs, self.context) return execution def _get_input_literal_map(self, execution_data: ExecutionDataResponse) -> literal_models.LiteralMap: From 270105d8b71ad161b3c5da801a575a9905bafa5e Mon Sep 17 00:00:00 2001 From: mao3267 Date: Fri, 17 Jan 2025 11:47:16 +0800 Subject: [PATCH 4/4] fix: changed incorrectly Signed-off-by: mao3267 --- flytekit/remote/remote.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/flytekit/remote/remote.py b/flytekit/remote/remote.py index 2d9c28ece5..fb47b99a40 100644 --- a/flytekit/remote/remote.py +++ b/flytekit/remote/remote.py @@ -2524,19 +2524,11 @@ def _assign_inputs_and_outputs( ): """Helper for assigning synced inputs and outputs to an execution object.""" input_literal_map = self._get_input_literal_map(execution_data) - # 如果 interface.inputs 为空,则只返回 literals - if not interface.inputs: - execution._inputs = input_literal_map.literals - else: - execution._inputs = LiteralsResolver(input_literal_map.literals, interface.inputs, self.context) + execution._inputs = LiteralsResolver(input_literal_map.literals, interface.inputs, self.context) if execution.is_done and not execution.error: output_literal_map = self._get_output_literal_map(execution_data) - # 如果 interface.outputs 为空,则只返回 literals - if not interface.outputs: - execution._outputs = output_literal_map.literals - else: - execution._outputs = LiteralsResolver(output_literal_map.literals, interface.outputs, self.context) + execution._outputs = LiteralsResolver(output_literal_map.literals, interface.outputs, self.context) return execution def _get_input_literal_map(self, execution_data: ExecutionDataResponse) -> literal_models.LiteralMap: