pysmartdl2


Namepysmartdl2 JSON
Version 2.0.1 PyPI version JSON
download
home_page
SummaryModernized fork of the Smart Download Manager for Python by iTaybb with CI testing matrix and other 2024 bells and whistles.
upload_time2024-02-16 14:27:18
maintainer
docs_urlNone
author
requires_python>=3.8
license
keywords download downloader parallel download concurrent download
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pysmartdl2

[![GitHub top language](https://img.shields.io/github/languages/top/amkrajewski/pysmartdl2)](https://github.com/amkrajewski/pysmartdl2)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pysmartdl2)](https://pypi.org/project/pysmartdl2)
![GitHub License](https://img.shields.io/github/license/amkrajewski/pysmartdl2)
[![PyPI - Version](https://img.shields.io/pypi/v/pysmartdl2?label=PyPI&color=green)](https://pypi.org/project/pysmartdl2)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/pysmartdl2)](https://pypi.org/project/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) fixed broken test suites, (4) implemented automated testing workflows, and (4) restructured the package to modern standards (e.g., `pyproject.toml`). I plan some feature additions, but original API _will_ be retained, so that you can treat it as a **drop-in replacement**. Enjoy!

Test suites go over all popular Python versions (Python 3.8 - 3.13) on all four platforms enabled by GitHub Action Runners: Linux (Ubuntu), MacOS (Intel CPU), MacOS (M1 CPU), and Windows. Live status is shown below.

[![Multi-OS Multi-Python Build](https://github.com/amkrajewski/pysmartdl2/actions/workflows/test_Linux.yaml/badge.svg)](https://github.com/amkrajewski/pysmartdl2/actions/workflows/test_Linux.yaml)

[![Multi-OS Multi-Python Build2](https://github.com/amkrajewski/pysmartdl2/actions/workflows/test_MacM1.yaml/badge.svg)](https://github.com/amkrajewski/pysmartdl2/actions/workflows/test_MacM1.yaml)

[![Multi-OS Multi-Python Build3](https://github.com/amkrajewski/pysmartdl2/actions/workflows/test_MacIntel.yaml/badge.svg)](https://github.com/amkrajewski/pysmartdl2/actions/workflows/test_MacIntel.yaml)

[![Multi-OS Multi-Python Build4](https://github.com/amkrajewski/pysmartdl2/actions/workflows/test_Windows.yaml/badge.svg)](https://github.com/amkrajewski/pysmartdl2/actions/workflows/test_Windows.yaml)

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](http://stackoverflow.com/questions/93642/how-do-download-accelerators-work)).
* 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:

```cmd
pip install pysmartdl2
```

Or you can install from the source in _editable_ mode, by cloning this repository and:

```cmd
pip install -e .
```
 
## Usage

Downloading with it is as simple as creating an instance and starting it:

```python
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.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "pysmartdl2",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "download,downloader,parallel download,concurrent download",
    "author": "",
    "author_email": "Adam Krajewski <ak@psu.edu>, Itay Brandes <brandes.itay+pysmartdl@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/fb/11/a513f367b723ae806161c89aa589ee2eb02c1fdc3df74caa09e4726b7b06/pysmartdl2-2.0.1.tar.gz",
    "platform": null,
    "description": "# pysmartdl2\n\n[![GitHub top language](https://img.shields.io/github/languages/top/amkrajewski/pysmartdl2)](https://github.com/amkrajewski/pysmartdl2)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pysmartdl2)](https://pypi.org/project/pysmartdl2)\n![GitHub License](https://img.shields.io/github/license/amkrajewski/pysmartdl2)\n[![PyPI - Version](https://img.shields.io/pypi/v/pysmartdl2?label=PyPI&color=green)](https://pypi.org/project/pysmartdl2)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/pysmartdl2)](https://pypi.org/project/pysmartdl2)\n\nThis 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) fixed broken test suites, (4) implemented automated testing workflows, and (4) restructured the package to modern standards (e.g., `pyproject.toml`). I plan some feature additions, but original API _will_ be retained, so that you can treat it as a **drop-in replacement**. Enjoy!\n\nTest suites go over all popular Python versions (Python 3.8 - 3.13) on all four platforms enabled by GitHub Action Runners: Linux (Ubuntu), MacOS (Intel CPU), MacOS (M1 CPU), and Windows. Live status is shown below.\n\n[![Multi-OS Multi-Python Build](https://github.com/amkrajewski/pysmartdl2/actions/workflows/test_Linux.yaml/badge.svg)](https://github.com/amkrajewski/pysmartdl2/actions/workflows/test_Linux.yaml)\n\n[![Multi-OS Multi-Python Build2](https://github.com/amkrajewski/pysmartdl2/actions/workflows/test_MacM1.yaml/badge.svg)](https://github.com/amkrajewski/pysmartdl2/actions/workflows/test_MacM1.yaml)\n\n[![Multi-OS Multi-Python Build3](https://github.com/amkrajewski/pysmartdl2/actions/workflows/test_MacIntel.yaml/badge.svg)](https://github.com/amkrajewski/pysmartdl2/actions/workflows/test_MacIntel.yaml)\n\n[![Multi-OS Multi-Python Build4](https://github.com/amkrajewski/pysmartdl2/actions/workflows/test_Windows.yaml/badge.svg)](https://github.com/amkrajewski/pysmartdl2/actions/workflows/test_Windows.yaml)\n\nPer the original README, `pysmartdl` strives to be a full-fledged smart download manager for Python. Main features:\n\n* Built-in download acceleration (with the [multipart downloading technique](http://stackoverflow.com/questions/93642/how-do-download-accelerators-work)).\n* Mirrors support.\n* Pause/Unpause feature.\n* Speed limiting feature.\n* Hash checking.\n* Non-blocking, shows the progress bar, download speed and ETA.\n* Full support for custom headers and methods.\n\n \n## Installation\n\nYou can install `pysmartdl2` from PyPI through `pip`, with a simple:\n\n```cmd\npip install pysmartdl2\n```\n\nOr you can install from the source in _editable_ mode, by cloning this repository and:\n\n```cmd\npip install -e .\n```\n \n## Usage\n\nDownloading with it is as simple as creating an instance and starting it:\n\n```python\nfrom pysmartdl2 import SmartDL\n\nurl = \"https://raw.githubusercontent.com/amkrajewski/pysmartdl2/master/test/7za920.zip\"\ndest = \".\"  # <-- To download to current directory \n            # or '~/Downloads/' for Downloads directory on Linux\n            # or \"C:\\\\Downloads\\\\\" for Downloads directory on Windows\n\nobj = SmartDL(url, dest)\nobj.start()\n# [*] 0.23 Mb / 0.37 Mb @ 88.00Kb/s [##########--------] [60%, 2s left]\n\npath = obj.get_dest()\n```\n\nCopyright (C) 2023-2024 Adam M. Krajewski\n\nCopyright (C) 2014-2020 Itay Brandes.\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Modernized fork of the Smart Download Manager for Python by iTaybb with CI testing matrix and other 2024 bells and whistles.",
    "version": "2.0.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/amkrajewski/pysmartdl2/issues",
        "ForkedFrom": "https://github.com/iTaybb/pySmartDL",
        "homepage": "https://github.com/amkrajewski/pysmartdl2",
        "repository": "https://github.com/amkrajewski/pysmartdl2"
    },
    "split_keywords": [
        "download",
        "downloader",
        "parallel download",
        "concurrent download"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "730a09bcc3579f4709241cd15f92010a9b82ae3fbc0d3e17896bb3dd489cf3f4",
                "md5": "ad332afcc131a68ad106c1cc7b6696fc",
                "sha256": "0e8be65e799006972000a7281b7b97798f79e0601d9bbfa733015344ff0f40d9"
            },
            "downloads": -1,
            "filename": "pysmartdl2-2.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ad332afcc131a68ad106c1cc7b6696fc",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 18050,
            "upload_time": "2024-02-16T14:27:16",
            "upload_time_iso_8601": "2024-02-16T14:27:16.451464Z",
            "url": "https://files.pythonhosted.org/packages/73/0a/09bcc3579f4709241cd15f92010a9b82ae3fbc0d3e17896bb3dd489cf3f4/pysmartdl2-2.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fb11a513f367b723ae806161c89aa589ee2eb02c1fdc3df74caa09e4726b7b06",
                "md5": "ede9d38d5a5af9efd295227302e3059e",
                "sha256": "70238764afdf3775eb62284cbf53e7fd5afc2a1a78caf765273fb71e36fe4527"
            },
            "downloads": -1,
            "filename": "pysmartdl2-2.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "ede9d38d5a5af9efd295227302e3059e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 19250,
            "upload_time": "2024-02-16T14:27:18",
            "upload_time_iso_8601": "2024-02-16T14:27:18.131144Z",
            "url": "https://files.pythonhosted.org/packages/fb/11/a513f367b723ae806161c89aa589ee2eb02c1fdc3df74caa09e4726b7b06/pysmartdl2-2.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-16 14:27:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "amkrajewski",
    "github_project": "pysmartdl2",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pysmartdl2"
}
        
Elapsed time: 0.18618s