Source code for terminhtml_recorder.temp_path
import contextlib
import shutil
import tempfile
from pathlib import Path
from typing import Iterator
[docs]@contextlib.contextmanager
def create_temp_path() -> Iterator[Path]:
"""
Returns a temporary folder path
Use this instead of tempfile.TemporaryDirectory because:
1. That returns a string and not a path
2. On MacOS, the temp directory has a symlink. This resolves the symlink so that
there won't be any mismatch in resolved paths.
3. On Windows, the temp directory can fail to delete with a PermissionError. This function
will try to delete the temp directory, but if it fails with an error it will just ignore it.
"""
temp_dir = tempfile.TemporaryDirectory()
temp_path = Path(temp_dir.name).resolve()
yield temp_path
shutil.rmtree(temp_path, ignore_errors=True)