Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.3k
Closed
Description
Feature or enhancement
typing has hadtype.__orig_bases__ andtype.__orig_class__ for quite some time now, there is no stable API to access these attributes.
Pitch
I would like to propose addingtyping.get_orig_bases as something like
@overloaddefget_orig_bases(cls:type[object])->tuple[type[Any], ...]|None: ...@overloaddefget_orig_bases(cls:Any)->None: ...defget_orig_bases(cls:Any)->tuple[type[Any], ...]|None:returngetattr(cls,"__orig_bases__",None)
andtyping.get_orig_class
@overloaddefget_orig_class(cls:type[object])->GenericAlias|None: ...@overloaddefget_orig_class(cls:Any)->None: ...defget_orig_class(cls:Any)->GenericAlias|None:returngetattr(cls,"__orig_class__",None)
(side note, it might be possible to fully typeget_orig_class ittypes.GenericAlias was generic over the__origin__ and__args__ i.e.Foo[int] == GenericAlias[Foo, int])