from __future__ import annotations

from typing import Any, Optional

from paddle.io import Dataset

class MNIST(Dataset):
    NAME: str = ...
    URL_PREFIX: str = ...
    TEST_IMAGE_URL: Any = ...
    TEST_IMAGE_MD5: str = ...
    TEST_LABEL_URL: Any = ...
    TEST_LABEL_MD5: str = ...
    TRAIN_IMAGE_URL: Any = ...
    TRAIN_IMAGE_MD5: str = ...
    TRAIN_LABEL_URL: Any = ...
    TRAIN_LABEL_MD5: str = ...
    backend: Any = ...
    mode: Any = ...
    image_path: Any = ...
    label_path: Any = ...
    transform: Any = ...
    dtype: Any = ...
    def __init__(
        self,
        image_path: Optional[Any] = ...,
        label_path: Optional[Any] = ...,
        mode: str = ...,
        transform: Optional[Any] = ...,
        download: bool = ...,
        backend: Optional[Any] = ...,
    ) -> None: ...
    def __getitem__(self, idx: Any): ...
    def __len__(self): ...

class FashionMNIST(MNIST):
    NAME: str = ...
    URL_PREFIX: str = ...
    TEST_IMAGE_URL: Any = ...
    TEST_IMAGE_MD5: str = ...
    TEST_LABEL_URL: Any = ...
    TEST_LABEL_MD5: str = ...
    TRAIN_IMAGE_URL: Any = ...
    TRAIN_IMAGE_MD5: str = ...
    TRAIN_LABEL_URL: Any = ...
    TRAIN_LABEL_MD5: str = ...
