Protocol should be documented as using ABCMeta as metaclass #127677
Copy link
Copy link
Open
Labels
Description
Activity
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.
Metadata
Metadata
Assignees
Labels
Projects
- StatusShow more project fieldsTodo
Documentation
Came up in #127648.
Currently the documentation for typing.Protocol doesn't mention that
ProtocolhasABCMetain 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 thetypingmodule.I also suggest to add
@abstractmethodto the examples using aProtocolas that is probably a best practice.Finally, the documentation for
Protocolsuggests 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.)