https://prefect.io logo
Title
a

Alessandro De Rose

05/22/2023, 4:46 PM
Hello,
mypy
is complaining when attempting to unpack a tuple returned from a task. In the example below, when attempting to unpack
a
&
b
from the call to
get_numbers
,
mypy
raises the error
"None" object is not iterable
. However, the type definition for the
get_numbers
function shows that
None
should never be returned from the task. The main issue is that the type of
get_numbers
within the flow is
Task[(a: int, b: int), tuple[int, int]]
, instead of
tuple[int, int]
as
mypy
is expecting. Any idea how to avoid this type error without completely ignoring it? (Prefect v2.10.10, mypy v1.3.0)
from prefect import flow, task


@task
def get_numbers(a: int, b: int) -> tuple[int, int]:
    return a, b


@flow
def get_numbers_flow() -> None:
    a, b = get_numbers(1, 2)   # <- "None" object is not iterable.