import abc from .metadata import AbstractMetadataEngine class AbstractRepository(abc.ABC): metadata_engine = AbstractMetadataEngine @abc.abstractmethod def schemas(self) -> list[str]: """List schemas""" raise NotImplementedError @abc.abstractmethod def tables(self, schema) -> list[str]: """List table in schema""" raise NotImplementedError @abc.abstractmethod def infos(self, table: str, schema: str) -> dict[str, str]: """Get infos about the table""" raise NotImplementedError @abc.abstractmethod def read(self, table: str, schema: str): """Get content of the table""" raise NotImplementedError @abc.abstractmethod def write(self, content, table: str, schema: str): """Write content into the table""" raise NotImplementedError @abc.abstractmethod def delete_table(self, table: str, schema: str): """Delete the table""" raise NotImplementedError