changeset: 100986:257dd57dd732 branch: 3.5 parent: 100983:8dee0c09b46e user: Brett Cannon date: Fri Apr 15 10:51:30 2016 -0700 files: Lib/typing.py description: Issue #25609: Backport typing.ContextManager. This has no semantic impact as the class is guarded with a hasattr() check; this is being done to keep typing.py in sync between Python 3.5 and 3.6 as requested by Guido. diff -r 8dee0c09b46e -r 257dd57dd732 Lib/typing.py --- a/Lib/typing.py Fri Apr 15 14:13:37 2016 +0300 +++ b/Lib/typing.py Fri Apr 15 10:51:30 2016 -0700 @@ -1,6 +1,7 @@ import abc from abc import abstractmethod, abstractproperty import collections +import contextlib import functools import re as stdlib_re # Avoid confusion with the re we export. import sys @@ -1530,6 +1531,12 @@ pass +if hasattr(contextlib, 'AbstractContextManager'): + class ContextManager(Generic[T_co], extra=contextlib.AbstractContextManager): + __slots__ = () + __all__.append('ContextManager') + + class Dict(dict, MutableMapping[KT, VT]): def __new__(cls, *args, **kwds):