|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from abc import ABC, abstractmethod |
|
from typing import Any, List |
|
|
|
from camel.datahubs.models import Record |
|
|
|
|
|
class BaseDatasetManager(ABC): |
|
r"""Abstract base class for dataset managers.""" |
|
|
|
@abstractmethod |
|
def create_dataset(self, name: str, **kwargs: Any) -> str: |
|
r"""Creates a new dataset. |
|
|
|
Args: |
|
name (str): The name of the dataset. |
|
kwargs (Any): Additional keyword arguments. |
|
|
|
Returns: |
|
str: The URL of the created dataset. |
|
""" |
|
pass |
|
|
|
@abstractmethod |
|
def list_datasets( |
|
self, username: str, limit: int = 100, **kwargs: Any |
|
) -> List[str]: |
|
r"""Lists all datasets for the current user. |
|
|
|
Args: |
|
username (str): The username of the user whose datasets to list. |
|
limit (int): The maximum number of datasets to list. |
|
(default::obj:`100`) |
|
kwargs (Any): Additional keyword arguments. |
|
|
|
Returns: |
|
List[str]: A list of dataset ids. |
|
""" |
|
pass |
|
|
|
@abstractmethod |
|
def delete_dataset(self, dataset_name: str, **kwargs: Any) -> None: |
|
r"""Deletes a dataset. |
|
|
|
Args: |
|
dataset_name (str): The name of the dataset to delete. |
|
kwargs (Any): Additional keyword arguments. |
|
""" |
|
pass |
|
|
|
@abstractmethod |
|
def add_records( |
|
self, |
|
dataset_name: str, |
|
records: List[Record], |
|
filepath: str = "records/records.json", |
|
**kwargs: Any, |
|
) -> None: |
|
r"""Adds records to a dataset. |
|
|
|
Args: |
|
dataset_name (str): The name of the dataset. |
|
records (List[Record]): A list of records to add to the dataset. |
|
filepath (str): The path to the file containing the records. |
|
(default::obj:`"records/records.json"`) |
|
kwargs (Any): Additional keyword arguments. |
|
""" |
|
pass |
|
|
|
@abstractmethod |
|
def update_records( |
|
self, |
|
dataset_name: str, |
|
records: List[Record], |
|
filepath: str = "records/records.json", |
|
**kwargs: Any, |
|
) -> None: |
|
r"""Updates records in a dataset. |
|
|
|
Args: |
|
dataset_name (str): The name of the dataset. |
|
records (List[Record]): A list of records to update in the dataset. |
|
filepath (str): The path to the file containing the records. |
|
(default::obj:`"records/records.json"`) |
|
kwargs (Any): Additional keyword arguments. |
|
""" |
|
pass |
|
|
|
@abstractmethod |
|
def list_records( |
|
self, |
|
dataset_name: str, |
|
filepath: str = "records/records.json", |
|
**kwargs: Any, |
|
) -> List[Record]: |
|
r"""Lists records in a dataset. |
|
|
|
Args: |
|
dataset_name (str): The name of the dataset. |
|
filepath (str): The path to the file containing the records. |
|
(default::obj:`"records/records.json"`) |
|
kwargs (Any): Additional keyword arguments. |
|
""" |
|
pass |
|
|
|
|
|
@abstractmethod |
|
def delete_record( |
|
self, |
|
dataset_name: str, |
|
record_id: str, |
|
filepath: str = "records/records.json", |
|
**kwargs: Any, |
|
) -> None: |
|
r"""Deletes a record from the dataset. |
|
|
|
Args: |
|
dataset_name (str): The name of the dataset. |
|
record_id (str): The ID of the record to delete. |
|
filepath (str): The path to the file containing the records. |
|
(default::obj:`"records/records.json"`) |
|
kwargs (Any): Additional keyword arguments. |
|
""" |
|
pass |
|
|