def decorator(
wrapped: Union[
Callable[[], T],
Callable[[], Generator[T, None, None]]
]
) -> Callable[[], T]:
def wrapper():
value = wrapped()
if inspect.isgenerator(value):
return next(value)
else:
return value
return wrapper
@decorator
def foo() -> Generator[str, None, None]:
yield "bar"
The above code produces the following error in mypy
error: Argument 1 to "decorator" has incompatible type "Callable[[], Generator[str, None, None]]"; expected "Callable[[], Generator[<nothing>, None, None]]"
Is this a limitation in mypy or am I doing something wrong?
from mypy error with union of callable and callable generator and typevar
No comments:
Post a Comment