]> granicus.if.org Git - python/commitdiff
Issue #25609: Backport typing.ContextManager.
authorBrett Cannon <brett@python.org>
Fri, 15 Apr 2016 17:51:30 +0000 (10:51 -0700)
committerBrett Cannon <brett@python.org>
Fri, 15 Apr 2016 17:51:30 +0000 (10:51 -0700)
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

index 6ead3c41946dc5191d155f73c2ffad3a4d46ea71..42a9ea3d660c82bc7a4e338b2cf9bb3234fd3572 100644 (file)
@@ -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):