Skip to main content

A convenient function to download to a file using requests.

Basic usage:

url = "https://github.com/takluyver/requests_download/archive/master.zip"
download(url, "requests_download.zip")

An optional headers= parameter is passed through to requests.

Trackers are a lightweight way to monitor the data being downloaded. Two trackers are included:

  • ProgressTracker - displays a progress bar, using the progressbar2 package.

  • HashTracker - wraps a hashlib object to calculate a hash (e.g. sha256 or md5) of the file as you download it.

Here’s an example of using both of them:

import hashlib
# progressbar is provided by progressbar2 on PYPI.
from progressbar import DataTransferBar
from requests_download import download, HashTracker, ProgressTracker

hasher = HashTracker(hashlib.sha256())
progress = ProgressTracker(DataTransferBar())

download('https://github.com/takluyver/requests_download/archive/master.zip',
         'requests_download.zip', trackers=(hasher, progress))

assert hasher.hashobj.hexdigest() == '...'

To make your own tracker, subclass TrackerBase and define any of these methods:

from requests_download import TrackerBase

class MyTracker(TrackerBase):
    def on_start(self, response):
        """Called with requests.Response object, which has response headers"""
        pass

    def on_chunk(self, chunk):
        """Called multiple times, with bytestrings of data received"""
        pass

    def on_finish(self):
        """Called when the download has completed"""
        pass

Release files for requests_download 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for requests_download 0.1.2
File Size Uploaded
requests_download-0.1.2.tar.gz 2.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for requests_download 0.1.2
File Interpreter ABI Platform
requests_download-0.1.2-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 8.4 kB

Release files / requests_download-0.1.2.tar.gz

Download URL requests_download-0.1.2.tar.gz
Size 2.9 kB
Tags Source
SHA-256 checksum
How to use checksums
92d895a6ca51ea51aa42bab864bddaee31b5601c7e7e1ade4c27b0eb6695d846
BLAKE2b-256 checksum
How to use checksums
349d431a25538f158a3065a76a6311f40b7908f88a4d24efdbb0ca24f83bd614
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / requests_download-0.1.2-py2.py3-none-any.whl

Download URL requests_download-0.1.2-py2.py3-none-any.whl
Size 5.5 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
994d9d332befae6616f562769bab163f08d6404dc7e28fb7bfed4a0a43a754ad
BLAKE2b-256 checksum
How to use checksums
ada648f0af75cc62dc0b57013820d76c453962dc9ba1fffcfe4381b810b691bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page