Implementation:Huggingface Datasets DatasetInfo
| Knowledge Sources | |
|---|---|
| Domains | Data_Engineering, NLP |
| Last Updated | 2026-02-14 18:00 GMT |
Overview
Concrete tool for configuring dataset metadata (description, citation, license, features) provided by the HuggingFace Datasets library.
Description
DatasetInfo is a dataclass that documents datasets, including name, version, features, description, citation, license, split information, and size statistics. It supports serialization to/from JSON for persistence alongside data files. A subset of fields (config_name, download_size, dataset_size, features, splits) is included in dataset card YAML front matter. The class automatically converts raw dict/list representations to proper typed objects (Features, SplitDict, Version, etc.) in its __post_init__.
Usage
Use DatasetInfo to attach metadata to datasets during creation, or access it via dataset.info on existing datasets. It is automatically populated and serialized during push_to_hub.
Code Reference
Source Location
- Repository: datasets
- File:
src/datasets/info.py - Lines: 92-323
Signature
@dataclass
class DatasetInfo:
description: str = dataclasses.field(default_factory=str)
citation: str = dataclasses.field(default_factory=str)
homepage: str = dataclasses.field(default_factory=str)
license: str = dataclasses.field(default_factory=str)
features: Optional[Features] = None
post_processed: Optional[PostProcessedInfo] = None
supervised_keys: Optional[SupervisedKeysData] = None
builder_name: Optional[str] = None
dataset_name: Optional[str] = None
config_name: Optional[str] = None
version: Optional[Union[str, Version]] = None
splits: Optional[SplitDict] = None
download_checksums: Optional[dict] = None
download_size: Optional[int] = None
post_processing_size: Optional[int] = None
dataset_size: Optional[int] = None
size_in_bytes: Optional[int] = None
Import
from datasets import DatasetInfo
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| description | str |
No | A textual description of the dataset. |
| citation | str |
No | A BibTeX citation string. |
| homepage | str |
No | URL to the dataset's official homepage. |
| license | str |
No | License name or terms. |
| features | Features |
No | The dataset's column types schema. |
| version | str or Version |
No | Version identifier for the dataset. |
| splits | SplitDict |
No | Mapping of split names to split metadata. |
Outputs
| Name | Type | Description |
|---|---|---|
| instance | DatasetInfo |
A DatasetInfo object containing all metadata fields. |
Usage Examples
Basic Usage
from datasets import DatasetInfo, Features, Value
info = DatasetInfo(
description="A sample dataset for demonstration.",
citation="@article{sample, title={Sample}}",
license="MIT",
features=Features({"text": Value("string"), "label": Value("int32")}),
)
# Pass to dataset construction
from datasets import Dataset
ds = Dataset.from_dict(
{"text": ["Hello"], "label": [1]},
info=info,
)
print(ds.info.description)
# "A sample dataset for demonstration."