From: Brett Cannon Date: Fri, 15 Apr 2016 17:51:30 +0000 (-0700) Subject: Issue #25609: Backport typing.ContextManager. X-Git-Tag: v3.6.0a1~203^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f3ad042bfb1ea4de7358d1c7cd8b5a2eb9e21d01;p=thirdparty%2FPython%2Fcpython.git 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 --git a/Lib/typing.py b/Lib/typing.py index 6ead3c41946d..42a9ea3d660c 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -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 @@ class ValuesView(MappingView[VT_co], extra=collections_abc.ValuesView): 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):