Skip to content

Commit 244ddf7

Browse files
Fix subclassing message for 3.10- and instance subclassing
1 parent d9c83c0 commit 244ddf7

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

src/typing_extensions.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2634,13 +2634,19 @@ def _typevartuple_prepare_subst(alias, args):
26342634
)
26352635

26362636
tvt.__typing_prepare_subst__ = _typevartuple_prepare_subst
2637+
2638+
def __mro_entries__(self, bases):
2639+
raise TypeError("Cannot subclass an instance of TypeVarTuple.")
2640+
tvt.__mro_entries__ = __mro_entries__
2641+
26372642
return tvt
26382643

26392644
def __init_subclass__(self, *args, **kwds):
26402645
raise TypeError(
26412646
f"type '{__name__}.TypeVarTuple' is not an acceptable base type"
26422647
)
26432648

2649+
26442650
else: # <=3.10
26452651
class TypeVarTuple(_DefaultMixin):
26462652
"""Type variable tuple.
@@ -2717,7 +2723,12 @@ def __reduce__(self):
27172723

27182724
def __init_subclass__(self, *args, **kwds):
27192725
if '_root' not in kwds:
2720-
raise TypeError("Cannot subclass special typing classes")
2726+
raise TypeError(
2727+
f"type '{__name__}.TypeVarTuple' is not an acceptable base type"
2728+
)
2729+
2730+
def __mro_entries__(self, bases):
2731+
raise TypeError("Cannot subclass an instance of TypeVarTuple.")
27212732

27222733

27232734
if hasattr(typing, "reveal_type"): # 3.11+

0 commit comments

Comments
 (0)