from abc import ABC, abstractmethod from pathlib import Path class FtpService(ABC): @abstractmethod def download(self, path: Path): pass @abstractmethod def upload(self, path: Path): pass @abstractmethod def rename(self, oldPath: Path, newPath: Path): pass @abstractmethod def delete(self, path: Path): pass @abstractmethod def copy(self, path: Path, newPath: Path): pass @abstractmethod def scan(self) -> list[Path]: pass