Spaces:
Running on Zero
Running on Zero
| """Backends for the data types a dataset of interest is saved in. | |
| Those can be used to load data from diverse storage backends, e.g. from HDF5 | |
| files which are more suitable for data centers. The naive backend is the | |
| FileBackend, which loads from / saves to file naively. | |
| """ | |
| from abc import abstractmethod | |
| from typing import Literal | |
| class DataBackend: | |
| """Abstract class of storage backends. | |
| All backends need to implement three functions: get(), set() and exists(). | |
| get() reads the file as a byte stream and set() writes a byte stream to a | |
| file. exists() checks if a certain filepath exists. | |
| """ | |
| def set( | |
| self, filepath: str, content: bytes, mode: Literal["w", "a"] | |
| ) -> None: | |
| """Set the file content at the given filepath. | |
| Args: | |
| filepath (str): The filepath to store the data at. | |
| content (bytes): The content to store as bytes. | |
| mode (str): The mode to open the file in. | |
| """ | |
| raise NotImplementedError | |
| def get(self, filepath: str) -> bytes: | |
| """Get the file content at the given filepath as bytes. | |
| Args: | |
| filepath (str): The filepath to retrieve the data from." | |
| Returns: | |
| bytes: The content of the file as bytes. | |
| """ | |
| raise NotImplementedError | |
| def exists(self, filepath: str) -> bool: | |
| """Check if filepath exists. | |
| Args: | |
| filepath (str): The filepath to check. | |
| Returns: | |
| bool: True if the filepath exists, False otherwise. | |
| """ | |
| raise NotImplementedError | |
| def isfile(self, filepath: str) -> bool: | |
| """Check if filepath is a file. | |
| Args: | |
| filepath (str): The filepath to check. | |
| Returns: | |
| bool: True if the filepath is a file, False otherwise. | |
| """ | |
| raise NotImplementedError | |
| def listdir(self, filepath: str) -> list[str]: | |
| """List all files in a directory. | |
| Args: | |
| filepath (str): The directory to list. | |
| Returns: | |
| list[str]: A list of all files in the directory. | |
| """ | |
| raise NotImplementedError | |
| def close(self) -> None: | |
| """Close all opened files in the backend.""" | |
| raise NotImplementedError | |