| 1234567891011121314151617181920212223242526272829303132333435363738 | """Abstract interface for file storage implementations."""from abc import ABC, abstractmethodfrom collections.abc import Generatorfrom flask import Flaskclass BaseStorage(ABC):    """Interface for file storage.    """    app = None    def __init__(self, app: Flask):        self.app = app    @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
 |