The nice thing about Protocols is that they are so easy to define, you can just define them yourself. There's no need to have a "standard" protocol in typing.py for ever single dunder method in existence.

PS. There's no need for `__slots__ = ()` assuming you're not going to inherit directly from it (there's really no point).

On Tue, Oct 6, 2020 at 10:29 AM aleksiy123 <aleksiy123@gmail.com> wrote:
Currently there are a few Protocols https://docs.python.org/3/library/typing.html#protocols defined in the typing module. One that I recently felt like was missing was a typing annotation for classes with a __str__() method defined. Seems like a fairly straightforward implementation.

@runtime_checkable
class SupportsString(Protocol): """An ABC with one abstract method __str__."""
__slots__ = ()
@abstractmethod
def __str__(self) -> str:
pass

Perhaps there is another way to do this that I am missing?
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-leave@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/C66MLTYQNAL3KHZELGME62UQOVGAHM5L/
Code of Conduct: http://python.org/psf/codeofconduct/


--
--Guido van Rossum (python.org/~guido)
Pronouns: he/him (why is my pronoun here?)