This commit is contained in:
Christian Mantha
2026-03-02 19:10:52 -05:00
commit 2ca0b9ef7c
28907 changed files with 5233713 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
from __future__ import annotations
import shutil
import tempfile
from ._errors import OperationFailed
from ._osfs import OSFS
class TempFS(OSFS):
def __init__(self, auto_clean: bool = True, ignore_clean_errors: bool = True):
self.auto_clean = auto_clean
self.ignore_clean_errors = ignore_clean_errors
self._temp_dir = tempfile.mkdtemp("__temp_fs__")
self._cleaned = False
super().__init__(self._temp_dir)
def close(self):
if self.auto_clean:
self.clean()
super().close()
def clean(self):
if self._cleaned:
return
try:
shutil.rmtree(self._temp_dir)
except Exception as e:
if not self.ignore_clean_errors:
raise OperationFailed(
f"failed to remove temporary directory: {self._temp_dir!r}"
) from e
self._cleaned = True