iden
simple library to manage a dataset of shards to train machine learning models
What it is and what it does
iden is a Python library for organizing and accessing machine learning training data split into shards—discrete data chunks that can be stored in different formats and loaded on demand. It abstracts away the mechanics of managing train/validation/test splits, persisting shards to disk, and retrieving them lazily so you don't load everything into memory at once. Each shard has a URI for reproducible identification and optional caching for frequently accessed data.
The library depends on coola (for data comparison) and objectory (for dynamic object instantiation), and supports formats like JSON, YAML, Pickle, PyTorch tensors, and safetensors. It's designed for the common ML workflow where you organize data into logical splits and want to load individual shards on demand rather than materializing the entire dataset upfront.
Use it for:
- Organize large training datasets into splits (train/val/test) and load shards lazily during model training.
- Store preprocessed data in multiple formats and switch between them without rewriting shard management code.
- Cache frequently accessed shards in memory while keeping the full dataset on disk to manage memory constraints.
- Persist dataset structure and shard references using URIs for reproducible data pipelines across runs.
- Build custom shard loaders for domain-specific data formats by extending the library's extensible architecture.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
iden manages machine learning datasets organized into shards with lazy loading, supporting multiple storage formats (JSON, YAML, Pickle, PyTorch, safetensors) and optional in-memory caching.
Yes. iden is actively maintained, has no known vulnerabilities, installs with minimal friction, and solves a concrete problem in ML workflows—organizing and lazily loading sharded datasets. The permissive BSD-3-Clause license poses no restriction. The API is pre-1.0 and may change, so pin the version if stability is critical, but for new projects or exploratory work it is a solid choice.
Install
iden on PyPI
pip
pip install idenuv
uv add idenpoetry
poetry add idenInstalling iden
Before you install
Low friction: pure Python wheel with only two runtime dependencies (coola and objectory). Actively maintained with a recent release 60 days ago and current commit activity.
License in practice
BSD-3-Clause is permissive; you can use iden in commercial and proprietary projects with minimal restrictions, provided you include the license notice.
Quickstart
pip install iden
from iden.shard import create_json_shard
from iden.dataset import create_vanilla_dataset
shard = create_json_shard(data={"key": "value"}, uri="file:///path/to/data.json")
data = shard.get_data()
Requires Python 3.10 or later.
Verify before relying
- Performance characteristics when managing large numbers of shards or very large individual shard files.
- Memory overhead of the caching mechanism and how it scales with dataset size.
- Compatibility with distributed training frameworks beyond what the fact sheet documents.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — coola, objectory |
| Maintenance | actively maintained — 60 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 583,159/month — #5,897 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: iden-0.4.1-py3-none-any.whl
Keywords: dataset, shard
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
webdatasetWebDataset reads and streams large-scale…
permissive · top 5,000 on PyPI
datasetdataset simplifies reading and writing data to…
permissive · top 5,000 on PyPI
litdataLitData optimizes and streams large datasets…
permissive · top 15,000 on PyPI
mosaicml-streamingStreams large training datasets from cloud…
unclear · top 5,000 on PyPI
aiodataloaderBatches and caches concurrent data requests in…
permissive · top 5,000 on PyPI
datasetsLoads and preprocesses datasets from the…
permissive · top 1,000 on PyPI
ossdataProvides scalable datasets for software…
permissive · top 15,000 on PyPI
coolacoola compares complex nested data structures…
permissive · top 5,000 on PyPI
ogbOGB provides standardized benchmark datasets,…
permissive · top 15,000 on PyPI
pymongo_inmemoryProvides an in-memory MongoDB instance for…
permissive · top 15,000 on PyPI