Modernized fork of the Smart Download Manager for Python by iTaybb with CI testing matrix and other 2024 bells and whistles.
Project description
pysmartdl2
This software is a fork of the pySmartDL
or Python Smart Download Manager by iTaybb which appears to not be maintained anymore. I (1) went through its codebase to check if things work as expected in modern (Python 3.8-12+) versions of Python, (2) did some modernizing fixes here and there, (3) implemented test suites, and (4) restructured it to modern standards with pyproject.toml
.
Test suites go over all popular Python versions on all four platforms: Linux (Ubuntu), MacOS (Intel CPU), MacOS (M1 CPU), and Windows. Live status is shown below.
Per the original README, pysmartdl
strives to be a full-fledged smart download manager for Python. Main features:
- Built-in download acceleration (with the multipart downloading technique).
- Mirrors support.
- Pause/Unpause feature.
- Speed limiting feature.
- Hash checking.
- Non-blocking, shows the progress bar, download speed and ETA.
- Full support for custom headers and methods.
Installation
You can install pysmartdl2
from PyPI through pip
, with a simple:
pip install pysmartdl2
Or you can install from the source in editable mode, by cloning this repository and:
pip install -e .
Usage
Downloading with it is as simple as creating an instance and starting it:
from pysmartdl2 import SmartDL
url = "https://raw.githubusercontent.com/amkrajewski/pysmartdl2/master/test/7za920.zip"
dest = "." # <-- To download to current directory
# or '~/Downloads/' for Downloads directory on Linux
# or "C:\\Downloads\\" for Downloads directory on Windows
obj = SmartDL(url, dest)
obj.start()
# [*] 0.23 Mb / 0.37 Mb @ 88.00Kb/s [##########--------] [60%, 2s left]
path = obj.get_dest()
Copyright (C) 2023-2024 Adam M. Krajewski
Copyright (C) 2014-2020 Itay Brandes.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pysmartdl2-2.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78017070803db0f3e90e01f9fae207698061887a3b2dece481d5d1000ce474b4 |
|
MD5 | f3bbd907709783d6a48662efebd5fa9f |
|
BLAKE2b-256 | 06a0f963ff71cae44af5ebcf9cfe594c33b4686613856ec801ee195668858cab |