|
22 | 22 | _tp_cache,
|
23 | 23 | _type_check,
|
24 | 24 | cast,
|
| 25 | + _alias, |
25 | 26 | )
|
26 | 27 |
|
| 28 | +import _collections_abc |
27 | 29 | import typing_extensions
|
28 | 30 | from typing_extensions import Never, ParamSpec, Self, TypeAlias, TypeGuard, TypeVarTuple
|
29 | 31 |
|
@@ -556,3 +558,27 @@ def f[T](t: TypeForm[T]) -> T: ...
|
556 | 558 |
|
557 | 559 | reveal_type(f(int | str)) # int | str
|
558 | 560 | """)
|
| 561 | + |
| 562 | +# generic aliases |
| 563 | +if TYPE_CHECKING: |
| 564 | + dict_keyiterator = _collections_abc.dict_keyiterator # type: ignore[attr-defined] |
| 565 | + dict_valueiterator = _collections_abc.dict_valueiterator # type: ignore[attr-defined] |
| 566 | + dict_itemiterator = _collections_abc.dict_itemiterator # type: ignore[attr-defined] |
| 567 | + list_iterator = _collections_abc.list_iterator # type: ignore[attr-defined] |
| 568 | + list_reverseiterator = _collections_abc.list_reverseiterator # type: ignore[attr-defined] |
| 569 | + set_iterator = _collections_abc.set_iterator # type: ignore[attr-defined] |
| 570 | + tuple_iterator = _collections_abc.tuple_iterator # type: ignore[attr-defined] |
| 571 | + dict_keys = _collections_abc.dict_keys |
| 572 | + dict_values = _collections_abc.dict_values |
| 573 | + dict_items = _collections_abc.dict_items |
| 574 | +else: |
| 575 | + dict_keyiterator = _alias(_collections_abc.dict_keyiterator, 2) |
| 576 | + dict_valueiterator = _alias(_collections_abc.dict_valueiterator, 2) |
| 577 | + dict_itemiterator = _alias(_collections_abc.dict_itemiterator, 2) |
| 578 | + list_iterator = _alias(_collections_abc.list_iterator, 1) |
| 579 | + list_reverseiterator = _alias(_collections_abc.list_reverseiterator, 1) |
| 580 | + set_iterator = _alias(_collections_abc.set_iterator, 1) |
| 581 | + tuple_iterator = _alias(_collections_abc.tuple_iterator, -1) |
| 582 | + dict_keys = _alias(_collections_abc.dict_keys, 2) |
| 583 | + dict_values = _alias(_collections_abc.dict_values, 2) |
| 584 | + dict_items = _alias(_collections_abc.dict_items, 2) |
0 commit comments