New submission from Ismo Toijala <ismo.toij...@gmail.com>:
The other collections from the collections module (namedtuple, deque, ChainMap, Counter, defaultdict) have generic versions in the typing module for use in type annotations. The problem is currently the following: from __future__ import annotations import typing from collections import OrderedDict # Understood by mypy def f(d: OrderedDict[str, str]) -> None: pass typing.get_type_hints(f) gives: Traceback (most recent call last): File "foo.py", line 9, in <module> typing.get_type_hints(f) File "/usr/lib/python3.7/typing.py", line 1001, in get_type_hints value = _eval_type(value, globalns, localns) File "/usr/lib/python3.7/typing.py", line 260, in _eval_type return t._evaluate(globalns, localns) File "/usr/lib/python3.7/typing.py", line 464, in _evaluate eval(self.__forward_code__, globalns, localns), File "<string>", line 1, in <module> TypeError: 'type' object is not subscriptable To fix this, a line like the following could be added to Lib/typing.py near line 1250: OrderedDict = _alias(collections.OrderedDict, (KT, VT)) There might be a reasoning for why this has not been done yet, but I have not been able to find any. If this is acceptable, I could prepare a PR. I suppose there is no hope of a backport to 3.7, since this is a new feature (though very minor). ---------- components: Library (Lib) messages: 330616 nosy: itoijala priority: normal severity: normal status: open title: Add generic version of OrderedDict to typing module type: enhancement versions: Python 3.7, Python 3.8 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue35341> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com