'Mypy: got "function", expected "Callable[..., Any]"
import glob
from typing import Callable, List
def fun1(b: str) -> List[str]:
return ["a", "b"] + [b]
def fun(a: str) -> Callable:
return fun1 if a == "hello" else glob.glob
Running mypy on this file gives:
error: Incompatible return value type (got "function", expected "Callable[..., Any]") [return-value]
but I thought a function was a Callable? This seems specific to glob.glob since if I simply return fun1 then the error goes away.
EDIT:
Opened an issue on github.
Solution 1:[1]
I think it is a mypy limit with if else ternary operator, this indeed seems to work:
import glob
from typing import Callable, List
def fun1(b: str) -> List[str]:
return ["a", "b"] + [b]
def fun(a: str) -> Callable:
if a == "hello":
return fun1
else:
return glob.glob
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | hussic |
