File "C:\Python39\lib\typing.py", line 829, in __getitem__
return self.__getitem_inner__(params)
File "C:\Python39\lib\typing.py", line 243, in inner
return func(*args, **kwds)
File "C:\Python39\lib\typing.py", line 839, in __getitem_inner__
args = tuple(_type_check(arg, msg) for arg in args)
File "C:\Python39\lib\typing.py", line 839, in
args = tuple(_type_check(arg, msg) for arg in args)
File "C:\Python39\lib\typing.py", line 151, in _type_check
raise TypeError(f"{msg} Got {arg!r:.100}.")
TypeError: Callable[[arg, ...], result]: each arg must be a type. Got Ellipsis.
Либо так, либо использовать протокол (класс с методом __call__ у которого нужная сигнатура). Третий вариант - подождать Python-3.10, там вроде ParamSpec появится, может получится его использовать.