Switch Transform to PurePath

This commit is contained in:
Joscha 2020-04-23 17:38:41 +00:00
parent 5ef5a56e69
commit 1ef85c45e5
3 changed files with 12 additions and 13 deletions

View File

@ -6,7 +6,7 @@ A organizer is bound to a single directory.
import filecmp import filecmp
import logging import logging
import shutil import shutil
from pathlib import Path from pathlib import Path, PurePath
from typing import List, Set from typing import List, Set
from .location import Location from .location import Location
@ -31,7 +31,7 @@ class Organizer(Location):
# Keep the root dir # Keep the root dir
self.mark(path) self.mark(path)
def accept_file(self, src: Path, dst: Path) -> None: def accept_file(self, src: Path, dst: PurePath) -> None:
"""Move a file to this organizer and mark it.""" """Move a file to this organizer and mark it."""
src_absolute = src.resolve() src_absolute = src.resolve()
dst_absolute = self.resolve(dst) dst_absolute = self.resolve(dst)
@ -73,9 +73,9 @@ class Organizer(Location):
self.mark(dst) self.mark(dst)
def mark(self, path: Path) -> None: def mark(self, path: PurePath) -> None:
"""Mark a file as used so it will not get cleaned up.""" """Mark a file as used so it will not get cleaned up."""
absolute_path = self.path.joinpath(path).resolve() absolute_path = self.resolve(path)
self._known_files.add(absolute_path) self._known_files.add(absolute_path)
LOGGER.debug("Tracked %s", absolute_path) LOGGER.debug("Tracked %s", absolute_path)

View File

@ -6,11 +6,10 @@ scheme to another.
""" """
from dataclasses import dataclass from dataclasses import dataclass
from pathlib import Path from pathlib import PurePath
from typing import Callable, List, Optional, TypeVar from typing import Callable, List, Optional, TypeVar
Transform = Callable[[PurePath], Optional[PurePath]]
Transform = Callable[[Path], Optional[Path]]
@dataclass @dataclass
@ -19,14 +18,14 @@ class Transformable:
An object that can be transformed by a Transform. An object that can be transformed by a Transform.
""" """
path: Path path: PurePath
TF = TypeVar("TF", bound=Transformable) TF = TypeVar("TF", bound=Transformable)
def apply_transform( def apply_transform(
transform: Callable[[Path], Optional[Path]], transform: Transform,
transformables: List[TF], transformables: List[TF],
) -> List[TF]: ) -> List[TF]:
""" """

View File

@ -86,7 +86,7 @@ class PrettyLogger:
def __init__(self, logger: logging.Logger) -> None: def __init__(self, logger: logging.Logger) -> None:
self.logger = logger self.logger = logger
def modified_file(self, file_name: Path) -> None: def modified_file(self, file_name: PurePath) -> None:
""" """
An existing file has changed. An existing file has changed.
""" """
@ -95,7 +95,7 @@ class PrettyLogger:
f"{Fore.MAGENTA}{Style.BRIGHT}Modified {str(file_name)!r}.{Style.RESET_ALL}" f"{Fore.MAGENTA}{Style.BRIGHT}Modified {str(file_name)!r}.{Style.RESET_ALL}"
) )
def new_file(self, file_name: Path) -> None: def new_file(self, file_name: PurePath) -> None:
""" """
A new file has been downloaded. A new file has been downloaded.
""" """
@ -103,14 +103,14 @@ class PrettyLogger:
self.logger.info( self.logger.info(
f"{Fore.GREEN}{Style.BRIGHT}Created {str(file_name)!r}.{Style.RESET_ALL}") f"{Fore.GREEN}{Style.BRIGHT}Created {str(file_name)!r}.{Style.RESET_ALL}")
def ignored_file(self, file_name: Path) -> None: def ignored_file(self, file_name: PurePath) -> None:
""" """
Nothing in particular happened to this file or directory. Nothing in particular happened to this file or directory.
""" """
self.logger.info(f"{Style.DIM}Ignored {str(file_name)!r}.{Style.RESET_ALL}") self.logger.info(f"{Style.DIM}Ignored {str(file_name)!r}.{Style.RESET_ALL}")
def filtered_path(self, path: Path, reason: str) -> None: def filtered_path(self, path: PurePath, reason: str) -> None:
""" """
A crawler filter rejected the given path. A crawler filter rejected the given path.
""" """