This will remove imports from __future__ that are no longer needed. https://docs.python.org/3.5/library/2to3.html#2to3fixer-future
40 lines
995 B
Python
40 lines
995 B
Python
"""Make temporary directories nicely."""
|
|
|
|
|
|
import atexit
|
|
import os.path
|
|
import shutil
|
|
import tempfile
|
|
|
|
|
|
def mkdtemp_clean(suffix="", prefix="tmp", dir=None): # pylint: disable=redefined-builtin
|
|
"""Just like mkdtemp, but the directory will be deleted when the process ends."""
|
|
the_dir = tempfile.mkdtemp(suffix=suffix, prefix=prefix, dir=dir)
|
|
atexit.register(cleanup_tempdir, the_dir)
|
|
return the_dir
|
|
|
|
|
|
def cleanup_tempdir(the_dir):
|
|
"""Called on process exit to remove a temp directory."""
|
|
if os.path.exists(the_dir):
|
|
shutil.rmtree(the_dir)
|
|
|
|
|
|
def create_symlink(src, dest):
|
|
"""
|
|
Creates a symbolic link which will be deleted when the process ends.
|
|
:param src: path to source
|
|
:param dest: path to destination
|
|
"""
|
|
os.symlink(src, dest)
|
|
atexit.register(delete_symlink, dest)
|
|
|
|
|
|
def delete_symlink(link_path):
|
|
"""
|
|
Removes symbolic link for
|
|
:param link_path:
|
|
"""
|
|
if os.path.exists(link_path):
|
|
os.remove(link_path)
|