Why use Pooch?

Use cases

Who: Scientists/researchers/developers looking to simply download a file.

Pooch makes it easy to download a file (one function call). On top of that, it also comes with some bonus features:

  • Download and cache your data files locally (so it’s only downloaded once).

  • Make sure everyone running the code has the same version of the data files by verifying cryptographic hashes.

  • Multiple download protocols HTTP/FTP/SFTP and basic authentication.

  • Download from Digital Object Identifiers (DOIs) issued by repositories like figshare and Zenodo.

  • Built-in utilities to unzip/decompress files upon download

Start here: Retrieving a single data file

Who: Package developers wanting to include sample data for use in tutorials and tests.

Pooch was designed for this! It offers:

  • Pure Python and minimal dependencies.

  • Download a file only if necessary.

  • Verification of download integrity through cryptographic hashes.

  • Extensible design: plug in custom download and post-processing functions.

  • Built-in utilities to unzip/decompress files upon download

  • Multiple download protocols HTTP/FTP/SFTP and basic authentication.

  • User control of data cache location through environment variables.

Start here: Manage a package’s sample data

History

Pooch was born out of shared need between the Fatiando a Terra libraries and MetPy. During the Scipy Conference 2018 sprints, developers from both projects got together and, realizing the shared necessity, devised a package that would combine the best of the existing functionality already present in each project and extend it’s capabilities.