Callable type; Callable[[int], str] is a function of (int) -> str.
The subscription syntax must always be used with exactly two
values: the argument list and the return type. The argument list
must be a list of types or an ellipsis; the return type must be
a single type.
There is no syntax to indicate optional or keyword arguments;
such function types are rarely used as callback types.
Callable[..., ReturnType] (literal ellipsis) can be used to
type hint a callable taking any number of arguments and returning
ReturnType. A plain Callable is equivalent to
Callable[..., Any], and in turn to
collections.abc.Callable.
Callables which take other callables as arguments may indicate that their
parameter types are dependent on each other using ParamSpec.
Additionally, if that callable adds or removes arguments from other
callables, the Concatenate operator may be used. They
take the form Callable[ParamSpecVariable, ReturnType] and
Callable[Concatenate[Arg1Type, Arg2Type, ..., ParamSpecVariable], ReturnType]
respectively.
from: https://docs.python.org/3/library/typing.html#typing.Callable