@@ -846,13 +846,6 @@ def __round__(self, ndigits: int = 0) -> T_co:
846846 pass
847847
848848
849- def _ensure_subclassable (mro_entries ):
850- def inner (obj ):
851- obj .__mro_entries__ = mro_entries
852- return obj
853- return inner
854-
855-
856849_NEEDS_SINGLETONMETA = (
857850 not hasattr (typing , "NoDefault" ) or not hasattr (typing , "NoExtraItems" )
858851)
@@ -1161,7 +1154,9 @@ def __call__(
11611154 ** kwargs ,
11621155 )
11631156
1164- @_ensure_subclassable (lambda bases : (_TypedDict ,))
1157+ def __mro_entries__ (self , bases ):
1158+ return (_TypedDict ,)
1159+
11651160 @_TypedDictSpecialForm
11661161 def TypedDict (self , args ):
11671162 """A simple typed namespace. At runtime it is equivalent to a plain dict.
@@ -3239,7 +3234,6 @@ def _namedtuple_mro_entries(bases):
32393234 assert NamedTuple in bases
32403235 return (_NamedTuple ,)
32413236
3242- @_ensure_subclassable (_namedtuple_mro_entries )
32433237 def NamedTuple (typename , fields = _marker , / , ** kwargs ):
32443238 """Typed version of namedtuple.
32453239
@@ -3305,6 +3299,8 @@ class Employee(NamedTuple):
33053299 nt .__orig_bases__ = (NamedTuple ,)
33063300 return nt
33073301
3302+ NamedTuple .__mro_entries__ = _namedtuple_mro_entries
3303+
33083304
33093305if hasattr (collections .abc , "Buffer" ):
33103306 Buffer = collections .abc .Buffer
0 commit comments