diff options
Diffstat (limited to 'setuptools/py31compat.py')
| -rw-r--r-- | setuptools/py31compat.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/setuptools/py31compat.py b/setuptools/py31compat.py index dbb324b0..e6b2910a 100644 --- a/setuptools/py31compat.py +++ b/setuptools/py31compat.py @@ -9,3 +9,29 @@ except ImportError: 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 |
