Source code for cleanvision.dataset.utils

from __future__ import annotations

from typing import TYPE_CHECKING, Dict, List, Optional

from cleanvision.dataset.base_dataset import Dataset
from cleanvision.dataset.fsspec_dataset import FSDataset
from cleanvision.dataset.hf_dataset import HFDataset
from cleanvision.dataset.torch_dataset import TorchDataset

if TYPE_CHECKING:  # pragma: no cover
    import datasets
    from torchvision.datasets.vision import VisionDataset


[docs]def build_dataset( data_path: Optional[str] = None, filepaths: Optional[List[str]] = None, hf_dataset: Optional["datasets.Dataset"] = None, image_key: Optional[str] = None, torchvision_dataset: Optional["VisionDataset"] = None, storage_opts: Dict[str, str] = {}, ) -> Dataset: if data_path: return FSDataset(data_folder=data_path, storage_opts=storage_opts) elif filepaths: return FSDataset(filepaths=filepaths, storage_opts=storage_opts) elif hf_dataset and image_key: return HFDataset(hf_dataset, image_key) elif torchvision_dataset: return TorchDataset(torchvision_dataset) else: raise ValueError( "You must specify some argument among the following: `data_path`, `filepaths`, (`hf_dataset`, `image_key`), `torchvision_dataset`" )