"""
This module provides a data pool implementation for the 3D Booru dataset.
It includes a class `ThreedbooruDataPool` which extends the `IncrementIDDataPool`
to specifically handle the 3D Booru dataset. This module allows users to easily
access and manage data from the 3D Booru repository hosted on Hugging Face.
.. note::
The dataset `deepghs/3dbooru_full <https://huggingface.co/datasets/deepghs/3dbooru_full>`_
is gated, you have to get the access of it before using this module.
"""
from typing import Optional
from .base import IncrementIDDataPool
_3DBOORU_REPO = 'deepghs/3dbooru_full'
[docs]class ThreedbooruDataPool(IncrementIDDataPool):
"""
A data pool class for managing and accessing the 3D Booru dataset.
This class extends the `IncrementIDDataPool` to provide specific functionality
for the 3D Booru dataset. It uses a predefined repository ID for both data
and index information.
:param revision: The specific revision of the 3D Booru dataset to use, defaults to 'main'.
:type revision: str
:param hf_token: Optional Hugging Face authentication token for accessing private repositories.
:type hf_token: Optional[str]
Usage:
>>> pool = ThreedbooruDataPool()
>>> pool_with_token = ThreedbooruDataPool(hf_token='your_token_here')
.. note::
The 3D Booru dataset is hosted in the 'deepghs/3dbooru_full' repository on Hugging Face.
"""
[docs] def __init__(self, revision: str = 'main', hf_token: Optional[str] = None):
"""
Initialize the ThreedbooruDataPool.
This constructor sets up the data pool with the specified revision of the 3D Booru dataset.
It uses the same repository for both data and index information.
:param revision: The specific revision of the 3D Booru dataset to use, defaults to 'main'.
:type revision: str
:param hf_token: Optional Hugging Face authentication token for accessing private repositories.
:type hf_token: Optional[str]
"""
IncrementIDDataPool.__init__(
self,
data_repo_id=_3DBOORU_REPO,
data_revision=revision,
idx_repo_id=_3DBOORU_REPO,
idx_revision=revision,
hf_token=hf_token,
)