Skip to main content

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 (dtm command)
  • 📦 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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

datamole-0.1.0-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

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

Hashes for datamole-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b50381063c0cb46f8d5ded47939fd846b3bd8e1694aff997d384cf8a440538ce
MD5 84e78d92e26e82d80efd6dedc6150a00
BLAKE2b-256 c888b6fcb064b0c9ccdbcdfcac5471d0b62717a43cb5ab55913115be58132c6c

See more details on using hashes here.

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

Hashes for datamole-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f21fdfc8b6e39aa577c5f923400e612ce0e8d8deb1a82167404b6c20130ccf33
MD5 1e4c66c3a1c08b237e4b9214752a4fc9
BLAKE2b-256 b457d917c241bd57ee77769d09a0c6db8c2c6f0ccaa0a1ce59fc5d9661417674

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page