summaryrefslogtreecommitdiff
path: root/contrib/python/pypodman/lib/future_abstract.py
diff options
context:
space:
mode:
authorMatthew Heon <matthew.heon@gmail.com>2018-07-13 16:34:51 -0400
committerGitHub <noreply@github.com>2018-07-13 16:34:51 -0400
commita689639a6502bab3f49b853bc2983c1b44363b2f (patch)
tree75ba256d70545d79aa61d7c57c20df886be1555f /contrib/python/pypodman/lib/future_abstract.py
parent14a6d51a8432fc0c3324fec02e8729d3032f2af2 (diff)
parent74ccd9ce5f29a1df4ffe70b4d8bd00c29d5d9d15 (diff)
downloadpodman-a689639a6502bab3f49b853bc2983c1b44363b2f.tar.gz
podman-a689639a6502bab3f49b853bc2983c1b44363b2f.tar.bz2
podman-a689639a6502bab3f49b853bc2983c1b44363b2f.zip
Merge pull request #1081 from jwhonce/wip/client
remote python client for podman
Diffstat (limited to 'contrib/python/pypodman/lib/future_abstract.py')
-rw-r--r--contrib/python/pypodman/lib/future_abstract.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/contrib/python/pypodman/lib/future_abstract.py b/contrib/python/pypodman/lib/future_abstract.py
new file mode 100644
index 000000000..75a1d42db
--- /dev/null
+++ b/contrib/python/pypodman/lib/future_abstract.py
@@ -0,0 +1,29 @@
+"""Utilities for with-statement contexts. See PEP 343."""
+
+import abc
+
+import _collections_abc
+
+try:
+ from contextlib import AbstractContextManager
+except ImportError:
+ # Copied from python3.7 library as "backport"
+ class AbstractContextManager(abc.ABC):
+ """An abstract base class for context managers."""
+
+ def __enter__(self):
+ """Return `self` upon entering the runtime context."""
+ return self
+
+ @abc.abstractmethod
+ def __exit__(self, exc_type, exc_value, traceback):
+ """Raise any exception triggered within the runtime context."""
+ return None
+
+ @classmethod
+ def __subclasshook__(cls, C):
+ """Check whether subclass is considered a subclass of this ABC."""
+ if cls is AbstractContextManager:
+ return _collections_abc._check_methods(C, "__enter__",
+ "__exit__")
+ return NotImplemented