aboutsummaryrefslogtreecommitdiff
path: root/setuptools/py31compat.py
diff options
context:
space:
mode:
authorNan Zhang <nanzhang@google.com>2018-05-24 18:59:04 -0700
committerandroid-build-merger <android-build-merger@google.com>2018-05-24 18:59:04 -0700
commita3209a1079bbe0d57820a93b1d2153719818c259 (patch)
tree7f63dc937b886389e53ee3b386c70baebd1da8e1 /setuptools/py31compat.py
parente493fcf90483ade4b2a5ac331a4f89cb15ae3fd2 (diff)
parent21d497cb588c40b2a891d9a862f56e108b427e4c (diff)
downloadsetuptools-a3209a1079bbe0d57820a93b1d2153719818c259.tar.gz
initial drop of setuptools v39.1.0 am: 8539a2ae46 am: c498e8445a
am: 21d497cb58 Change-Id: I0d9ec0d7323b37baa8a7550c6aec27e05af57415
Diffstat (limited to 'setuptools/py31compat.py')
-rw-r--r--setuptools/py31compat.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/setuptools/py31compat.py b/setuptools/py31compat.py
new file mode 100644
index 0000000..4ea9532
--- /dev/null
+++ b/setuptools/py31compat.py
@@ -0,0 +1,41 @@
+__all__ = ['get_config_vars', 'get_path']
+
+try:
+ # Python 2.7 or >=3.2
+ from sysconfig import get_config_vars, get_path
+except ImportError:
+ from distutils.sysconfig import get_config_vars, get_python_lib
+
+ def get_path(name):
+ if name not in ('platlib', 'purelib'):
+ raise ValueError("Name must be purelib or platlib")
+ return get_python_lib(name == 'platlib')
+
+
+try:
+ # Python >=3.2
+ from tempfile import TemporaryDirectory
+except ImportError:
+ import shutil
+ import tempfile
+
+ class TemporaryDirectory(object):
+ """
+ Very simple temporary directory context manager.
+ Will try to delete afterward, but will also ignore OS and similar
+ errors on deletion.
+ """
+
+ def __init__(self):
+ self.name = None # Handle mkdtemp raising an exception
+ self.name = tempfile.mkdtemp()
+
+ def __enter__(self):
+ return self.name
+
+ def __exit__(self, exctype, excvalue, exctrace):
+ try:
+ shutil.rmtree(self.name, True)
+ except OSError: # removal errors are not the only possible
+ pass
+ self.name = None