Skip to content

simet.providers.local_provider_class

simet.providers.local_provider_class

LocalProviderWithClass

LocalProviderWithClass(data_path)

Bases: Provider

Provider that exposes a labeled dataset from a local folder hierarchy.

Wraps torchvision.datasets.ImageFolder to read images from self.data_path where each subdirectory name is a class label (e.g., cats/, dogs/). Applies the given project :class:Transform.

Expected layout

data_path/ class_a/ img001.jpg ... class_b/ img101.jpg ...

Notes
  • Class-to-index mapping is derived from subfolder names (dataset.class_to_idx).
  • Discovery is recursive under each class subfolder.
  • If the path does not exist or no valid images are found, ImageFolder will raise.
Example

provider = LocalProviderWithClass(data_path=Path("./data/pets")) ds = provider.get_data(transform=SomeTransform()) len(ds) > 0 True ds.classes # e.g., ['cats', 'dogs'] ['cats', 'dogs']

Source code in simet/providers/base/provider.py
46
47
def __init__(self, data_path: Path) -> None:
    self.data_path = data_path

get_data

get_data(transform)

Return an ImageFolder dataset rooted at self.data_path.

Validates that self.data_path exists before constructing the dataset.

Parameters:

Name Type Description Default
transform Transform

Project transform wrapper; transform.get_transform() is passed to ImageFolder.

required

Returns:

Name Type Description
VisionDataset VisionDataset

A dataset yielding (image, class_index) pairs.

Raises:

Type Description
FileNotFoundError

If self.data_path does not exist.

Source code in simet/providers/local_provider_class.py
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
@override
def get_data(self, transform: Transform) -> VisionDataset:
    """Return an `ImageFolder` dataset rooted at `self.data_path`.

    Validates that `self.data_path` exists before constructing the dataset.

    Args:
        transform: Project transform wrapper; `transform.get_transform()` is
            passed to `ImageFolder`.

    Returns:
        VisionDataset: A dataset yielding `(image, class_index)` pairs.

    Raises:
        FileNotFoundError: If `self.data_path` does not exist.
    """
    if not self.data_path.exists():
        raise FileNotFoundError(
            f"The specified path {self.data_path} does not exist."
        )
    return ImageFolder(
        root=str(self.data_path), transform=transform.get_transform()
    )