{ "info": { "author": "Parth Verma", "author_email": "v.parth98@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "# PyDownload [![PyPI version](https://badge.fury.io/py/pyDownload.svg)](https://badge.fury.io/py/pyDownload) [![Build Status](https://travis-ci.org/party98/pyDownload.svg?branch=master)](https://travis-ci.org/party98/pyDownload) [![codecov](https://codecov.io/gh/party98/pyDownload/branch/master/graph/badge.svg)](https://codecov.io/gh/party98/pyDownload)\n\nThis package aims to provide the functionality to download large files from the internet using chunked and multithreaded downloads.\n\n# Index\n - [Command Line Usage](#command-line-usage)\n - [Features](#features)\n - [Installation](#installation)\n - [Usage](#usage)\n - [Developer Guide](#developer-guide)\n - [Bug Reporting Guide](#bug-reporting-guide)\n - [Contribution Guide](#contribution-guide)\n - [SayThanks](#saythanks)\n\n# Command Line usage\n\nThe package can be used to perform multithreaded downloads via the CLI.\n\n### Usage\n\n```bash\npyDownload https://github.com/party98/Python-Parallel-Downloader/archive/master.zip\n```\n\n### Config Options\n```bash\npositional arguments:\n url list of urls to download\n\noptional arguments:\n -h, --help show this help message and exit\n -o FILENAME, --output FILENAME\n output file\n -t NUM_THREADS, --threads NUM_THREADS\n number of threads to use\n -c CHUNK_SIZE, --chunk-size CHUNK_SIZE\n chunk size (in bytes)\n --version display the version of pyDownload being used\n```\n\n# Features\n\n - Written in pure python.\n - Supports ability to perform multithreaded downloads from any url if the server supports.\n - Small and concise API therefore easy to integrate in python code.\n\n# Installation\n\n```bash\npip install pydownload\n```\n\n# Usage\n\n```python\nimport time\nfrom pyDownload import Downloader\n\nurl = 'https://github.com/party98/Python-Parallel-Downloader/archive/master.zip'\ndownloader = Downloader(url=url)\nif downloader.is_running:\n time.sleep(1)\nprint('File downloaded to %s' % downloader.file_name)\n```\n\n\n\n# Developer Guide\n\n## Setting Up The Environment\n - ### Setup VirtualEnv (Recommended But Optional)\n ```bash\n pip install virtualenv\n virtualenv env\n source ./env/bin/activate\n ```\n - ### Install Dependencies\n ```bash\n pip install .[dev]\n ```\n - ### Install pre-commit hooks\n The project uses various pre-commit hooks to enforce code quality and standards. Therefore, it is really necessary for all the contributors to install these and run before every commit else the contributions will be rejected.\n\n ##### Steps\n ```bash\n pre-commit install\n ```\n\n## Running Tests\n - ### Install Dependencies\n ```bash\n pip install .[test]\n ```\n - ### Run the Tests\n - #### With Coverage Report (Recommended)\n ```\n nosetests --cover-erase --cover-package=pyDownload --with-coverage --cover-branches\n ```\n - #### Without Coverage Report\n ```\n nosetests --cover-erase --cover-package=pyDownload --cover-branches\n ```\n\n# Bug Reporting Guide\n\nYou can report bugs [here](https://github.com/party98/pyDownload/issues).\n\n - Make sure you are using the latest version. (Check by running `pyDownload --version`).\n - Search for the issue in existing issues (open & closed) and create only if the issue is not mentioned.\n - Fill the issue template correctly.\n\nNote: If you feel that you can fix the issue, you are more than welcome to submit a PR.\n\n# Contribution Guide\n\nContributors are welcome to make this package more awesome. But before you do, make sure that you have read the following limited but important guidelines.\n\n - Make sure that the issue that you are trying to fix exists [here](https://github.com/party98/pyDownload/issues). Create one if it does not.\n - Make sure that you perform `flake8` checks on the code before you submit a PR.\n - Write unittests and comments for the changes that you have made.\n - Make sure your branch is updated with the `development` branch.\n - All PRs should be submitted to `development` branch. PRs to any other branch will be rejected.\n - Please install and perform `pre-commit` check on all your commits to maintain code quality\n\n\n# SayThanks\n\nYou can thank the team [here](https://saythanks.io/to/party98).\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/party98/Python-Parallel-Downloader", "keywords": "downloading multithreaded parallel multithreading multithreaded-downloading download", "license": "", "maintainer": "", "maintainer_email": "", "name": "pyDownload", "package_url": "https://pypi.org/project/pyDownload/", "platform": "", "project_url": "https://pypi.org/project/pyDownload/", "project_urls": { "Bug Reports": "https://github.com/party98/Python-Parallel-Downloader/issues", "Homepage": "https://github.com/party98/Python-Parallel-Downloader", "Say Thanks!": "https://saythanks.io/to/party98", "Source": "https://github.com/party98/Python-Parallel-Downloader" }, "release_url": "https://pypi.org/project/pyDownload/0.0.1.dev4/", "requires_dist": [ "requests (>=2.18.0)", "progressbar2 (>=3.37.1)", "pre-commit (==1.8.2); extra == 'dev'", "nose; extra == 'test'", "coverage; extra == 'test'" ], "requires_python": "", "summary": "A simple package for multithreaded downloading", "version": "0.0.1.dev4" }, "last_serial": 3869347, "releases": { "0.0.1.dev0": [ { "comment_text": "", "digests": { "md5": "73a3c04c459ca4b6f950a05698cdb800", "sha256": "a40b9474a371804ae379c01f0dbf3b499b7d689f954e0acadbc50898d0084feb" }, "downloads": -1, "filename": "pyDownload-0.0.1.dev0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "73a3c04c459ca4b6f950a05698cdb800", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3775, "upload_time": "2018-05-04T15:42:15", "url": "https://files.pythonhosted.org/packages/98/39/5245c6ad02fe0bb8f7454ea92c0f7c1d290a9e56204ab2131957cbd2376b/pyDownload-0.0.1.dev0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4e364fcb2707485ac9e0bc8e05fc192c", "sha256": "8a9533c476bfa69ef412fbbb6e233fc3765a7e26fc60c7d314c848df6368b4a9" }, "downloads": -1, "filename": "pyDownload-0.0.1.dev0.tar.gz", "has_sig": false, "md5_digest": "4e364fcb2707485ac9e0bc8e05fc192c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3345, "upload_time": "2018-05-04T15:42:17", "url": "https://files.pythonhosted.org/packages/cf/3a/afe7722f6395e70507bc9b7135dce443a1e2846270fd3d601dd9ed931411/pyDownload-0.0.1.dev0.tar.gz" } ], "0.0.1.dev1": [ { "comment_text": "", "digests": { "md5": "ddb72d5be6b6b98a13f50aaa891c6c98", "sha256": "ce20b929a1ca7d8c0e13fd1c0a9407cb861ba747727422dc0b17f752bf1dbbf7" }, "downloads": -1, "filename": "pyDownload-0.0.1.dev1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ddb72d5be6b6b98a13f50aaa891c6c98", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3757, "upload_time": "2018-05-04T15:45:21", "url": "https://files.pythonhosted.org/packages/4a/e9/c755a7745fd867d70c91c9a1c204cff4214a1e29127166fc05ce2ea744b7/pyDownload-0.0.1.dev1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "51eab7905ce425c4df89bef4cbafd3f8", "sha256": "bce436ba0d5854dae1719ad0aedb65f906324e8689e04fd38ac3709d2e533fdd" }, "downloads": -1, "filename": "pyDownload-0.0.1.dev1.tar.gz", "has_sig": false, "md5_digest": "51eab7905ce425c4df89bef4cbafd3f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3332, "upload_time": "2018-05-04T15:45:22", "url": "https://files.pythonhosted.org/packages/f0/dc/aa0e1cd5eae52ed2ad4ff047687d56f3663a980678e3b533a947c653287c/pyDownload-0.0.1.dev1.tar.gz" } ], "0.0.1.dev2": [ { "comment_text": "", "digests": { "md5": "2fa0fbf3c23bdac31c081433122e19a6", "sha256": "91dc1b540ee0ea15cb2664538edaa11137feaae97f061d8dd5b6a2247c246a01" }, "downloads": -1, "filename": "pyDownload-0.0.1.dev2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2fa0fbf3c23bdac31c081433122e19a6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4230, "upload_time": "2018-05-05T09:45:57", "url": "https://files.pythonhosted.org/packages/f3/1a/4e1b83a3f4539ae53b06f181a78315a2cd03fa87018b3993c20cf2fc8182/pyDownload-0.0.1.dev2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e3ad289def3f529791145bd351b72c0b", "sha256": "efa29e1c22324fd22e9d2b3737ffb8c310a3862cb6cbdc83d0ea0dd329b7bc35" }, "downloads": -1, "filename": "pyDownload-0.0.1.dev2.tar.gz", "has_sig": false, "md5_digest": "e3ad289def3f529791145bd351b72c0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3928, "upload_time": "2018-05-05T09:45:58", "url": "https://files.pythonhosted.org/packages/ea/a3/3ca297661c8fdd31f8adf260e97f2ef9ba9c221069ccfc9b24720e9d6ee5/pyDownload-0.0.1.dev2.tar.gz" } ], "0.0.1.dev3": [ { "comment_text": "", "digests": { "md5": "25e1cd66525205f8e9480823ca14ab74", "sha256": "c0444e488badc6a853bec04cf8ed6876a4d4f5c13796b1b5ef9d92a2f337ca1d" }, "downloads": -1, "filename": "pyDownload-0.0.1.dev3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "25e1cd66525205f8e9480823ca14ab74", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4227, "upload_time": "2018-05-06T08:03:41", "url": "https://files.pythonhosted.org/packages/f0/c8/04d91bfc8299d32fc87b8012606429bb0c545b4d7e394b49f70f43370cb0/pyDownload-0.0.1.dev3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4285ec4b3b5dcc854f19b3ebeb5e8f29", "sha256": "bdeaa6df2ce93f6e9e5d5c38f7e00748c57b09282b743093ae41be13be1f10ed" }, "downloads": -1, "filename": "pyDownload-0.0.1.dev3-py3.5.egg", "has_sig": false, "md5_digest": "4285ec4b3b5dcc854f19b3ebeb5e8f29", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 12266, "upload_time": "2018-05-16T16:15:08", "url": "https://files.pythonhosted.org/packages/e7/6d/88f556124ddabe40adeac74369832b4f44393e68009caed209d753771f6f/pyDownload-0.0.1.dev3-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "2d18eb85b37c6649b4a09e60b59e7703", "sha256": "8d91735a059ba0e4882b72d429f6cfed1492192a0ab710d5d8ed8da7e24dc949" }, "downloads": -1, "filename": "pyDownload-0.0.1.dev3.tar.gz", "has_sig": false, "md5_digest": "2d18eb85b37c6649b4a09e60b59e7703", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3931, "upload_time": "2018-05-06T08:03:43", "url": "https://files.pythonhosted.org/packages/00/55/a095271281f810c16a6832bbfc1b6f23ffe6083945bcb3c9a6b8511b41a2/pyDownload-0.0.1.dev3.tar.gz" } ], "0.0.1.dev4": [ { "comment_text": "", "digests": { "md5": "0f73fe2147c29e175e44a5abe9287e8f", "sha256": "1b2b37846bdd30293b332b4c434578cd73b8a5a0a182f73203fc8ad0c213a836" }, "downloads": -1, "filename": "pyDownload-0.0.1.dev4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0f73fe2147c29e175e44a5abe9287e8f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7075, "upload_time": "2018-05-16T16:15:06", "url": "https://files.pythonhosted.org/packages/c6/44/d9478878314dcb5470942b48150bf1121e2f1ae0d37bc9fcf9e448045167/pyDownload-0.0.1.dev4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8fc51a7044ed3d11910b80babc601833", "sha256": "e3470cc2607cbbf1ba345853f651035fa56bb452900c3d0d0c0bd7dd744539de" }, "downloads": -1, "filename": "pyDownload-0.0.1.dev4.tar.gz", "has_sig": false, "md5_digest": "8fc51a7044ed3d11910b80babc601833", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6219, "upload_time": "2018-05-16T16:15:09", "url": "https://files.pythonhosted.org/packages/21/4f/065cfd16191cad1adbacd1b65df47322be7b3186b1abad244ecfa59ba217/pyDownload-0.0.1.dev4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0f73fe2147c29e175e44a5abe9287e8f", "sha256": "1b2b37846bdd30293b332b4c434578cd73b8a5a0a182f73203fc8ad0c213a836" }, "downloads": -1, "filename": "pyDownload-0.0.1.dev4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0f73fe2147c29e175e44a5abe9287e8f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7075, "upload_time": "2018-05-16T16:15:06", "url": "https://files.pythonhosted.org/packages/c6/44/d9478878314dcb5470942b48150bf1121e2f1ae0d37bc9fcf9e448045167/pyDownload-0.0.1.dev4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8fc51a7044ed3d11910b80babc601833", "sha256": "e3470cc2607cbbf1ba345853f651035fa56bb452900c3d0d0c0bd7dd744539de" }, "downloads": -1, "filename": "pyDownload-0.0.1.dev4.tar.gz", "has_sig": false, "md5_digest": "8fc51a7044ed3d11910b80babc601833", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6219, "upload_time": "2018-05-16T16:15:09", "url": "https://files.pythonhosted.org/packages/21/4f/065cfd16191cad1adbacd1b65df47322be7b3186b1abad244ecfa59ba217/pyDownload-0.0.1.dev4.tar.gz" } ] }