From 8681c97c0ec3c73332ba54a48b9c450192704cce Mon Sep 17 00:00:00 2001 From: Jelle Zijlstra Date: Thu, 3 Apr 2025 23:06:54 -0700 Subject: [PATCH] gh-105499: Defer "import warnings" in typing A bunch of other warnings in typing.py were already deferred, but I added a few non-lazy ones. --- Lib/typing.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Lib/typing.py b/Lib/typing.py index 707c05d504065c..6536a97f6e1910 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -30,7 +30,6 @@ import sys import types from types import GenericAlias -import warnings from _typing import ( _idfunc, @@ -1626,14 +1625,17 @@ def __getitem__(self, params): class _UnionGenericAliasMeta(type): def __instancecheck__(self, inst: object) -> bool: + import warnings warnings._deprecated("_UnionGenericAlias", remove=(3, 17)) return isinstance(inst, Union) def __subclasscheck__(self, inst: type) -> bool: + import warnings warnings._deprecated("_UnionGenericAlias", remove=(3, 17)) return issubclass(inst, Union) def __eq__(self, other): + import warnings warnings._deprecated("_UnionGenericAlias", remove=(3, 17)) if other is _UnionGenericAlias or other is Union: return True @@ -1650,6 +1652,7 @@ class _UnionGenericAlias(metaclass=_UnionGenericAliasMeta): """ def __new__(cls, self_cls, parameters, /, *, name=None): + import warnings warnings._deprecated("_UnionGenericAlias", remove=(3, 17)) return Union[parameters]