From f3ad042bfb1ea4de7358d1c7cd8b5a2eb9e21d01 Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Fri, 15 Apr 2016 10:51:30 -0700 Subject: [PATCH] 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. --- Lib/typing.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Lib/typing.py b/Lib/typing.py index 6ead3c41946..42a9ea3d660 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):