"""
This module provides data pool classes for accessing Zerochan image datasets.
It includes two main classes:
1. ZerochanDataPool: For accessing the full Zerochan dataset.
2. ZerochanWebpDataPool: For accessing the WebP-formatted Zerochan dataset.
These classes inherit from IncrementIDDataPool and provide easy access to
Zerochan images stored in Hugging Face repositories.
"""
from .base import IncrementIDDataPool
_ZEROCHAN_REPO = 'deepghs/zerochan_full'
[docs]class ZerochanDataPool(IncrementIDDataPool):
    """
    A data pool for accessing the full Zerochan image dataset.
    This class provides access to Zerochan images stored in the 'deepghs/zerochan_full'
    Hugging Face repository. It uses an incremental ID system for efficient data retrieval.
    :param revision: The revision of the Hugging Face repository to use, defaults to 'main'.
    :type revision: str
    Usage:
        >>> pool = ZerochanDataPool()
    """
[docs]    def __init__(self, revision: str = 'main'):
        """
        Initialize the ZerochanDataPool.
        :param revision: The revision of the Hugging Face repository to use, defaults to 'main'.
        :type revision: str
        """
        IncrementIDDataPool.__init__(
            self,
            data_repo_id=_ZEROCHAN_REPO,
            data_revision=revision,
            idx_repo_id=_ZEROCHAN_REPO,
            idx_revision=revision,
            base_level=3,
        )  
_ZEROCHAN_WEBP_REPO = 'deepghs/zerochan-webp-4Mpixel'
[docs]class ZerochanWebpDataPool(IncrementIDDataPool):
    """
    A data pool for accessing the WebP-formatted Zerochan image dataset.
    This class provides access to WebP-formatted Zerochan images stored in the
    'deepghs/zerochan-webp-4Mpixel' Hugging Face repository. It uses an incremental
    ID system for efficient data retrieval.
    :param revision: The revision of the Hugging Face repository to use, defaults to 'main'.
    :type revision: str
    Usage:
        >>> pool = ZerochanWebpDataPool()
    """
[docs]    def __init__(self, revision: str = 'main'):
        """
        Initialize the ZerochanWebpDataPool.
        :param revision: The revision of the Hugging Face repository to use, defaults to 'main'.
        :type revision: str
        """
        IncrementIDDataPool.__init__(
            self,
            data_repo_id=_ZEROCHAN_WEBP_REPO,
            data_revision=revision,
            idx_repo_id=_ZEROCHAN_WEBP_REPO,
            idx_revision=revision,
            base_level=3,
        )