Dataset versioning and management for ML projects.
Project description
datamole
Simple data versioning for ML projects. Track, version, and share your datasets with minimal overhead.
Features
- 🚀 Simple CLI interface (
dtmcommand) - 📦 Version datasets with automatic hashing
- 🏷️ Tag versions for easy reference
- 🔍 Smart lookup: pull by hash, prefix, or tag
- 💾 Multiple storage backends (local, GCS, S3, Azure)
- 🔒 Transaction-safe uploads
- 🤝 Collaboration-friendly with shared storage
Installation
pip install datamole
After installation, the dtm command will be available globally.
Quick Start
# Configure storage backend (one-time setup)
dtm config --backend local --remote-uri /path/to/shared/storage
# Initialize in your project
cd my-ml-project
dtm init
# Add your data and create a version
dtm add-version -m "Initial dataset" -t v1.0
# List versions
dtm list-versions
# Pull a specific version (by tag, hash, or prefix)
dtm pull v1.0
dtm pull abc123 # by hash prefix
dtm pull latest # pull current version
CLI Commands
Setup & Configuration
# Configure storage backend
dtm config --backend local --remote-uri /path/to/storage
# Initialize project
dtm init [--data-dir data] [--backend local] [--no-pull]
Version Management
# Create a new version
dtm add-version [-m "message"] [-t tag-name]
# Pull a version
dtm pull [version] [-f]
# List all versions
dtm list-versions
# Show current version
dtm current-version
Python API
from datamole.core import DataMole
# Initialize
dtm = DataMole()
dtm.init(data_dir="data", backend="local")
# Create versions
dtm.add_version(message="Initial dataset", tag="v1.0")
# Pull versions
dtm.pull("v1.0")
dtm.pull("abc123") # by hash prefix
dtm.pull() # pull current version
Storage Backends
- local: Local filesystem storage
- gcs: Google Cloud Storage (coming soon)
- s3: AWS S3 (coming soon)
- azure: Azure Blob Storage (coming soon)
Development
# Clone repository
git clone https://github.com/yourusername/datamole.git
cd datamole
# Install in development mode
uv pip install -e ".[dev]"
# Run tests
pytest
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
datamole-0.1.0.tar.gz
(25.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
datamole-0.1.0-py3-none-any.whl
(14.5 kB
view details)
File details
Details for the file datamole-0.1.0.tar.gz.
File metadata
- Download URL: datamole-0.1.0.tar.gz
- Upload date:
- Size: 25.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b50381063c0cb46f8d5ded47939fd846b3bd8e1694aff997d384cf8a440538ce
|
|
| MD5 |
84e78d92e26e82d80efd6dedc6150a00
|
|
| BLAKE2b-256 |
c888b6fcb064b0c9ccdbcdfcac5471d0b62717a43cb5ab55913115be58132c6c
|
File details
Details for the file datamole-0.1.0-py3-none-any.whl.
File metadata
- Download URL: datamole-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f21fdfc8b6e39aa577c5f923400e612ce0e8d8deb1a82167404b6c20130ccf33
|
|
| MD5 |
1e4c66c3a1c08b237e4b9214752a4fc9
|
|
| BLAKE2b-256 |
b457d917c241bd57ee77769d09a0c6db8c2c6f0ccaa0a1ce59fc5d9661417674
|