You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Protocol should be documented as using ABCMeta as metaclass #127677
Currently the documentation for typing.Protocol doesn't mention that Protocol has ABCMeta in its metaclasses (indirectly via _ProtocolMeta) and that its methods can (should?) be marked with @abstractmethod. In fact, neither the string "ABCMeta" nor "abstractmethod" appear in the documentation for the typing module.
I also suggest to add @abstractmethod to the examples using a Protocol as that is probably a best practice.
Finally, the documentation for Protocol suggests to see PEP 544 for more details. I don't think this is particularly helpful. All information relevant for users should be in the main documentation. PEP 544 should only be suggested as a historical document. (And I don't suggest to directly link to the typing spec, either, although a general link at the top of the page would be useful.)
I also suggest to add @AbstractMethod to the examples using a Protocol as that is probably a best practice.
Not sure how I feel about this. There is some benefit, but it doesn't feel great to make protocol definitions even more verbose. Plus, Protocol is meant to be used with static type checkers, which can already figure out when a method definition is abstract.
Activity
JelleZijlstra commentedon Dec 6, 2024
Not sure how I feel about this. There is some benefit, but it doesn't feel great to make protocol definitions even more verbose. Plus, Protocol is meant to be used with static type checkers, which can already figure out when a method definition is abstract.