38 lines
1004 B
Python
38 lines
1004 B
Python
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
|