import os import io import contextlib import tempfile import shutil import errno import zipfile @contextlib.contextmanager def tempdir(): """Create a temporary directory in a context manager.""" td = tempfile.mkdtemp() try: yield td finally: shutil.rmtree(td) def mkdir_p(*args, **kwargs): """Like `mkdir`, but does not raise an exception if the directory already exists. """ try: return os.mkdir(*args, **kwargs) except OSError as exc: if exc.errno != errno.EEXIST: raise def dir_to_zipfile(root): """Construct an in-memory zip file for a directory.""" buffer = io.BytesIO() zip_file = zipfile.ZipFile(buffer, 'w') for root, dirs, files in os.walk(root): for path in dirs: fs_path = os.path.join(root, path) rel_path = os.path.relpath(fs_path, root) zip_file.writestr(rel_path + '/', '') for path in files: fs_path = os.path.join(root, path) rel_path = os.path.relpath(fs_path, root) zip_file.write(fs_path, rel_path) return zip_file
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
.__init__.pyo.40009 | File | 274 B | 0644 |
|
._in_process.pyo.40009 | File | 10.68 KB | 0644 |
|
.build.pyo.40009 | File | 4.31 KB | 0644 |
|
.check.pyo.40009 | File | 5.9 KB | 0644 |
|
.colorlog.pyo.40009 | File | 3.62 KB | 0644 |
|
.compat.pyo.40009 | File | 1.44 KB | 0644 |
|
.dirtools.pyo.40009 | File | 1.72 KB | 0644 |
|
.envbuild.pyo.40009 | File | 5.4 KB | 0644 |
|
.meta.pyo.40009 | File | 3.54 KB | 0644 |
|
.wrappers.pyo.40009 | File | 12.72 KB | 0644 |
|
__init__.py | File | 84 B | 0644 |
|
__init__.pyc | File | 274 B | 0644 |
|
__init__.pyo | File | 274 B | 0644 |
|
_in_process.py | File | 8.24 KB | 0644 |
|
_in_process.pyc | File | 10.68 KB | 0644 |
|
_in_process.pyo | File | 10.68 KB | 0644 |
|
build.py | File | 3.26 KB | 0644 |
|
build.pyc | File | 4.31 KB | 0644 |
|
build.pyo | File | 4.31 KB | 0644 |
|
check.py | File | 5.82 KB | 0644 |
|
check.pyc | File | 5.9 KB | 0644 |
|
check.pyo | File | 5.9 KB | 0644 |
|
colorlog.py | File | 4 KB | 0644 |
|
colorlog.pyc | File | 3.62 KB | 0644 |
|
colorlog.pyo | File | 3.62 KB | 0644 |
|
compat.py | File | 780 B | 0644 |
|
compat.pyc | File | 1.44 KB | 0644 |
|
compat.pyo | File | 1.44 KB | 0644 |
|
dirtools.py | File | 1.1 KB | 0644 |
|
dirtools.pyc | File | 1.72 KB | 0644 |
|
dirtools.pyo | File | 1.72 KB | 0644 |
|
envbuild.py | File | 5.9 KB | 0644 |
|
envbuild.pyc | File | 5.4 KB | 0644 |
|
envbuild.pyo | File | 5.4 KB | 0644 |
|
meta.py | File | 2.41 KB | 0644 |
|
meta.pyc | File | 3.54 KB | 0644 |
|
meta.pyo | File | 3.54 KB | 0644 |
|
wrappers.py | File | 10.53 KB | 0644 |
|
wrappers.pyc | File | 12.72 KB | 0644 |
|
wrappers.pyo | File | 12.72 KB | 0644 |
|