Skip to main content

Python port of DataManifest.jl — declare and manage data dependencies for scientific projects

Project description

datamanifest.toml

datamanifest[py]

pypi python CI docs

Keep track of the datasets used in a scientific project. You declare your data dependencies — URLs, git repositories, checksums, formats — in a datamanifest.toml file; datamanifest downloads, verifies, extracts and loads them, and caches your own computed results with the same machinery.

  • A transparent, trackable manifest. Every dataset a project depends on — URLs, DOIs, checksums, formats — is listed in a single datamanifest.toml you can read at a glance and version with git. The format is language-agnostic (today Python and Julia) and can be edited by hand, from code, or through the CLI.
  • Fetch from a wide range of sources. Direct URLs, Zenodo/figshare and PANGAEA DOIs, git repos, object stores (s3://, gs://, …), and bulk imports from pooch, intake or DVC — all checksum-verified, extracted, and adopted in place when already on disk.
  • Cache your own computed data too. The same tooling backs a robust @cached mechanism that stores your own results with PID-lock, keyed by their inputs, to speed up calculations locally. It is a separate, local concern — not a remote source — but shares some of the same benefits such as data management via the CLI.
  • A powerful CLI for data download, local management and synchronization across machines. Add and download datasets, inspect and repair what's on disk, move or centralize where data is stored, and push/pull datasets and cached results between machines over rsync+ssh — all without touching your analysis code. A git-ignored .datamanifest-state.toml records where each object actually landed on this machine, keeping local location tracking separate from the portable, shareable manifest.

Installation

pip install datamanifestpy

With optional loader backends (csv, parquet, nc, yaml, fsspec, or all):

pip install "datamanifestpy[all]"

See the installation page for the per-backend details.

Quickstart

datamanifest init                  # create datamanifest.toml here
datamanifest add https://gml.noaa.gov/webdata/ccgg/trends/co2/co2_annmean_mlo.csv --name co2
datamanifest list                  # what's tracked, and where it lives
datamanifest path co2              # resolve the on-disk path (for a script)

Then load it from your code:

import datamanifest

df = datamanifest.load_dataset("co2")          # download on first use, then load
path = datamanifest.get_dataset_path("co2")    # just the on-disk path

Commit datamanifest.toml — the recipe of what to fetch and how. The data and a local .datamanifest-state.toml stay git-ignored; a collaborator clones and runs datamanifest download. See the quickstart for the full walkthrough.

Documentation

Full documentation lives at https://perrette.github.io/datamanifest/:

From the same author

A few other open-source tools I maintain.

Scientific writing & data

  • texmark — write scientific articles in Markdown and convert them to journal-ready LaTeX/PDF.
  • papers — command-line BibTeX bibliography and PDF library manager.

Speech to Text (dictate) and Text to Speech (read-aloud) tools

  • scribe — speech-to-text dictation.
  • bard — text-to-speech reader.

Acknowledgments

datamanifest is a Python port of awi-esc/DataManifest.jl, written by the same author (Mahé Perrette). The Python port was implemented with assistance from Anthropic's Claude.

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

datamanifestpy-0.13.2.tar.gz (228.8 kB view details)

Uploaded Source

Built Distribution

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

datamanifestpy-0.13.2-py3-none-any.whl (131.4 kB view details)

Uploaded Python 3

File details

Details for the file datamanifestpy-0.13.2.tar.gz.

File metadata

  • Download URL: datamanifestpy-0.13.2.tar.gz
  • Upload date:
  • Size: 228.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for datamanifestpy-0.13.2.tar.gz
Algorithm Hash digest
SHA256 248e8ab90e74e990ce047334a95298e09004724cf123156c8a851aa33fd14d23
MD5 5d46212a499c318e035be708b0b23f76
BLAKE2b-256 f309522784048a8de7c6c983990ba884ef059108f8c3c19bd40c2b8fda923bc2

See more details on using hashes here.

Provenance

The following attestation bundles were made for datamanifestpy-0.13.2.tar.gz:

Publisher: ci.yaml on perrette/datamanifest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file datamanifestpy-0.13.2-py3-none-any.whl.

File metadata

  • Download URL: datamanifestpy-0.13.2-py3-none-any.whl
  • Upload date:
  • Size: 131.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for datamanifestpy-0.13.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ec7cb2551d02558295684081a832a0b315165b187384d27a854083c31ffcbbc4
MD5 10bd708ccd1cd47956bf3424c06f3712
BLAKE2b-256 bb4ab74d2737123f6d1b8db44d93fabb5822f7cabc46674030e12691555590b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for datamanifestpy-0.13.2-py3-none-any.whl:

Publisher: ci.yaml on perrette/datamanifest

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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