1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
| | Taken from Gentoo, which adapted
https://github.com/agronholm/typeguard/commit/e0db07a777d5a481eaba6162354adf32286ce21b
diff --git a/src/typeguard/__init__.py b/src/typeguard/__init__.py
index 5684d63..27fa30b 100644
--- a/src/typeguard/__init__.py
+++ b/src/typeguard/__init__.py
@@ -61,22 +61,25 @@ except ImportError:
from typing import _ForwardRef as ForwardRef
evaluate_forwardref = ForwardRef._eval_type
-if sys.version_info >= (3, 10):
- from typing import is_typeddict
-else:
- _typed_dict_meta_types = ()
- if sys.version_info >= (3, 8):
- from typing import _TypedDictMeta
- _typed_dict_meta_types += (_TypedDictMeta,)
+try:
+ from typing_extensions import is_typeddict
+except ImportError:
+ if sys.version_info >= (3, 10):
+ from typing import is_typeddict
+ else:
+ _typed_dict_meta_types = ()
+ if sys.version_info >= (3, 8):
+ from typing import _TypedDictMeta
+ _typed_dict_meta_types += (_TypedDictMeta,)
- try:
- from typing_extensions import _TypedDictMeta
- _typed_dict_meta_types += (_TypedDictMeta,)
- except ImportError:
- pass
+ try:
+ from typing_extensions import _TypedDictMeta
+ _typed_dict_meta_types += (_TypedDictMeta,)
+ except ImportError:
+ pass
- def is_typeddict(tp) -> bool:
- return isinstance(tp, _typed_dict_meta_types)
+ def is_typeddict(tp) -> bool:
+ return isinstance(tp, _typed_dict_meta_types)
if TYPE_CHECKING:
|