Source code for bocoel.factories.storages

# Copyright (c) RenChu Wang - All Rights Reserved

from bocoel import DatasetsStorage, PandasStorage, Storage
from bocoel.common import StrEnum

from . import common


[docs] class StorageName(StrEnum): """ The storage names. """ PANDAS = "PANDAS" "Corresponds to `PandasStorage`." DATASETS = "DATASETS" "Corresponds to `DatasetsStorage`."
[docs] @common.correct_kwargs def storage( storage: str | StorageName, /, *, path: str = "", name: str = "", split: str = "" ) -> Storage: """ Create a single storage. Parameters: storage: The name of the storage. path: The path to the storage. name: The name of the storage. split: The split to use. Returns: The storage instance. Raises: ValueError: If the storage is unknown. """ storage = StorageName.lookup(storage) match storage: case StorageName.PANDAS: return common.correct_kwargs(PandasStorage.from_jsonl_file)(path) case StorageName.DATASETS: return common.correct_kwargs(DatasetsStorage)( path=path, name=name, split=split ) case _: raise ValueError(f"Unknown storage name {storage}")