bpo-39168: Remove the __new__ method of typing.Generic (GH-21327)

Automerge-Triggered-By: @gvanrossum
(cherry picked from commit 7fed75597f)

Co-authored-by: Zackery Spytz <zspytz@gmail.com>
This commit is contained in:
Miss Islington (bot) 2020-07-05 09:02:40 -07:00 committed by GitHub
parent 16f451744b
commit 5a1384935e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 1 additions and 12 deletions

View File

@ -1417,8 +1417,6 @@ class GenericTests(BaseTestCase):
def test_generic_errors(self):
T = TypeVar('T')
S = TypeVar('S')
with self.assertRaises(TypeError):
Generic[T]()
with self.assertRaises(TypeError):
Generic[T][T]
with self.assertRaises(TypeError):

View File

@ -894,16 +894,6 @@ class Generic:
__slots__ = ()
_is_protocol = False
def __new__(cls, *args, **kwds):
if cls in (Generic, Protocol):
raise TypeError(f"Type {cls.__name__} cannot be instantiated; "
"it can be used only as a base class")
if super().__new__ is object.__new__ and cls.__init__ is not object.__init__:
obj = super().__new__(cls)
else:
obj = super().__new__(cls, *args, **kwds)
return obj
@_tp_cache
def __class_getitem__(cls, params):
if not isinstance(params, tuple):

View File

@ -0,0 +1 @@
Remove the ``__new__`` method of :class:`typing.Generic`.