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:
parent
16f451744b
commit
5a1384935e
|
@ -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):
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Remove the ``__new__`` method of :class:`typing.Generic`.
|
Loading…
Reference in New Issue