(Note: I have mail delivery disabled for this list and read it through GMane, so I am unable to respond with correct threading if I'm not cc'ed directly.)
On 1/18/25 8:52 AM, Ian Pilcher wrote:
(And even that wouldn't really be correct, if it worked, because it doesn't express the fact that the arguments of the two Callables are the same. I believe that ParamSpecs are supposed to address this, but there doesn't seem to be any way to use a ParamSpec when one or more of the parameter types is known.
I think that I figured it out. __P = typing.ParamSpec('__P') @staticmethod def _check_eof( method: collections.abc.Callable[ typing.Concatenate[BufferScanner, __P], None ] ) -> ( collections.abc.Callable[ typing.Concatenate[BufferScanner, __P], bool ] ): ... Mypy is happy, and it catches me if I try to use the decorator on some- thing that isn't a method of BufferScanner (or some other callable that takes an instance of BufferScanner as its first positional argument). -- ======================================================================== If your user interface is intuitive in retrospect ... it isn't intuitive ======================================================================== -- https://mail.python.org/mailman/listinfo/python-list