diff options
Diffstat (limited to 'snips_inference_agl/common/io_utils.py')
-rw-r--r-- | snips_inference_agl/common/io_utils.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/snips_inference_agl/common/io_utils.py b/snips_inference_agl/common/io_utils.py new file mode 100644 index 0000000..f4407a3 --- /dev/null +++ b/snips_inference_agl/common/io_utils.py @@ -0,0 +1,36 @@ +import errno +import os +import shutil +from contextlib import contextmanager +from pathlib import Path +from tempfile import mkdtemp +from zipfile import ZipFile, ZIP_DEFLATED + + +def mkdir_p(path): + """Reproduces the 'mkdir -p shell' command + + See + http://stackoverflow.com/questions/600268/mkdir-p-functionality-in-python + """ + try: + os.makedirs(str(path)) + except OSError as exc: # Python >2.5 + if exc.errno == errno.EEXIST and path.is_dir(): + pass + else: + raise + + +@contextmanager +def temp_dir(): + tmp_dir = mkdtemp() + try: + yield Path(tmp_dir) + finally: + shutil.rmtree(tmp_dir) + + +def unzip_archive(archive_file, destination_dir): + with ZipFile(archive_file, "r", ZIP_DEFLATED) as zipf: + zipf.extractall(str(destination_dir)) |