From 8b2709fc1d0443faca990d962df05ecaa42a982a Mon Sep 17 00:00:00 2001 From: Sergey Rybakov Date: Mon, 1 Jul 2024 21:30:12 +0300 Subject: [PATCH] files deleting fixed --- deker_local_adapters/mixin.py | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/deker_local_adapters/mixin.py b/deker_local_adapters/mixin.py index 0ef7c00..178b70d 100644 --- a/deker_local_adapters/mixin.py +++ b/deker_local_adapters/mixin.py @@ -52,21 +52,26 @@ class LocalAdapterMixin(object): logger: Logger executor: ThreadPoolExecutor - def _delete(self, file: Path) -> None: + def _delete(self, symlink: Path) -> None: """Delete symlink and realpath files from disk. - :param file: path to the file + :param symlink: path to the symlink file """ try: - if file.exists(): - os.remove(file) - if file.parent.exists(): - for folder in file.parents: - subs = os.listdir(folder) - if subs or any(str(folder).endswith(directory) for directory in self.dirs): - break - if folder.exists(): - os.rmdir(folder) + data = symlink.readlink() + if data.exists(): + os.remove(data) + + symlink.unlink(missing_ok=True) + + for file in (data, symlink): + if file.parent.exists(): + for folder in file.parents: + subs = os.listdir(folder) + if subs or any(str(folder).endswith(directory) for directory in self.dirs): + break + if folder.exists(): + os.rmdir(folder) except FileNotFoundError: pass @@ -79,9 +84,7 @@ def delete(self, array: Union[Array, VArray]) -> None: try: paths = get_paths(array, self.collection_path) filename = array.id + self.file_ext - files = (paths.symlink / filename, paths.main / filename) - for file in files: - self._delete(file) + self._delete(paths.symlink / filename) except Exception as e: self.logger.exception(e)