Callables
Unlike operator, optype provides an operator for callable objects:
optype.do_call(f, *args. **kwargs).
CanCall is similar to collections.abc.Callable, but is runtime-checkable,
and doesn't use esoteric hacks.
| operator | operand | |||
|---|---|---|---|---|
| expression | function | type | method | type |
_(*args, **kwargs) |
do_call |
DoesCall |
__call__ |
CanCall[**Tss, +R] |
Note
Pyright (and probably other typecheckers) tend to accept collections.abc.Callable
in more places than optype.CanCall. This could be related to the lack of
co-/contra-variance specification for typing.ParamSpec (they should almost always
be contravariant, but currently they can only be invariant).
In case you encounter such a situation, please open an issue about it, so we can investigate further.