diff --git a/astroid/brain/brain_typing.py b/astroid/brain/brain_typing.py index 60557952c8..f16d92e2c4 100644 --- a/astroid/brain/brain_typing.py +++ b/astroid/brain/brain_typing.py @@ -6,6 +6,7 @@ """Astroid hooks for typing.py support.""" import typing +import astroid from astroid import ( MANAGER, UseInferenceDefault, @@ -85,6 +86,24 @@ def infer_typing_attr(node, context=None): return node.infer(context=context) +def typing_module_extension(): + return astroid.parse( + """ + class Hashable: + __slots__ = () + @abstractmethod + def __hash__(self) -> int: + return 0 + + class Sized: + __slots__ = () + @abstracmethod + def __len__(self) -> int: + return 0 + """ + ) + + MANAGER.register_transform( nodes.Call, inference_tip(infer_typing_typevar_or_newtype), @@ -93,3 +112,5 @@ def infer_typing_attr(node, context=None): MANAGER.register_transform( nodes.Subscript, inference_tip(infer_typing_attr), _looks_like_typing_subscript ) + +astroid.register_module_extender(MANAGER, "typing", typing_module_extension)