acoustic-carpenter-78188
12/23/2023, 5:37 PMfrom typing import List
from flytekit import task, workflow
@task
def my_task_1() -> int:
return 1
@task
def my_task_2(integers: List[int]) -> int:
return sum(integers)
@workflow
def subworkflow(integers: List[int]) -> int:
return my_task_2(integers=integers)
@workflow
def my_workflow() -> int:
result = my_task_1()
return subworkflow(integers=[result])
if __name__ == "__main__":
print(f"Running {__file__} main...")
print(my_workflow())
with:
Traceback (most recent call last):
File "/Users/bstadlbauer/workspace/pachama/protocol-baseline/flyte/baseline/demo.py", line 29, in <module>
print(my_workflow())
File "/opt/homebrew/Caskroom/miniforge/base/envs/baseline-dev/lib/python3.8/site-packages/flytekit/core/workflow.py", line 258, in __call__
return flyte_entity_call_handler(self, *args, **input_kwargs)
File "/opt/homebrew/Caskroom/miniforge/base/envs/baseline-dev/lib/python3.8/site-packages/flytekit/core/promise.py", line 1050, in flyte_entity_call_handler
result = cast(LocallyExecutable, entity).local_execute(child_ctx, **kwargs)
File "/opt/homebrew/Caskroom/miniforge/base/envs/baseline-dev/lib/python3.8/site-packages/flytekit/core/workflow.py", line 273, in local_execute
function_outputs = self.execute(**kwargs)
File "/opt/homebrew/Caskroom/miniforge/base/envs/baseline-dev/lib/python3.8/site-packages/flytekit/core/workflow.py", line 708, in execute
return exception_scopes.user_entry_point(self._workflow_function)(**kwargs)
File "/opt/homebrew/Caskroom/miniforge/base/envs/baseline-dev/lib/python3.8/site-packages/flytekit/exceptions/scopes.py", line 198, in user_entry_point
return wrapped(*args, **kwargs)
File "/Users/bstadlbauer/workspace/pachama/protocol-baseline/flyte/baseline/demo.py", line 24, in my_workflow
return subworkflow(integers=[result])
File "/opt/homebrew/Caskroom/miniforge/base/envs/baseline-dev/lib/python3.8/site-packages/flytekit/core/workflow.py", line 258, in __call__
return flyte_entity_call_handler(self, *args, **input_kwargs)
File "/opt/homebrew/Caskroom/miniforge/base/envs/baseline-dev/lib/python3.8/site-packages/flytekit/core/promise.py", line 1042, in flyte_entity_call_handler
return cast(LocallyExecutable, entity).local_execute(ctx, **kwargs)
File "/opt/homebrew/Caskroom/miniforge/base/envs/baseline-dev/lib/python3.8/site-packages/flytekit/core/workflow.py", line 269, in local_execute
kwargs[k] = Promise(var=k, val=TypeEngine.to_literal(ctx, v, t, self.interface.inputs[k].type))
File "/opt/homebrew/Caskroom/miniforge/base/envs/baseline-dev/lib/python3.8/site-packages/flytekit/core/type_engine.py", line 767, in to_literal
lv = transformer.to_literal(ctx, python_val, python_type, expected)
File "/opt/homebrew/Caskroom/miniforge/base/envs/baseline-dev/lib/python3.8/site-packages/flytekit/core/type_engine.py", line 924, in to_literal
lit_list = [TypeEngine.to_literal(ctx, x, t, expected.collection_type) for x in python_val] # type: ignore
File "/opt/homebrew/Caskroom/miniforge/base/envs/baseline-dev/lib/python3.8/site-packages/flytekit/core/type_engine.py", line 924, in <listcomp>
lit_list = [TypeEngine.to_literal(ctx, x, t, expected.collection_type) for x in python_val] # type: ignore
File "/opt/homebrew/Caskroom/miniforge/base/envs/baseline-dev/lib/python3.8/site-packages/flytekit/core/type_engine.py", line 751, in to_literal
transformer.assert_type(python_type, python_val)
File "/opt/homebrew/Caskroom/miniforge/base/envs/baseline-dev/lib/python3.8/site-packages/flytekit/core/type_engine.py", line 90, in assert_type
raise TypeTransformerFailedError(f"Type of Val '{v}' is not an instance of {t}")
flytekit.core.type_engine.TypeTransformerFailedError: Type of Val 'Resolved(o0=scalar {
primitive {
integer: 1
}
}
)' is not an instance of <class 'int'>
Expected behavior
The workflow should succeed locally.
Additional context to reproduce
No response
Screenshots
No response
Are you sure this issue hasn't been raised already?
☑︎ Yes
Have you read the Code of Conduct?
☑︎ Yes
flyteorg/flyteacoustic-carpenter-78188
12/23/2023, 5:37 PM