Python Callable Protocols for complex Callable typing
If you need to add typing to a complex Callable, with, say, parameter names etc., there are Callback Protocols.
# NB "self" is included!
class Combiner(Protocol):
def __call__(self, *vals: bytes, maxlen: Optional[int] = None) -> list[bytes]: ...
def batch_proc(data: Iterable[bytes], cb_results: Combiner) -> bytes:
for item in data:
Python 3.7 needs typing_extensions
, 3.8+ support it natively.
See also: python typing signature (typing.Callable) for function with kwargs - Stack Overflow
Nel mezzo del deserto posso dire tutto quello che voglio.
comments powered by Disqus