homura

Python downloader with progress


Keywords
download, progress
License
BSD-3-Clause
Install
pip install homura==0.1.0

Documentation

Homura

Build Status PyPI Version

Homura (ほむら) is a Python downloader with progress, which can be used to download large files.

It is named after Homura Akemi.

Features

  • PycURL based
  • Resume downloads (if server supports byte ranges on the resource)
  • Support for requests.Session

Installation

Homura depends on PycURL. Install dependencies before installing the python package:

Ubuntu

sudo apt-get install build-essential libcurl4-openssl-dev python-dev

Fedora

Yum:

sudo yum groupinstall "Development Tools"
sudo yum install libcurl libcurl-devel python-devel

DNF:

sudo dnf groupinstall "Development Tools"
sudo dnf install libcurl libcurl-devel python-devel

Install Homura

pip install homura

Usage

The simplest usage is to import the utility function download:

from homura import download
download('http://download.thinkbroadband.com/200MB.zip')
    3%      6.2 MiB     739.5 KiB/s            0:04:28 ETA

To specify path for downloaded file:

download(url='http://download.thinkbroadband.com/200MB.zip',
         path='/path/to/big.zip')

You can specify extra headers as a dictionary:

download(url='http://example.com', headers={'API-Key': '123456'})

You can work with Session objects of the requests library:

import requests
s = requests.Session()
# Do some work with `s` and send requests
download(url='http://example.com', session=s)

Pass options to setopt of the pycurl.Curl object via the pass_through_opts argument:

import pycurl
download(url=url, pass_through_opts={pycurl.FOLLOWLOCATION: True})