Metadata-Version: 2.4
Name: evo_downloader
Version: 1.0.9
Summary: Python downloading library that enhances your download speed
Project-URL: Homepage, https://github.com/maycuatroi1/evo_downloader
Project-URL: Repository, https://github.com/maycuatroi1/evo_downloader
Project-URL: Issues, https://github.com/maycuatroi1/evo_downloader/issues
Author: maycuatroi
License-Expression: MIT
License-File: LICENSE
Keywords: cli,downloader,http,parallel
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Utilities
Requires-Python: >=3.9
Requires-Dist: click
Requires-Dist: humanize
Requires-Dist: requests
Requires-Dist: rich
Requires-Dist: types-requests
Provides-Extra: dev
Requires-Dist: black>=23.0.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Provides-Extra: gui
Requires-Dist: pyqt5; extra == 'gui'
Requires-Dist: pytest-qt; extra == 'gui'
Description-Content-Type: text/markdown

# Evo Downloader

[![codecov](https://codecov.io/gh/maycuatroi/evo_downloader/branch/main/graph/badge.svg?token=evo_downloader_token_here)](https://codecov.io/gh/maycuatroi/evo_downloader)
[![CI](https://github.com/maycuatroi/evo_downloader/actions/workflows/main.yml/badge.svg)](https://github.com/maycuatroi/evo_downloader/actions/workflows/main.yml)

This module contains the main functionality for downloading files, including support for multi-threaded downloads and handling servers that do not support range requests.

## Install it from PyPI

### Lean Version

```bash
pip install evo-downloader
```

### Full Version with PyQt6

```bash
pip install evo-downloader[full]
```

## Usage

### As a Library

You can use `evo-download` to download files programmatically.

```python
from evo_downloader.downloader import Downloader

downloader = Downloader(num_threads=10)

# Example file URLs
file_urls = [
    # url only
    "http://images.cocodataset.org/annotations/image_info_test2014.zip",
    # Tuple with file name
    ('evo_downloader.zip', 'https://github.com/maycuatroi/evo_downloader/archive/refs/heads/main.zip')
]

downloaded_files = downloader.download_files(file_urls, "example_folder")

for file_path in downloaded_files:
    print(f"Downloaded: {file_path}")
```

### CLI Usage

You can also use `edownload` from the command line.

```bash
$ python -m edownload download http://images.cocodataset.org/annotations/image_info_test2014.zip --folder example_folder --num-threads 10

# or if installed as a script
$ edownload download http://images.cocodataset.org/annotations/image_info_test2014.zip --folder example_folder --num-threads 10
```

### Example Commands

```bash
# Download a file with range support
$ evo_downloader download http://images.cocodataset.org/annotations/image_info_test2014.zip --folder example_folder --num-threads 10

# Download a file without range support
$ evo_downloader download https://github.com/maycuatroi/evo_downloader/archive/refs/heads/main.zip --folder example_folder --num-threads 10
```

### download_example.py

This example demonstrates how to use the `Downloader` class to download files programmatically.

### GUI Usage

You can also use `edownload` to launch the GUI.

```bash
$ edownload gui
```

The GUI allows you to input multiple download links and select the output folder. It also displays the download progress.

### Testing

To run tests, you need to install the testing dependencies, including `pyqt6`.

```bash
pip install -r requirements-test.txt
```

Then, you can run the tests using `pytest`.

```bash
pytest
```

_Evo Downloader developed with ❤️ by maycuatroi_
