Version 0.4.0

Released on: 2019/05/01

New features:

  • Add customizable downloaders. Delegate file download into separate classes that can be passed to Pooch.fetch. Created the HTTPDownloader class (used by default) which can also be used to download files that require authentication/login. (#66)
  • Add post-download processor hooks to Pooch.fetch. Allows users to pass in a function that is executed right before returning and can overwrite the file path that is returned by fetch. Use this, for example, to perform unpacking/decompression operations on larger files that can be time consuming and we only want to do once. (#59)
  • Add the Unzip post-download processor to extract files from a downloaded zip archive. Unpacks files into a directory in the local store and returns a list of all unzipped files. (#72)
  • Make the check_version function public. It’s used internally but will be useful in examples that want to download things from the pooch repository. (#69)


  • Pin sphinx to version 1.8.5. New versions of Sphinx (2.0.*) are messing up the numpydoc style docstrings. (#64)

This release contains contributions from:

  • Santiago Soler
  • Leonardo Uieda

Version 0.3.1

Released on: 2019/03/28

Minor patches:

  • Add a project logo (#57)
  • Replace http with https in the README.rst to avoid mixed content warnings in some browsers (#56)

Version 0.3.0

Released on: 2019/03/27

New features:

  • Use the appdirs library to get the cache directory. Could change the default data location on all platforms. Locations are compatible with the XDG Base Directory Specification (#45)
  • Add method Pooch.is_available to check remote file availability (#50)
  • Add Pooch.registry_files property to get a name of all files in the registry (#42)
  • Make Pooch.get_url a public method to get the download URL for a given file (#55)


  • Drop support for Python 3.5. Pooch now requires Python >= 3.6. (#52)
  • Add a private method to check if a file is in the registry (#49)
  • Fix typo in the Pooch.load_registry docstring (#41)

This release contains contributions from:

  • Santiago Soler
  • Rémi Rampin
  • Leonardo Uieda

Version 0.2.1

Released on: 2018/11/15

Bug fixes:

  • Fix unwanted ~ directory creation when not using a version in pooch.create (#37)

Version 0.2.0

Released on: 2018/10/31

Bug fixes:

  • Avoid copying of files across the file system (#33)
  • Correctly delete temporary downloads on error (#32)

New features:

  • Allow custom download URLs for individual files (#30)
  • Allow dataset versioning to be optional (#29)


  • Move URLs building to a dedicated method for easy subclassing (#31)
  • Add testing and support for Python 3.7 (#25)

Version 0.1.1

Released on: 2018/08/30

Bug fixes:

  • Check if the local data folder is writable and warn the user instead of crashing (#23)

Version 0.1

Released on: 2018/08/20

  • Fist release of Pooch. Manages downloading sample data files over HTTP from a server and storing them in a local directory. Main features:
    • Download a file only if it’s not in the local storage.
    • Check the SHA256 hash to make sure the file is not corrupted or needs updating.
    • If the hash is different from the registry, Pooch will download a new version of the file.
    • If the hash still doesn’t match, Pooch will raise an exception warning of possible data corruption.