turbodl


Nameturbodl JSON
Version 0.1.8 PyPI version JSON
download
home_pagehttps://github.com/henrique-coder/turbodl
SummaryTurboDL is an extremely smart, fast and efficient download manager with several automations.
upload_time2025-01-10 16:43:32
maintainerhenrique-coder
docs_urlNone
authorhenrique-coder
requires_python<4.0,>=3.9
licenseMIT
keywords dl downloader manager python smart turbodl
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## TurboDL

![PyPI - Version](https://img.shields.io/pypi/v/turbodl?style=flat&logo=pypi&logoColor=blue&color=blue&link=https://pypi.org/project/turbodl)
![PyPI - Downloads](https://img.shields.io/pypi/dm/turbodl?style=flat&logo=pypi&logoColor=blue&color=blue&link=https://pypi.org/project/turbodl)
![PyPI - Code Style](https://img.shields.io/badge/code%20style-ruff-blue?style=flat&logo=ruff&logoColor=blue&color=blue&link=https://github.com/astral-sh/ruff)
![PyPI - Format](https://img.shields.io/pypi/format/turbodl?style=flat&logo=pypi&logoColor=blue&color=blue&link=https://pypi.org/project/turbodl)
![PyPI - Python Compatible Versions](https://img.shields.io/pypi/pyversions/turbodl?style=flat&logo=python&logoColor=blue&color=blue&link=https://pypi.org/project/turbodl)

TurboDL is an extremely smart, fast and efficient download manager with several automations.

- Built-in sophisticated download acceleration technique.
- Uses a sophisticated algorithm to calculate the optimal number of connections based on file size and connection speed.
- Retry failed requests efficiently.
- Automatically detects file information before download.
- Automatically handles redirects.
- Supports post-download hash verification.
- Automatically uses RAM buffer to speed up downloads and reduce disk I/O overhead.
- Accurately displays a beautiful progress bar.

<br>

#### Installation (from [PyPI](https://pypi.org/project/turbodl))

```bash
pip install -U turbodl  # Install the latest version of TurboDL
```

### Example Usage

#### Inside a Python script

```python
from turbodl import TurboDL


turbodl = TurboDL(
    max_connections='auto',
    connection_speed=80,
    show_progress_bars=True,
    custom_headers=None,
    timeout=None
)

turbodl.download(
    url='https://example.com/file.txt',
    output_path='path/to/file',
    expected_hash='0a1b2c3d4e5f6g7h8i9j',  # Or None if you don't want to check the hash
    hash_type='md5'
    pre_allocate_space=False,
    use_ram_buffer=True,
)
# >>> file.txt ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 35.6/35.6 kB 36.2 MB/s 0:00:00 100%

# All functions are documented and have detailed typings, use your development IDE to learn more.

```

#### From the command line

```bash
turbodl --help
# >>>  Usage: turbodl [OPTIONS] URL [OUTPUT_PATH]
# >>>
# >>> ╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
# >>> │ *    url              TEXT           The download URL to download the file from. [default: None] [required]                                                                                                                  │
# >>> │      output_path      [OUTPUT_PATH]  The path to save the downloaded file to. If the path is a directory, the file name will be generated from the server response. If the path is a file, the file will be saved with the   │
# >>> │                                      provided name. If not provided, the file will be saved to the current working directory. (default: Path.cwd())                                                                          │
# >>> │                                      [default: None]                                                                                                                                                                         │
# >>> ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
# >>> ╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
# >>> │ --max-connections     -mc                               INTEGER  The maximum number of connections to use for downloading the file (default: 'auto'). [default: None]                                                        │
# >>> │ --connection-speed    -cs                               FLOAT    Your connection speed in Mbps (default: 80). [default: None]                                                                                                │
# >>> │ --overwrite           -o    --no-overwrite        -no            Overwrite the file if it already exists. Otherwise, a "_1", "_2", etc. suffix will be added. [default: overwrite]                                           │
# >>> │ --show-progress-bars  -spb  --hide-progress-bars  -hpb           Show or hide all progress bars. [default: show-progress-bars]                                                                                               │
# >>> │ --timeout             -t                                INTEGER  Timeout in seconds for the download process. Or None for no timeout. [default: None]                                                                        │
# >>> │ --expected-hash       -eh                               TEXT     The expected hash of the downloaded file. If not provided, the hash will not be checked. [default: None]                                                    │
# >>> │ --hash-type           -ht                               TEXT     The hash type to use for the hash verification. Must be one of 'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'blake2b', 'blake2s', 'sha3_224',     │
# >>> │                                                                  'sha3_256', 'sha3_384', 'sha3_512', 'shake_128' or 'shake_256'.                                                                                             │
# >>> │                                                                  [default: md5]                                                                                                                                              │
# >>> │ --pre-allocate-space  -pas                                       Whether to pre-allocate space for the file, useful to avoid disk fragmentation.                                                                             │
# >>> │ --use-ram-buffer      -urb                                       Whether to use a RAM buffer to download the file. [default: True]                                                                                           │
# >>> │ --help                                                           Show this message and exit.                                                                                                                                 │
# >>> ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

turbodl https://example.com/file.txt [...] path/to/file  # Tip: use -cs argument to set your connection speed in Mbps and accelerate the download
# >>> file.txt ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 35.6/35.6 kB 36.2 MB/s 0:00:00 100%
```

### Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.

If you have a suggestion that would make this better, fork the repository and create a pull request. You can also simply open an issue and describe your ideas or report bugs. **Don't forget to give the project a star if you like it!**

1. Fork the project;
2. Create your feature branch ・ `git checkout -b feature/{feature_name}`;
3. Commit your changes ・ `git commit -m "{commit_message}"`;
4. Push to the branch ・ `git push origin feature/{feature_name}`;
5. Open a pull request, describing the changes you made and wait for a review.


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/henrique-coder/turbodl",
    "name": "turbodl",
    "maintainer": "henrique-coder",
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": "hjyz6rqyb@mozmail.com",
    "keywords": "dl, downloader, manager, python, smart, turbodl",
    "author": "henrique-coder",
    "author_email": "hjyz6rqyb@mozmail.com",
    "download_url": "https://files.pythonhosted.org/packages/ba/86/1667340735ddb5666de20f7a07bda420242eddf4a7b5a23c56a1d794c5f2/turbodl-0.1.8.tar.gz",
    "platform": null,
    "description": "## TurboDL\n\n![PyPI - Version](https://img.shields.io/pypi/v/turbodl?style=flat&logo=pypi&logoColor=blue&color=blue&link=https://pypi.org/project/turbodl)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/turbodl?style=flat&logo=pypi&logoColor=blue&color=blue&link=https://pypi.org/project/turbodl)\n![PyPI - Code Style](https://img.shields.io/badge/code%20style-ruff-blue?style=flat&logo=ruff&logoColor=blue&color=blue&link=https://github.com/astral-sh/ruff)\n![PyPI - Format](https://img.shields.io/pypi/format/turbodl?style=flat&logo=pypi&logoColor=blue&color=blue&link=https://pypi.org/project/turbodl)\n![PyPI - Python Compatible Versions](https://img.shields.io/pypi/pyversions/turbodl?style=flat&logo=python&logoColor=blue&color=blue&link=https://pypi.org/project/turbodl)\n\nTurboDL is an extremely smart, fast and efficient download manager with several automations.\n\n- Built-in sophisticated download acceleration technique.\n- Uses a sophisticated algorithm to calculate the optimal number of connections based on file size and connection speed.\n- Retry failed requests efficiently.\n- Automatically detects file information before download.\n- Automatically handles redirects.\n- Supports post-download hash verification.\n- Automatically uses RAM buffer to speed up downloads and reduce disk I/O overhead.\n- Accurately displays a beautiful progress bar.\n\n<br>\n\n#### Installation (from [PyPI](https://pypi.org/project/turbodl))\n\n```bash\npip install -U turbodl  # Install the latest version of TurboDL\n```\n\n### Example Usage\n\n#### Inside a Python script\n\n```python\nfrom turbodl import TurboDL\n\n\nturbodl = TurboDL(\n    max_connections='auto',\n    connection_speed=80,\n    show_progress_bars=True,\n    custom_headers=None,\n    timeout=None\n)\n\nturbodl.download(\n    url='https://example.com/file.txt',\n    output_path='path/to/file',\n    expected_hash='0a1b2c3d4e5f6g7h8i9j',  # Or None if you don't want to check the hash\n    hash_type='md5'\n    pre_allocate_space=False,\n    use_ram_buffer=True,\n)\n# >>> file.txt \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 35.6/35.6 kB 36.2 MB/s 0:00:00 100%\n\n# All functions are documented and have detailed typings, use your development IDE to learn more.\n\n```\n\n#### From the command line\n\n```bash\nturbodl --help\n# >>>  Usage: turbodl [OPTIONS] URL [OUTPUT_PATH]\n# >>>\n# >>> \u256d\u2500 Arguments \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n# >>> \u2502 *    url              TEXT           The download URL to download the file from. [default: None] [required]                                                                                                                  \u2502\n# >>> \u2502      output_path      [OUTPUT_PATH]  The path to save the downloaded file to. If the path is a directory, the file name will be generated from the server response. If the path is a file, the file will be saved with the   \u2502\n# >>> \u2502                                      provided name. If not provided, the file will be saved to the current working directory. (default: Path.cwd())                                                                          \u2502\n# >>> \u2502                                      [default: None]                                                                                                                                                                         \u2502\n# >>> \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n# >>> \u256d\u2500 Options \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n# >>> \u2502 --max-connections     -mc                               INTEGER  The maximum number of connections to use for downloading the file (default: 'auto'). [default: None]                                                        \u2502\n# >>> \u2502 --connection-speed    -cs                               FLOAT    Your connection speed in Mbps (default: 80). [default: None]                                                                                                \u2502\n# >>> \u2502 --overwrite           -o    --no-overwrite        -no            Overwrite the file if it already exists. Otherwise, a \"_1\", \"_2\", etc. suffix will be added. [default: overwrite]                                           \u2502\n# >>> \u2502 --show-progress-bars  -spb  --hide-progress-bars  -hpb           Show or hide all progress bars. [default: show-progress-bars]                                                                                               \u2502\n# >>> \u2502 --timeout             -t                                INTEGER  Timeout in seconds for the download process. Or None for no timeout. [default: None]                                                                        \u2502\n# >>> \u2502 --expected-hash       -eh                               TEXT     The expected hash of the downloaded file. If not provided, the hash will not be checked. [default: None]                                                    \u2502\n# >>> \u2502 --hash-type           -ht                               TEXT     The hash type to use for the hash verification. Must be one of 'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'blake2b', 'blake2s', 'sha3_224',     \u2502\n# >>> \u2502                                                                  'sha3_256', 'sha3_384', 'sha3_512', 'shake_128' or 'shake_256'.                                                                                             \u2502\n# >>> \u2502                                                                  [default: md5]                                                                                                                                              \u2502\n# >>> \u2502 --pre-allocate-space  -pas                                       Whether to pre-allocate space for the file, useful to avoid disk fragmentation.                                                                             \u2502\n# >>> \u2502 --use-ram-buffer      -urb                                       Whether to use a RAM buffer to download the file. [default: True]                                                                                           \u2502\n# >>> \u2502 --help                                                           Show this message and exit.                                                                                                                                 \u2502\n# >>> \u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n\nturbodl https://example.com/file.txt [...] path/to/file  # Tip: use -cs argument to set your connection speed in Mbps and accelerate the download\n# >>> file.txt \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 35.6/35.6 kB 36.2 MB/s 0:00:00 100%\n```\n\n### Contributing\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, fork the repository and create a pull request. You can also simply open an issue and describe your ideas or report bugs. **Don't forget to give the project a star if you like it!**\n\n1. Fork the project;\n2. Create your feature branch \u30fb `git checkout -b feature/{feature_name}`;\n3. Commit your changes \u30fb `git commit -m \"{commit_message}\"`;\n4. Push to the branch \u30fb `git push origin feature/{feature_name}`;\n5. Open a pull request, describing the changes you made and wait for a review.\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "TurboDL is an extremely smart, fast and efficient download manager with several automations.",
    "version": "0.1.8",
    "project_urls": {
        "Bug Tracker": "https://github.com/henrique-coder/turbodl/issues",
        "Changelog": "https://github.com/henrique-coder/turbodl/releases/latest",
        "Documentation": "https://github.com/henrique-coder/turbodl/blob/main/README.md",
        "Homepage": "https://github.com/henrique-coder/turbodl",
        "Repository": "https://github.com/henrique-coder/turbodl"
    },
    "split_keywords": [
        "dl",
        " downloader",
        " manager",
        " python",
        " smart",
        " turbodl"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "075aed68c6c3b28aa15fdb5f1713849a34a8651b9e9d5e791d6cfaa34bf4805e",
                "md5": "3f87d3202814855794502042f92728ff",
                "sha256": "7d06fe11a7562b45d3010f44aec79e3bdd79958750826f932c08e8151aeb4a71"
            },
            "downloads": -1,
            "filename": "turbodl-0.1.8-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3f87d3202814855794502042f92728ff",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 12456,
            "upload_time": "2025-01-10T16:43:29",
            "upload_time_iso_8601": "2025-01-10T16:43:29.606344Z",
            "url": "https://files.pythonhosted.org/packages/07/5a/ed68c6c3b28aa15fdb5f1713849a34a8651b9e9d5e791d6cfaa34bf4805e/turbodl-0.1.8-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ba861667340735ddb5666de20f7a07bda420242eddf4a7b5a23c56a1d794c5f2",
                "md5": "e359760d08bb4f03b3570a82dd7fab5c",
                "sha256": "7a95995f2a49829ec1e69c2266c07c007c22366faf0b08fdf65d1933fb719f24"
            },
            "downloads": -1,
            "filename": "turbodl-0.1.8.tar.gz",
            "has_sig": false,
            "md5_digest": "e359760d08bb4f03b3570a82dd7fab5c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 11517,
            "upload_time": "2025-01-10T16:43:32",
            "upload_time_iso_8601": "2025-01-10T16:43:32.350781Z",
            "url": "https://files.pythonhosted.org/packages/ba/86/1667340735ddb5666de20f7a07bda420242eddf4a7b5a23c56a1d794c5f2/turbodl-0.1.8.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-10 16:43:32",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "henrique-coder",
    "github_project": "turbodl",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "turbodl"
}
        
Elapsed time: 0.40156s