From b2fe7cc064c5a0dcb2d7b44a3a7b23c20dfc9740 Mon Sep 17 00:00:00 2001 From: I-Al-Istannen Date: Mon, 20 Apr 2020 14:37:44 +0200 Subject: [PATCH] Add preliminary logging to organizer and tmp_dir --- PFERD/new_organizer.py | 13 ++++++++++++- PFERD/tmp_dir.py | 10 ++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/PFERD/new_organizer.py b/PFERD/new_organizer.py index dd51d58..27e7a7d 100644 --- a/PFERD/new_organizer.py +++ b/PFERD/new_organizer.py @@ -3,12 +3,15 @@ A organizer is bound to a single directory. """ +import logging import shutil from pathlib import Path from typing import List, Set from .utils import prompt_yes_no +logger = logging.getLogger(__name__) + class Organizer(): """A helper for managing downloaded files.""" @@ -28,13 +31,19 @@ class Organizer(): """Move a file to this organizer and mark it.""" source_absolute = self.path.joinpath(source).absolute() target_absolute = self.path.joinpath(target).absolute() + + logger.debug(f"Copying '{source_absolute}' to '{target_absolute}") + shutil.move(str(source_absolute), str(target_absolute)) + self.mark_file(target) # TODO: Name this method :/ track_file? def mark_file(self, path: Path) -> None: """Mark a file as used so it will not get cleaned up.""" - self._known_files.add(self.path.joinpath(path).absolute()) + absolute_path = self.path.joinpath(path).absolute() + self._known_files.add(absolute_path) + logger.debug(f"Tracked {absolute_path}") def resolve_file(self, file_path: Path) -> Path: """Resolve a file relative to the path of this organizer.""" @@ -42,6 +51,8 @@ class Organizer(): def cleanup(self) -> None: """Remove all untracked files in the organizer's dir.""" + logger.debug("Deleting all untracked files...") + self._cleanup(self.path) def _cleanup(self, start_dir: Path) -> None: diff --git a/PFERD/tmp_dir.py b/PFERD/tmp_dir.py index 58706f5..2744a29 100644 --- a/PFERD/tmp_dir.py +++ b/PFERD/tmp_dir.py @@ -1,10 +1,13 @@ """Helper functions and classes for temporary folders.""" +import logging import shutil from pathlib import Path from types import TracebackType from typing import Optional, Type +logger = logging.getLogger(__name__) + class TmpDir(): """A temporary folder that can create files or nested temp folders.""" @@ -38,6 +41,9 @@ class TmpDir(): def new_file(self, prefix: Optional[str] = None) -> Path: """Return a unique path inside the folder, but don't create a file.""" name = f"{prefix if prefix else 'tmp'}-{self._inc_and_get_counter():03}" + + logger.debug(f"Creating temp file '{name}'") + return self.path.joinpath(name) def new_folder(self, prefix: Optional[str] = None) -> 'TmpDir': @@ -47,10 +53,14 @@ class TmpDir(): sub_path = self.path.joinpath(name) sub_path.mkdir(parents=True) + logger.debug(f"Creating temp dir '{name}' at {sub_path}") + return TmpDir(sub_path) def cleanup(self) -> None: """Delete this folder and all contained files.""" + logger.debug(f"Deleting temp folder {self.path}") + shutil.rmtree(self.path.absolute()) def _inc_and_get_counter(self) -> int: