One downloader for many scientific data and code repositories!
Project description
Datahugger - Where DOI :open_hands: Data
Datahugger is a tool to download scientific datasets, software, and code from a large number of repositories based on their DOI (wiki) or URL. With Datahugger, you can automate the downloading of data and improve the reproducibility of your research. Datahugger provides a straightforward Python interface as well as an intuitive Command Line Interface (CLI).
Supported repositories
Datahugger offers support for more than 371 generic and specific (scientific) repositories (and more to come!).
We are still expanding Datahugger with support for more repositories. You can help by requesting support for a repository in the issue tracker. Pull Requests are very welcome as well.
Installation
Datahugger requires Python 3.6 or later.
pip install datahugger
Getting started
Datahugger with Python
Load a dataset (or any digital asset) from a repository with the
datahugger.get()
function. The first argument is the DOI or URL
and the second argument the name of the folder to store the dataset (will be
created if it does not exist).
The following code loads dataset 10.5061/dryad.mj8m0 into
the folder data
.
import datahugger
# download the dataset to the folder "data"
datahugger.get("10.5061/dryad.mj8m0", "data")
For an example how this can integrate with your work, see the
example workflow notebook or
Datahugger with command line
The command line function datahugger
provides an easy interface to download data. The first
argument is the DOI or URL and the second argument the name of the folder to store the dataset (will be
created if it does not exist).
datahugger 10.5061/dryad.mj8m0 data
% datahugger 10.5061/dryad.mj8m0 data
Collecting...
NestTemperatureData.csv : 100%|████████████████████████████████████████| 607k/607k
README_for_NestTemperatureData.txt : 100%|██████████████████████████████████████| 2.82k/2.82k
ExternalTemps.csv : 100%|██████████████████████████████████████| 1.06k/1.06k
README_for_ExternalTemps.txt : 100%|██████████████████████████████████████| 2.82k/2.82k
InternalEggTempData.csv : 100%|██████████████████████████████████████████| 664/664
README_for_InternalEggTempData.txt : 100%|██████████████████████████████████████| 2.82k/2.82k
SoilSimulation_Output.csv : 100%|████████████████████████████████████████| 229M/229M
README_for_SoilSimulation_[...].txt: 100%|██████████████████████████████████████| 2.82k/2.82k
Dataset successfully downloaded.
Tip: On some systems, you have to quote the DOI or URL. For example: datahugger "10.5061/dryad.mj8m0" data
.
Tips and tricks
- No need to struggle with DOIs versus DOI URLs. They both work (and more). Example: The values
10.5061/dryad.x3ffbg7m8
,doi:10.5061/dryad.x3ffbg7m8
,https://doi.org/10.5061/dryad.x3ffbg7m8
, andhttps://datadryad.org/stash/dataset/doi:10.5061/dryad.x3ffbg7m8
all point to the same dataset. - Do not republish the dataset when you are uploading your data to an scientific data repository. These storages resources can be used better :)
License
Contact
Feel free to reach out with questions, remarks, and suggestions. The issue tracker is a good starting point. You can also email me at jonathandebruinos@gmail.com.
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
Built Distribution
Hashes for datahugger-0.6a3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b894893e0cd6e4520bf3a171698693e6146fc97066f41187728b083eb4acbb91 |
|
MD5 | 8a5833c7a5584ca2e486c0b28684badb |
|
BLAKE2b-256 | 72da120691f33c728132d060d417cf90f793ece94a5ff0fa13265c1dbd9c4d63 |