diff options
author | Ismo Toijala <ismo.toijala@gmail.com> | 2018-12-02 15:53:14 (GMT) |
---|---|---|
committer | Ivan Levkivskyi <levkivskyi@gmail.com> | 2018-12-02 15:53:14 (GMT) |
commit | 68b56d02ef20479b87c65e523cf3dec1b7b77d40 (patch) | |
tree | 603411399ae708ad25ecba472c402837ae40ccdd /Lib | |
parent | 32bc11c33cf5ccea165b5f4ac3799f02fdf9c76a (diff) | |
download | cpython-68b56d02ef20479b87c65e523cf3dec1b7b77d40.zip cpython-68b56d02ef20479b87c65e523cf3dec1b7b77d40.tar.gz cpython-68b56d02ef20479b87c65e523cf3dec1b7b77d40.tar.bz2 |
bpo-35341: Add generic version of OrderedDict to typing (GH-10850)
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_typing.py | 16 | ||||
-rw-r--r-- | Lib/typing.py | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index 6d8cc53..0d66ebb 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -2075,6 +2075,22 @@ class CollectionsAbcTests(BaseTestCase): self.assertIsSubclass(MyDefDict, collections.defaultdict) self.assertNotIsSubclass(collections.defaultdict, MyDefDict) + def test_ordereddict_instantiation(self): + self.assertIs(type(typing.OrderedDict()), collections.OrderedDict) + self.assertIs(type(typing.OrderedDict[KT, VT]()), collections.OrderedDict) + self.assertIs(type(typing.OrderedDict[str, int]()), collections.OrderedDict) + + def test_ordereddict_subclass(self): + + class MyOrdDict(typing.OrderedDict[str, int]): + pass + + od = MyOrdDict() + self.assertIsInstance(od, MyOrdDict) + + self.assertIsSubclass(MyOrdDict, collections.OrderedDict) + self.assertNotIsSubclass(collections.OrderedDict, MyOrdDict) + @skipUnless(sys.version_info >= (3, 3), 'ChainMap was added in 3.3') def test_chainmap_instantiation(self): self.assertIs(type(typing.ChainMap()), collections.ChainMap) diff --git a/Lib/typing.py b/Lib/typing.py index 4f9e045..3243e2a 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -1241,6 +1241,7 @@ ContextManager = _alias(contextlib.AbstractContextManager, T_co) AsyncContextManager = _alias(contextlib.AbstractAsyncContextManager, T_co) Dict = _alias(dict, (KT, VT), inst=False) DefaultDict = _alias(collections.defaultdict, (KT, VT)) +OrderedDict = _alias(collections.OrderedDict, (KT, VT)) Counter = _alias(collections.Counter, T) ChainMap = _alias(collections.ChainMap, (KT, VT)) Generator = _alias(collections.abc.Generator, (T_co, T_contra, V_co)) |