Source code for elasticai.preprocessor.translation.cocotb_tmp

from contextlib import contextmanager
from pathlib import Path
from shutil import copytree, rmtree
from tempfile import mkdtemp
from typing import Iterator


[docs] @contextmanager def temporary_directory(backup: Path, do_parent: bool = False) -> Iterator[Path]: tmpdir = Path(mkdtemp()) try: yield tmpdir except: copytree(src=tmpdir, dst=backup, dirs_exist_ok=True) rmtree(tmpdir, ignore_errors=True) raise else: rmtree(tmpdir, ignore_errors=True) if do_parent: rmtree(backup.parent, ignore_errors=True) else: rmtree(backup, ignore_errors=True)