| """Abstract interface for file storage implementations.""" |
|
|
| from abc import ABC, abstractmethod |
| from collections.abc import Generator |
|
|
|
|
| class BaseStorage(ABC): |
| """Interface for file storage.""" |
|
|
| def __init__(self): |
| pass |
|
|
| @abstractmethod |
| def save(self, filename, data): |
| raise NotImplementedError |
|
|
| @abstractmethod |
| def load_once(self, filename: str) -> bytes: |
| raise NotImplementedError |
|
|
| @abstractmethod |
| def load_stream(self, filename: str) -> Generator: |
| raise NotImplementedError |
|
|
| @abstractmethod |
| def download(self, filename, target_filepath): |
| raise NotImplementedError |
|
|
| @abstractmethod |
| def exists(self, filename): |
| raise NotImplementedError |
|
|
| @abstractmethod |
| def delete(self, filename): |
| raise NotImplementedError |
|
|