Author itoijala
Recipients itoijala
Date 2018-11-28.17:17:38
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
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:


Traceback (most recent call last):
  File "", line 9, in <module>
  File "/usr/lib/python3.7/", line 1001, in get_type_hints
    value = _eval_type(value, globalns, localns)
  File "/usr/lib/python3.7/", line 260, in _eval_type
    return t._evaluate(globalns, localns)
  File "/usr/lib/python3.7/", 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/ 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).
Date User Action Args
2018-11-28 17:17:38itoijalasetrecipients: + itoijala
2018-11-28 17:17:38itoijalasetmessageid: <>
2018-11-28 17:17:38itoijalalinkissue35341 messages
2018-11-28 17:17:38itoijalacreate