bpo-44807: Allow Protocol classes to define __init__ (GH-31628)

Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
This commit is contained in:
Adrian Garcia Badaracco 2022-04-11 09:51:25 -05:00 committed by GitHub
parent b0b836b20c
commit 5f2abae61e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 29 additions and 1 deletions

View file

@ -1997,7 +1997,8 @@ class Protocol(Generic, metaclass=_ProtocolMeta):
issubclass(base, Generic) and base._is_protocol):
raise TypeError('Protocols can only inherit from other'
' protocols, got %r' % base)
cls.__init__ = _no_init_or_replace_init
if cls.__init__ is Protocol.__init__:
cls.__init__ = _no_init_or_replace_init
class _AnnotatedAlias(_GenericAlias, _root=True):