NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1028 most downloaded on PyPI
A friend to fetch your data files
Last release 8 months ago
30 Jan 2026
Release timing varies
gaps range from 2 months to 1.7 years
Nearly every release is documented
notes for 29 of 29 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
35 releases · first in 2018
DOI: https://doi.org/10.5281/zenodo.18379610
Released on: 2026/01/30
DOI: https://doi.org/10.5281/zenodo.18379610
Breaking changes:
Bug fixes:
filter to TarFile.extractall on Python >=3.12 (#458). Pass a filter="data" argument to TarFile.extractall to prevent dangerous security issues. The filter argument was added in Python 3.12, so only pass it on versions greater or equal than that. This change matches the default behaviour that will take place since Python 3.14.tqdm.auto instead so that the downloader looks right in either a notebook or the terminal.userforsecurity=False on hashlib hashing algorithms to make FIPS enabled systems happy.New features:
REQUESTS_HEADERS variable that is used by the doi_to_url function (which requires to make a request to doi.org to figure out the service provider). Add a new headers argument to the DOIDownloader to specifically pass requests headers. By default it'll use the Pooch's default user agent.requests response to provide more informative errors when the status code is between 400 and 600.Maintenance:
pooch/tests is installed but he data in pooch/tests/data are not. This makes it impossible to run tests on the installed package. Add the appropriate setuptools configuration to make it happen.test job into a new job that depends on the test job. Upload the coverage reports as artifacts after testing, and reuse the artifacts in the new job. Upload all coverage reports in a single push to Codecov to minimize the number of hits.pylint to increase the maximum number of positional arguments allowed in any function or method.pkg_resources for importlib.resources (#449).pooch/core.py and create a new typing submodule for custom type classes, and add it to the API Reference. Run mypy on CI to perform type checks, and create new targets in the Makefile. Extend the list of dependencies required to run the type checks.figshare mark to tests (#481). Add a pytest figshare mark to tests that make requests to Figshare. Such mark allows us to filter tests: use pytest -v -m figshare to only run tests with that mark, or use pytest -v -m "not figshare to run all test but the marked ones.figshare on Actions that use MacOS as runner. Those tests in CI were constantly failing, probably due to too many requests coming from GitHub. Add an optional PYTEST_ARGS_EXTRA variable to Makefile that can be used to pass extra arguments to pytest. Skip doctests that download files from Figshare.env/requirements-types.txt file with the list of required packages to run types checks. This file is used by the GitHub Action workflow that automatically runs the type checks. List new requirements for type checks in environment.yml. Stop ignoring missing imports of xxhash in pyproject.toml. Ignore type assignment for xxhash in test file.codecov-upload job before uploading the coverage reports to codecov.environment.yml and to run style checks on CI to 25.*.* and <26.0.0, respectively. Since we plan to replace black with Ruff for autoformatting, it's better to pin for now than reformat it with latest version.pyproject.toml (#476). Use a SPDX expression for the license in pyproject.toml and remove the unneeded license classifier. This removes the warnings we were getting after running make build.Typing :: Typed trove classifier (#472). Allow PyPI users know that Pooch supports type hints.workflow_dispatch as an event trigger for the test.yml workflow.DOIDownloaders (#514). Respect user's decisions when defining the DOIDownloader with respect to arguments passed to requests.get whenever we call that function. This way, all calls made by DOIDownloaders and the repository classes make use of the same arguments, including timeout, headers, etc.Documentation:
scXpand (#488), xclim (#445), CLISOPS (#445), and SPLASH (#432) to list of projects using Pooch.Contributors:
One column per quarter.
DOI: https://doi.org/10.5281/zenodo.11493461
Released on: 2024/06/06
DOI: https://doi.org/10.5281/zenodo.11493461
Bug fixes:
Documentation:
Maintenance:
This release contains contributions from:
Remove many deprecated pylint options
Released on: 2024/02/19
DOI: https://doi.org/10.5281/zenodo.10680982
Bug fixes:
Untar/Unzip if the first call only asked for a few members (#365)Documentation:
Maintenance:
This release contains contributions from:
Fix bug: add support for old and new Zenodo APIs
Released on: 2023/10/24
Bug fixes:
New features:
Maintenance:
Documentation:
This release contains contributions from:
Port from deprecated appdirs to platformdirs
Released on: 2023/02/27
Bug fixes:
New features:
Pooch.is_available to use downloaders (#322)Pooch.load_registry_from_doi method that populates the Pooch registry using DOI-based data repositories (#325)base_url on pooch.create (#344)Maintenance:
appdirs to platformdirs (#339)Documentation:
known_hash in retrieve function (#333)Projects that started using Pooch:
This release contains contributions from:
This is the last release with support for Python 3.6. The next major/minor release of Pooch will require Python >= 3.7.
Released on: 2022/01/24
Important:
Enhancements:
Pooch.fetch and retrieve (#277)Documentation:
Maintenance:
build instead of setup.py (#287)AUTHORS.md (#279)This release contains contributions from:
Fix bug when unpacking an entire subfolder from an archive. Now both unpacking processors ( Untar and Unzip ) handle members that are folders (not fil
Released on: 2021/10/11
Bug fixes:
Untar and Unzip) handle members that are folders (not files) correctly. (#266)Enhancements:
Documentation:
Maintenance:
This release contains contributions from:
WARNING : Please use from pooch import file_hash instead of from pooch.utils import file_hash . This is backwards compatible with all previous version
Released on: 2021/08/24
WARNING: Please use from pooch import file_hash instead of from pooch.utils import file_hash. This is backwards compatible with all previous versions of Pooch. We recommend importing all functions and classes from the top-level namespace.
Bug fixes:
file_hash accessible from the pooch.utils module again. Moving this function to pooch.hashes caused crashes downstream. To prevent these crashes, add a wrapper back to utils that issues a warning that users should import from the top-level namespace instead. (#257)This release contains contributions from:
Add support for non-cryptographic hashes from the xxhash package. They aren't as safe (but safe enough) and compute in fractions of the time from SHA
Released on: 2021/08/23
New features:
doi:{DOI}/{file name}, which works out-of-the-box with Pooch.fetch and retrieve). Can only download 1 file from the archive (not the full archive) and the file name must be specified in the URL. (#241)Maintenance:
This release contains contributions from:
Fix bug in Untar and Unzip when the archive contains subfolders
Released on: 2021/06/08
Bug fixes:
Untar and Unzip when the archive contains subfolders (#224)Documentation:
Enhancements:
Untar and Unzip (#224)Maintenance:
This release contains contributions from:
![Digital Object Identifier for the Zenodo archive]
Released on: 2020/11/27
Bug fixes:
New features:
retry_if_failed option to pooch.create and pooch.Pooch allows retrying the download the specified number of times in case of failures due to hash mismatches (coming from Pooch) or network issues (coming from requests). This is useful for running downloads on CI that tend to fail sporadically. Waits a period of time between consecutive downloads starting with 1s and increasing up to 10s in 1s increments. (#215)name argument to pooch.Decompress to allow user defined file names. Defaults to the previous naming convention for backward compatibility. (#203)Documentation:
Maintenance:
This release contains contributions from:
![Digital Object Identifier for the Zenodo archive]
Released on: 2020/09/10
Bug fixes:
Pooch.is_available test was broken since we were checking for the full path in ftp.nlst instead of just the file name. (#191)New features:
pooch.__version__ (#179)# (#180)Enhancements:
Documentation:
Maintenance:
This release contains contributions from:
Delay data cache folder creation until the first download is attempted. As seen in recent issues in scikit-image, creating the data folder in pooch.cr
Bug fixes:
pooch.create can cause problems since this function is called at import time. This means that importing the package in parallel can cause race conditions and crashes. To prevent that from happening, delay the creation of the cache folder until Pooch.fetch or retrieve are called. (#173)Documentation:
This release contains contributions from:
![Digital Object Identifier for the Zenodo archive]
New features:
pooch.retrieve to fetch single files This is much more convenient than setting up a Pooch while retaining the hash checks and use of downloaders and processors. It automatically selects a unique file name and saves files to a cache folder. (#152)alg:hash and allow pooch.Pooch to recognize the algorithm when comparing hashes. Setting an algorithsm is optional and omiting it defaults to SHA256. This is particularly useful when data are coming from external sources and published hashes are already available. (#133)Documentation:
pooch.os_cache. The docstring mentioned the data path as examples instead of the cache path. (#140)pooch.retrieve function to automate the process. The example covers two cases: when all remote files share the same base URL and when every file has its own URL. (#161)Maintenance:
pooch.retrieve function (#159 #157 #156 #151 #149)This release contains contributions from:
If there is great need to make backwards incompatible changes, we will release a 2.* line. In that case, bug fixes will still be ported to the 1.* lin…
DOI: https://doi.org/10.5281/zenodo.3629329
This release marks the stabilization of the Pooch API. Further changes to the 1.* line will be fully backwards compatible (meaning that updating Pooch should not break existing code). If there is great need to make backwards incompatible changes, we will release a 2.* line. In that case, bug fixes will still be ported to the 1.* line for a period of time.
Improvements:
Backwards incompatible changes:
logging module to instead of warnings to inform users of download, update, and decompression/unpacking actions. This allows messages to be logged with different priorities and the user filter out log messages or silence Pooch entirely. Introduces the function pooch.get_logger to access the logging object used by Pooch. Users who relied on Pooch issuing warnings will need to update to capturing logs instead. All other parts of the API remain unchanged. (#115)This release contains contributions from:
🚨 Announcement: 🚨 We now have a JOSS paper about Pooch! Please cite it when you use Pooch for your research. (#116 with reviews in #132 and #134)
🚨 Announcement: 🚨 We now have a JOSS paper about Pooch! Please cite it when you use Pooch for your research. (#116 with reviews in #132 and #134)
This is minor release which only updates the citation information to the new JOSS paper. No DOI was issued for this release since there are no code or documentation changes.
DOI: https://doi.org/10.5281/zenodo.3611376
DOI: https://doi.org/10.5281/zenodo.3611376
Improvements:
Maintenance:
setup.py to "stable" instead of "alpha". (#127)This release was reviewed at the Journal of Open Source Software. The code and software paper contain contributions from:
DOI: https://doi.org/10.5281/zenodo.3547640
DOI: https://doi.org/10.5281/zenodo.3547640
New features:
Maintenance:
Documentation:
__file__ and allows the package to work from zip files. (#120)This release contains contributions from:
🚨 Pooch v0.6.0 is the last release to support Python 2.7 🚨
🚨 Pooch v0.6.0 is the last release to support Python 2.7 🚨
DOI: https://doi.org/10.5281/zenodo.3515031
New features:
Maintenance:
Documentation:
This release contains contributions from:
Released on: 2019/10/22
DOI: https://doi.org/10.5281/zenodo.3515031
🚨 Pooch v0.6.0 is the last release to support Python 2.7 🚨
New features:
Add optional download progress bar to pooch.HTTPDownloader ( #97 )
Maintenance:
Warn that 0.6.0 is the last version to support Python 2.7 ( #108 )
Documentation:
Update contact information to point to our Slack channel ( #107 )
Add icepack to list of projects using Pooch ( #98 )
This release contains contributions from:
Daniel Shapero
Leonardo Uieda
Add back support for Python 3.5 with continuous integration tests. No code changes were needed, only removing the restriction from setup.py.
Maintenance:
setup.py. (#93)This release contains contributions from:
Released on: 2019/06/24
Maintenance:
Add back support for Python 3.5 with continuous integration tests. No code changes were needed, only removing the restriction from setup.py . ( #93 )
This release contains contributions from:
Leonardo Uieda
Fix formatting error in pooch.Decompress docstring.
Documentation fixes:
This release contains contributions from:
Released on: 2019/05/21
Documentation fixes:
Fix formatting error in pooch.Decompress docstring. ( #81 )
Fix wrong imports in the usage guide for post-processing hooks. ( #84 )
Add section to the usage guide explaining when to use pooch.Decompress . ( #85 )
This release contains contributions from:
Santiago Soler
Leonardo Uieda
New processor pooch.Decompress saves a decompressed version of the downloaded file. Supports gzip, lzma/xz, and bzip2 compression. Note: Under Python
New features:
This release contains contributions from:
Released on: 2019/05/20
New features:
New processor pooch.Decompress saves a decompressed version of the downloaded file. Supports gzip, lzma/xz, and bzip2 compression. Note: Under Python 2.7, lzma and bzip2 require the backports.lzma and bz2file packages as well. These are soft dependencies and not required to use Pooch. See install. (#78)
New processor pooch.Untar unpacks files contained in a downloaded tar archive (with or without compression). (#77)
This release contains contributions from:
Matthew Turk
Leonardo Uieda
Add customizable downloaders. Delegate file download into separate classes that can be passed to Pooch.fetch. Created the HTTPDownloader class (used b
New features:
Maintenance:
2.0.*) are messing up the numpydoc style docstrings. (#64)This release contains contributions from:
Replace http with https in the README.rst to avoid mixed content warnings in some browsers
Minor patches:
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 )
Use the appdirs library to get the cache directory. Could change the default data location on all platforms. Locations are compatible with the XDG Bas
New features:
Maintenance:
This release contains contributions from:
Fix unwanted ~ directory creation when not using a version in pooch.create
Bug fixes:
~ directory creation when not using a version in pooch.create (#37)Released on: 2018/11/15
Bug fixes:
Fix unwanted ~ directory creation when not using a version in pooch.create ( #37 )
Avoid copying of files across the file system
Bug fixes:
New features:
Maintenance:
Check if the local data folder is writable and warn the user instead of crashing
Bug fixes:
Released on: 2018/08/30
Bug fixes:
Check if the local data folder is writable and warn the user instead of crashing ( #23 )
Pooch will manage downloading your sample data files over HTTP from a server and storing them in a local directory:
First release of Pooch :tada:
Pooch will manage downloading your sample data files over HTTP from a server and storing them in a local directory:
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.
Contents
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →