From 74ccd9ce5f29a1df4ffe70b4d8bd00c29d5d9d15 Mon Sep 17 00:00:00 2001 From: Jhon Honce Date: Thu, 12 Jul 2018 19:26:14 -0700 Subject: Update python directories to better support setup.py Signed-off-by: Jhon Honce --- contrib/python/pypodman/lib/future_abstract.py | 29 ++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 contrib/python/pypodman/lib/future_abstract.py (limited to 'contrib/python/pypodman/lib/future_abstract.py') 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 -- cgit v1.2.3-54-g00ecf