I want to add type hints to a higher order function whose input (also a function) has specific keyword arguments.
My code looks similar to this:
def foo(a: int, b: int) -> int:
...
def bar(c: Callable[[int, int], int]) -> int:
return c(a=1, b=2) # getting a mypy error: Unexpected keyword argument "a"
In the example, I want to be able to call c from the function scope of bar, and I want to be able to assume it has keyword arguments a and b.
I can see why mypy would complain here, since some other function with a different signature could be passed in as an argument to b and then c(a=1, b=2) would no longer work. But it seems like there should be a way to add the keyword argument names in the type hint, to explicitly guarantee that function c takes arguments with names a and b.