niquests


Nameniquests JSON
Version 3.6.2 PyPI version JSON
download
home_pageNone
SummaryNiquests is a simple, yet elegant, HTTP library. It is a drop-in replacement for Requests, which is under feature freeze.
upload_time2024-05-02 06:27:07
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7
licenseNone
keywords quic dns-over-https dns-over-quic dns-over-tls dnssec doh doq dot http http client http/1.1 http/2 http/3 https multiplexed ocsp requests revocation tls
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            <div align="center">
    <img src="https://user-images.githubusercontent.com/9326700/282852138-160f32e9-e6cf-495f-b39d-99891602acf9.png" alt="Niquests Logo"/>
</div>

**Niquests** is a simple, yet elegant, HTTP library. It is a drop-in replacement for **Requests**, which is under feature freeze.

Niquests, is the β€œ**Safest**, **Fastest[^10]**, **Easiest**, and **Most advanced**” Python HTTP Client. Production Ready!

βœ”οΈ **Try before you switch:** [See Multiplexed in Action](https://replit.com/@ahmedtahri4/Python#main.py)<br>
πŸ“– **See why you should switch:** [Read about 10 reasons why](https://medium.com/@ahmed.tahri/10-reasons-you-should-quit-your-http-client-98fd4c94bef3), and ["_Revived the promise made six years ago for Requests 3_"](https://medium.com/@ahmed.tahri/revived-the-promise-made-six-years-ago-for-requests-3-37b440e6a064)

<details>
  <summary>πŸ‘† <b>Look at the feature table comparison</b> against <i>requests, httpx and aiohttp</i>!</summary>

| Feature                             | niquests | requests  |     httpx     | aiohttp       |
|-------------------------------------|:--------:|:---------:|:-------------:|---------------|
| `HTTP/1.1`                          |    βœ…     |     βœ…     |       βœ…       | βœ…             |
| `HTTP/2`                            |    βœ…     |     ❌     |     βœ…[^7]     | ❌             |
| `HTTP/3 over QUIC`                  |    βœ…     |     ❌     |       ❌       | ❌             |
| `Synchronous`                       |    βœ…     |     βœ…     |       βœ…       | ❌             |
| `Asynchronous`                      |    βœ…     |     ❌     |       βœ…       | βœ…             |
| `Thread Safe`                       |    βœ…     |     βœ…     |     ❌[^5]     | _N/A_[^1]     |
| `Task Safe`                         |    βœ…     | _N/A_[^2] |       βœ…       | βœ…             |
| `OS Trust Store`                    |    βœ…     |     ❌     |       ❌       | ❌             |
| `Multiplexing`                      |    βœ…     |     ❌     | _Limited_[^3] | ❌             |
| `DNSSEC`                            |  βœ…[^11]  |     ❌     |       ❌       | ❌             |
| `Customizable DNS Resolution`       |    βœ…     |     ❌     |       ❌       | βœ…             |
| `DNS over HTTPS`                    |    βœ…     |     ❌     |       ❌       | ❌             |
| `DNS over QUIC`                     |    βœ…     |     ❌     |       ❌       | ❌             |
| `DNS over TLS`                      |    βœ…     |     ❌     |       ❌       | ❌             |
| `Multiple DNS Resolver`             |    βœ…     |     ❌     |       ❌       | ❌             |
| `Network Fine Tuning & Inspect`     |    βœ…     |     ❌     | _Limited_[^6] | _Limited_[^6] |
| `Certificate Revocation Protection` |    βœ…     |     ❌     |       ❌       | ❌             |
| `Session Persistence`               |    βœ…     |     βœ…     |       βœ…       | βœ…             |
| `In-memory Certificate CA & mTLS`   |    βœ…     |     ❌     | _Limited_[^4] | _Limited_[^4] |
| `SOCKS 4/5 Proxies`                 |    βœ…     |     βœ…     |       βœ…       | ❌             |
| `HTTP/HTTPS Proxies`                |    βœ…     |     βœ…     |       βœ…       | βœ…             |
| `TLS-in-TLS Support`                |    βœ…     |     βœ…     |       βœ…       | βœ…             |
| `Direct HTTP/3 Negotiation`         |  βœ…[^9]   |  N/A[^8]  |    N/A[^8]    | N/A[^8]       |
| `Happy Eyeballs`                    |    βœ…     |     ❌     |       ❌       | βœ…             |
| `Package / SLSA Signed`             |    βœ…     |     ❌     |       ❌       | βœ…             |
</details>

<details>
  <summary>πŸ“ˆ <b>Look at the performance comparison</b> against <i>them</i>!</summary>

_Scenario:_ Fetch a thousand requests using 10 tasks or threads, each with a hundred requests using a single pool of connection.

**High-Level APIs**

| Client   | Average Delay to Complete | Notes                        |
|----------|---------------------------|------------------------------|
| requests | 987 ms                    | ThreadPoolExecutor. HTTP/1.1 |
| httpx    | 735 ms                    | Asyncio. HTTP/2              |
| niquests | 400 ms                    | Asyncio. HTTP/2              |

**Simplified APIs**

| Client        | Average Delay to Complete | Notes                        |
|---------------|---------------------------|------------------------------|
| requests core | 643 ms                    | ThreadPoolExecutor. HTTP/1.1 |
| httpx core    | 550 ms                    | Asyncio. HTTP/2              |
| aiohttp       | 220 ms                    | Asyncio. HTTP/1.1            |
| niquests core | 190 ms                    | Asyncio. HTTP/2              |

Did you give up on HTTP/2 due to performance concerns? Think again! Multiplexing and response lazyness open up a wide range
of possibilities! Want to learn more about the tests? scripts? reasoning?

Take a deeper look at https://github.com/Ousret/niquests-stats

⚠️ Do the responsible thing with this library and do not attempt DoS remote servers using its abilities.
</details>

```python
>>> import niquests
>>> s = niquests.Session(resolver="doh+google://", multiplexed=True)
>>> r = s.get('https://pie.dev/basic-auth/user/pass', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.oheaders.content_type.charset
'utf8'
>>> r.encoding
'utf-8'
>>> r.text
'{"authenticated": true, ...'
>>> r.json()
{'authenticated': True, ...}
>>> r
<Response HTTP/3 [200]>
>>> r.ocsp_verified
True
>>> r.conn_info.established_latency
datetime.timedelta(microseconds=38)
```
or using async/await!
```python
import niquests
import asyncio

async def main() -> None:
    async with niquests.AsyncSession(resolver="doh+google://") as s:
        r = await s.get('https://pie.dev/basic-auth/user/pass', auth=('user', 'pass'), stream=True)
        print(r)  # Output: <Response HTTP/3 [200]>
        payload = await r.json()
        print(payload)  # Output: {'authenticated': True, ...}

asyncio.run(main())
```

Niquests allows you to send HTTP requests extremely easily. There’s no need to manually add query strings to your URLs, or to form-encode your `PUT` & `POST` data β€” just use the `json` method!

[![Downloads](https://static.pepy.tech/badge/niquests/month)](https://pepy.tech/project/niquests)
[![Supported Versions](https://img.shields.io/pypi/pyversions/niquests.svg)](https://pypi.org/project/niquests)

This project does not require any compilation toolchain. The HTTP/3 support is not enforced and installed if your platform can support it natively _(e.g. pre-built wheel available)_.

## ✨ Installing Niquests and Supported Versions

Niquests is available on PyPI:

```console
$ python -m pip install niquests
```

Niquests officially supports Python or PyPy 3.7+.

## πŸš€ Supported Features & Best–Practices

Niquests is ready for the demands of building scalable, robust and reliable HTTP–speaking applications.

- DNS over HTTPS, DNS over QUIC, DNS over TLS, and DNS over UDP
- Automatic Content Decompression and Decoding
- OS truststore by default, no more certifi!
- OCSP Certificate Revocation Verification
- Advanced connection timings inspection
- In-memory certificates (CAs, and mTLS)
- Browser-style TLS/SSL Verification
- Sessions with Cookie Persistence
- Keep-Alive & Connection Pooling
- International Domains and URLs
- Automatic honoring of `.netrc`
- Basic & Digest Authentication
- Familiar `dict`–like Cookies
- Network settings fine-tuning
- Object-oriented headers
- Multi-part File Uploads
- Chunked HTTP Requests
- Fully type-annotated!
- SOCKS Proxy Support
- Connection Timeouts
- Streaming Downloads
- HTTP/2 by default
- HTTP/3 over QUIC
- Happy Eyeballs
- Multiplexed!
- Thread-safe!
- DNSSEC!
- Async!

Need something more? Create an issue, we listen.

## πŸ“ Why did we pursue this?

For many years now, **Requests** has been frozen. Being left in a vegetative state and not evolving, this blocked millions of developers from using more advanced features.

We don't have to reinvent the wheel all over again, HTTP client **Requests** is well established and
really pleasant in its usage. We believe that **Requests** has the most inclusive and developer friendly interfaces.
We intend to keep it that way. As long as we can, long live Niquests!

How about a nice refresher with a mere `CTRL+H` _import requests_ **to** _import niquests as requests_ ?

## πŸ’Ό For Enterprise

Professional support for Niquests is available as part of the [Tidelift
Subscription](https://tidelift.com/subscription/pkg/pypi-niquests?utm_source=pypi-niquests&utm_medium=readme). Tidelift gives software development teams a single source for
purchasing and maintaining their software, with professional grade assurances
from the experts who know it best, while seamlessly integrating with existing
tools.

You may also be interested in unlocking specific advantages _(like access to a private issue tracker)_ by looking at our [GitHub sponsor tiers](https://github.com/sponsors/Ousret).

---

Niquests is a highly improved HTTP client that is based (forked) on Requests. The previous project original author is Kenneth Reitz and actually left the maintenance of Requests years ago.

[^1]: aiohttp has no support for synchronous request.
[^2]: requests has no support for asynchronous request.
[^3]: while the HTTP/2 connection object can handle concurrent requests, you cannot leverage its true potential.
[^4]: loading client certificate without file can't be done.
[^5]: httpx officially claim to be thread safe but recent tests demonstrate otherwise as of february 2024. https://github.com/jawah/niquests/issues/83#issuecomment-1956065258 https://github.com/encode/httpx/issues/3072 https://github.com/encode/httpx/issues/3002
[^6]: they do not expose anything to control network aspects such as IPv4/IPv6 toggles, and timings (e.g. DNS response time, established delay, TLS handshake delay, etc...) and such.
[^7]: while advertised as possible, they refuse to make it the default due to performance issues. as of february 2024 an extra is required to enable it manually.
[^8]: they don't support HTTP/3 at all.
[^9]: you must use a custom DNS resolver so that it can preemptively connect using HTTP/3 over QUIC when remote is compatible.
[^10]: performance measured when leveraging a multiplexed connection with or without uses of any form of concurrency as of March 2024. The research compared `httpx`, `requests`, `aiohttp` against `niquests`. See https://github.com/Ousret/niquests-stats
[^11]: enabled when using a custom DNS resolver.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "niquests",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "\"Ahmed R. TAHRI\" <ahmed.tahri@cloudnursery.dev>",
    "keywords": "QUIC, dns-over-https, dns-over-quic, dns-over-tls, dnssec, doh, doq, dot, http, http client, http/1.1, http/2, http/3, https, multiplexed, ocsp, requests, revocation, tls",
    "author": null,
    "author_email": "Kenneth Reitz <me@kennethreitz.org>",
    "download_url": "https://files.pythonhosted.org/packages/22/57/3a0d5805f84ddfe7918b2c8cba44995a61c482bc5c55650e68767b1c8ce7/niquests-3.6.2.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n    <img src=\"https://user-images.githubusercontent.com/9326700/282852138-160f32e9-e6cf-495f-b39d-99891602acf9.png\" alt=\"Niquests Logo\"/>\n</div>\n\n**Niquests** is a simple, yet elegant, HTTP library. It is a drop-in replacement for **Requests**, which is under feature freeze.\n\nNiquests, is the \u201c**Safest**, **Fastest[^10]**, **Easiest**, and **Most advanced**\u201d Python HTTP Client. Production Ready!\n\n\u2714\ufe0f **Try before you switch:** [See Multiplexed in Action](https://replit.com/@ahmedtahri4/Python#main.py)<br>\n\ud83d\udcd6 **See why you should switch:** [Read about 10 reasons why](https://medium.com/@ahmed.tahri/10-reasons-you-should-quit-your-http-client-98fd4c94bef3), and [\"_Revived the promise made six years ago for Requests 3_\"](https://medium.com/@ahmed.tahri/revived-the-promise-made-six-years-ago-for-requests-3-37b440e6a064)\n\n<details>\n  <summary>\ud83d\udc46 <b>Look at the feature table comparison</b> against <i>requests, httpx and aiohttp</i>!</summary>\n\n| Feature                             | niquests | requests  |     httpx     | aiohttp       |\n|-------------------------------------|:--------:|:---------:|:-------------:|---------------|\n| `HTTP/1.1`                          |    \u2705     |     \u2705     |       \u2705       | \u2705             |\n| `HTTP/2`                            |    \u2705     |     \u274c     |     \u2705[^7]     | \u274c             |\n| `HTTP/3 over QUIC`                  |    \u2705     |     \u274c     |       \u274c       | \u274c             |\n| `Synchronous`                       |    \u2705     |     \u2705     |       \u2705       | \u274c             |\n| `Asynchronous`                      |    \u2705     |     \u274c     |       \u2705       | \u2705             |\n| `Thread Safe`                       |    \u2705     |     \u2705     |     \u274c[^5]     | _N/A_[^1]     |\n| `Task Safe`                         |    \u2705     | _N/A_[^2] |       \u2705       | \u2705             |\n| `OS Trust Store`                    |    \u2705     |     \u274c     |       \u274c       | \u274c             |\n| `Multiplexing`                      |    \u2705     |     \u274c     | _Limited_[^3] | \u274c             |\n| `DNSSEC`                            |  \u2705[^11]  |     \u274c     |       \u274c       | \u274c             |\n| `Customizable DNS Resolution`       |    \u2705     |     \u274c     |       \u274c       | \u2705             |\n| `DNS over HTTPS`                    |    \u2705     |     \u274c     |       \u274c       | \u274c             |\n| `DNS over QUIC`                     |    \u2705     |     \u274c     |       \u274c       | \u274c             |\n| `DNS over TLS`                      |    \u2705     |     \u274c     |       \u274c       | \u274c             |\n| `Multiple DNS Resolver`             |    \u2705     |     \u274c     |       \u274c       | \u274c             |\n| `Network Fine Tuning & Inspect`     |    \u2705     |     \u274c     | _Limited_[^6] | _Limited_[^6] |\n| `Certificate Revocation Protection` |    \u2705     |     \u274c     |       \u274c       | \u274c             |\n| `Session Persistence`               |    \u2705     |     \u2705     |       \u2705       | \u2705             |\n| `In-memory Certificate CA & mTLS`   |    \u2705     |     \u274c     | _Limited_[^4] | _Limited_[^4] |\n| `SOCKS 4/5 Proxies`                 |    \u2705     |     \u2705     |       \u2705       | \u274c             |\n| `HTTP/HTTPS Proxies`                |    \u2705     |     \u2705     |       \u2705       | \u2705             |\n| `TLS-in-TLS Support`                |    \u2705     |     \u2705     |       \u2705       | \u2705             |\n| `Direct HTTP/3 Negotiation`         |  \u2705[^9]   |  N/A[^8]  |    N/A[^8]    | N/A[^8]       |\n| `Happy Eyeballs`                    |    \u2705     |     \u274c     |       \u274c       | \u2705             |\n| `Package / SLSA Signed`             |    \u2705     |     \u274c     |       \u274c       | \u2705             |\n</details>\n\n<details>\n  <summary>\ud83d\udcc8 <b>Look at the performance comparison</b> against <i>them</i>!</summary>\n\n_Scenario:_ Fetch a thousand requests using 10 tasks or threads, each with a hundred requests using a single pool of connection.\n\n**High-Level APIs**\n\n| Client   | Average Delay to Complete | Notes                        |\n|----------|---------------------------|------------------------------|\n| requests | 987 ms                    | ThreadPoolExecutor. HTTP/1.1 |\n| httpx    | 735 ms                    | Asyncio. HTTP/2              |\n| niquests | 400 ms                    | Asyncio. HTTP/2              |\n\n**Simplified APIs**\n\n| Client        | Average Delay to Complete | Notes                        |\n|---------------|---------------------------|------------------------------|\n| requests core | 643 ms                    | ThreadPoolExecutor. HTTP/1.1 |\n| httpx core    | 550 ms                    | Asyncio. HTTP/2              |\n| aiohttp       | 220 ms                    | Asyncio. HTTP/1.1            |\n| niquests core | 190 ms                    | Asyncio. HTTP/2              |\n\nDid you give up on HTTP/2 due to performance concerns? Think again! Multiplexing and response lazyness open up a wide range\nof possibilities! Want to learn more about the tests? scripts? reasoning?\n\nTake a deeper look at https://github.com/Ousret/niquests-stats\n\n\u26a0\ufe0f Do the responsible thing with this library and do not attempt DoS remote servers using its abilities.\n</details>\n\n```python\n>>> import niquests\n>>> s = niquests.Session(resolver=\"doh+google://\", multiplexed=True)\n>>> r = s.get('https://pie.dev/basic-auth/user/pass', auth=('user', 'pass'))\n>>> r.status_code\n200\n>>> r.headers['content-type']\n'application/json; charset=utf8'\n>>> r.oheaders.content_type.charset\n'utf8'\n>>> r.encoding\n'utf-8'\n>>> r.text\n'{\"authenticated\": true, ...'\n>>> r.json()\n{'authenticated': True, ...}\n>>> r\n<Response HTTP/3 [200]>\n>>> r.ocsp_verified\nTrue\n>>> r.conn_info.established_latency\ndatetime.timedelta(microseconds=38)\n```\nor using async/await!\n```python\nimport niquests\nimport asyncio\n\nasync def main() -> None:\n    async with niquests.AsyncSession(resolver=\"doh+google://\") as s:\n        r = await s.get('https://pie.dev/basic-auth/user/pass', auth=('user', 'pass'), stream=True)\n        print(r)  # Output: <Response HTTP/3 [200]>\n        payload = await r.json()\n        print(payload)  # Output: {'authenticated': True, ...}\n\nasyncio.run(main())\n```\n\nNiquests allows you to send HTTP requests extremely easily. There\u2019s no need to manually add query strings to your URLs, or to form-encode your `PUT` & `POST` data \u2014 just use the `json` method!\n\n[![Downloads](https://static.pepy.tech/badge/niquests/month)](https://pepy.tech/project/niquests)\n[![Supported Versions](https://img.shields.io/pypi/pyversions/niquests.svg)](https://pypi.org/project/niquests)\n\nThis project does not require any compilation toolchain. The HTTP/3 support is not enforced and installed if your platform can support it natively _(e.g. pre-built wheel available)_.\n\n## \u2728 Installing Niquests and Supported Versions\n\nNiquests is available on PyPI:\n\n```console\n$ python -m pip install niquests\n```\n\nNiquests officially supports Python or PyPy 3.7+.\n\n## \ud83d\ude80 Supported Features & Best\u2013Practices\n\nNiquests is ready for the demands of building scalable, robust and reliable HTTP\u2013speaking applications.\n\n- DNS over HTTPS, DNS over QUIC, DNS over TLS, and DNS over UDP\n- Automatic Content Decompression and Decoding\n- OS truststore by default, no more certifi!\n- OCSP Certificate Revocation Verification\n- Advanced connection timings inspection\n- In-memory certificates (CAs, and mTLS)\n- Browser-style TLS/SSL Verification\n- Sessions with Cookie Persistence\n- Keep-Alive & Connection Pooling\n- International Domains and URLs\n- Automatic honoring of `.netrc`\n- Basic & Digest Authentication\n- Familiar `dict`\u2013like Cookies\n- Network settings fine-tuning\n- Object-oriented headers\n- Multi-part File Uploads\n- Chunked HTTP Requests\n- Fully type-annotated!\n- SOCKS Proxy Support\n- Connection Timeouts\n- Streaming Downloads\n- HTTP/2 by default\n- HTTP/3 over QUIC\n- Happy Eyeballs\n- Multiplexed!\n- Thread-safe!\n- DNSSEC!\n- Async!\n\nNeed something more? Create an issue, we listen.\n\n## \ud83d\udcdd Why did we pursue this?\n\nFor many years now, **Requests** has been frozen. Being left in a vegetative state and not evolving, this blocked millions of developers from using more advanced features.\n\nWe don't have to reinvent the wheel all over again, HTTP client **Requests** is well established and\nreally pleasant in its usage. We believe that **Requests** has the most inclusive and developer friendly interfaces.\nWe intend to keep it that way. As long as we can, long live Niquests!\n\nHow about a nice refresher with a mere `CTRL+H` _import requests_ **to** _import niquests as requests_ ?\n\n## \ud83d\udcbc For Enterprise\n\nProfessional support for Niquests is available as part of the [Tidelift\nSubscription](https://tidelift.com/subscription/pkg/pypi-niquests?utm_source=pypi-niquests&utm_medium=readme). Tidelift gives software development teams a single source for\npurchasing and maintaining their software, with professional grade assurances\nfrom the experts who know it best, while seamlessly integrating with existing\ntools.\n\nYou may also be interested in unlocking specific advantages _(like access to a private issue tracker)_ by looking at our [GitHub sponsor tiers](https://github.com/sponsors/Ousret).\n\n---\n\nNiquests is a highly improved HTTP client that is based (forked) on Requests. The previous project original author is Kenneth Reitz and actually left the maintenance of Requests years ago.\n\n[^1]: aiohttp has no support for synchronous request.\n[^2]: requests has no support for asynchronous request.\n[^3]: while the HTTP/2 connection object can handle concurrent requests, you cannot leverage its true potential.\n[^4]: loading client certificate without file can't be done.\n[^5]: httpx officially claim to be thread safe but recent tests demonstrate otherwise as of february 2024. https://github.com/jawah/niquests/issues/83#issuecomment-1956065258 https://github.com/encode/httpx/issues/3072 https://github.com/encode/httpx/issues/3002\n[^6]: they do not expose anything to control network aspects such as IPv4/IPv6 toggles, and timings (e.g. DNS response time, established delay, TLS handshake delay, etc...) and such.\n[^7]: while advertised as possible, they refuse to make it the default due to performance issues. as of february 2024 an extra is required to enable it manually.\n[^8]: they don't support HTTP/3 at all.\n[^9]: you must use a custom DNS resolver so that it can preemptively connect using HTTP/3 over QUIC when remote is compatible.\n[^10]: performance measured when leveraging a multiplexed connection with or without uses of any form of concurrency as of March 2024. The research compared `httpx`, `requests`, `aiohttp` against `niquests`. See https://github.com/Ousret/niquests-stats\n[^11]: enabled when using a custom DNS resolver.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Niquests is a simple, yet elegant, HTTP library. It is a drop-in replacement for Requests, which is under feature freeze.",
    "version": "3.6.2",
    "project_urls": {
        "Changelog": "https://github.com/jawah/niquests/blob/main/HISTORY.md",
        "Code": "https://github.com/jawah/niquests",
        "Documentation": "https://niquests.readthedocs.io",
        "Issue tracker": "https://github.com/jawah/niquests/issues"
    },
    "split_keywords": [
        "quic",
        " dns-over-https",
        " dns-over-quic",
        " dns-over-tls",
        " dnssec",
        " doh",
        " doq",
        " dot",
        " http",
        " http client",
        " http/1.1",
        " http/2",
        " http/3",
        " https",
        " multiplexed",
        " ocsp",
        " requests",
        " revocation",
        " tls"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4a0ef3f2bb4c1a6379b033bff30d858a4f3144374c1b2086473d64a95dc40360",
                "md5": "f60c73ccfb3d090222858f2aaeddf4aa",
                "sha256": "7c47ca2c9bfc4983f7d242165d53383a7fe882f861a1f4b23b9331ce45a9e4f2"
            },
            "downloads": -1,
            "filename": "niquests-3.6.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f60c73ccfb3d090222858f2aaeddf4aa",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 114334,
            "upload_time": "2024-05-02T06:27:05",
            "upload_time_iso_8601": "2024-05-02T06:27:05.239900Z",
            "url": "https://files.pythonhosted.org/packages/4a/0e/f3f2bb4c1a6379b033bff30d858a4f3144374c1b2086473d64a95dc40360/niquests-3.6.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "22573a0d5805f84ddfe7918b2c8cba44995a61c482bc5c55650e68767b1c8ce7",
                "md5": "632c78e3591bd41b93eb3aea45224b1b",
                "sha256": "61b755f8d5afcf4e17057e2aeb1662c0dd1dbc5b243a236513853dad9291d048"
            },
            "downloads": -1,
            "filename": "niquests-3.6.2.tar.gz",
            "has_sig": false,
            "md5_digest": "632c78e3591bd41b93eb3aea45224b1b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 520225,
            "upload_time": "2024-05-02T06:27:07",
            "upload_time_iso_8601": "2024-05-02T06:27:07.498150Z",
            "url": "https://files.pythonhosted.org/packages/22/57/3a0d5805f84ddfe7918b2c8cba44995a61c482bc5c55650e68767b1c8ce7/niquests-3.6.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-02 06:27:07",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jawah",
    "github_project": "niquests",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "niquests"
}
        
Elapsed time: 0.25571s