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 lives in a machine-wide shared store (deduplicated across your projects) and the private .datamanifest/ directory stays 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.17.0.tar.gz (269.3 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.17.0-py3-none-any.whl (154.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for datamanifestpy-0.17.0.tar.gz
Algorithm Hash digest
SHA256 54c8ed21a7bdedd02dba4222e8ac31d84f1eee338f3a2125bf0860c8cb5d4577
MD5 27ac1e2142ddb4d483c67c4bf359e70e
BLAKE2b-256 865d564117295032820e50cd179e7ccf15190815faa48d270c2f56208a107c68

See more details on using hashes here.

Provenance

The following attestation bundles were made for datamanifestpy-0.17.0.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.17.0-py3-none-any.whl.

File metadata

  • Download URL: datamanifestpy-0.17.0-py3-none-any.whl
  • Upload date:
  • Size: 154.3 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.17.0-py3-none-any.whl
Algorithm Hash digest
SHA256 214d15a27179053608bd268c5b82403b68736fc0cf2e60d668e8d9736c4b0afe
MD5 681000375b7cf8845ef47263e620ca24
BLAKE2b-256 ccd60e47de7ea001550a62268979ce0fde93a9dfbe760afbacc7c5e79749b5f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for datamanifestpy-0.17.0-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