Skip to main content

Ratelimiting for httpx

Project description

httpx-ratelimit

PyPI version

Simple wrapper around PyrateLimiter that adds integration with httpx library

Usage

Using per_* kwargs:
from time import time

from httpx import Client

from httpx_ratelimiter import LimiterTransport

# Apply a rate limit of 5 requests per second to all requests
# if wait time between request will be more than 600ms, raise an BucketFullException
with Client(transport=LimiterTransport(per_second=5, max_delay=600)) as c:
    start = time()
    for _i in range(100):
        print(
            f'[t + {time() - start: .2f}] got response: {c.get("https://httpbin.org/status/200,429")}'
        )
Using custom list of rates
from time import time

from httpx import Client

from httpx_ratelimiter import LimiterTransport
from pyrate_limiter import Limiter, Rate, Duration

# limit 5 requests over 2 seconds and 10 requests over 1 minute
rates = [Rate(5, Duration.SECOND * 2), Rate(10, Duration.MINUTE)]
# if wait time between request will be more than 600ms, silently fail
with Client(transport=LimiterTransport(rates=rates, max_delay=600, raise_when_fail=False)) as c:
    start = time()
    for _i in range(100):
        print(
            f'[t + {time() - start: .2f}] got response: {c.get("https://httpbin.org/status/200,429")}'
        )

Thanks

Thank to original Requests-ratelimiter author for idea and backbone of a project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

httpx_ratelimiter-0.0.6.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

httpx_ratelimiter-0.0.6-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file httpx_ratelimiter-0.0.6.tar.gz.

File metadata

  • Download URL: httpx_ratelimiter-0.0.6.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for httpx_ratelimiter-0.0.6.tar.gz
Algorithm Hash digest
SHA256 30b23e749c3c639e9d4fc3ff35ff883a05c563469b0a2c79b60a13e9c7826931
MD5 1dfe69ecd78cf645029c74b1a534e9c6
BLAKE2b-256 38358912e02d6e09f58bc024657592799abffc69b01c65fcc1fcd1af657f1f7a

See more details on using hashes here.

File details

Details for the file httpx_ratelimiter-0.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for httpx_ratelimiter-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 0b81bb25d4cf5cf9b7a817f93d4df2ed3bd2571f74bfc0701450440285c131ec
MD5 518f773e82aa7293353627ebb2ed2492
BLAKE2b-256 ea9affb494b35cd8e52ec7462afd5f7564afc4b7b769bd4a5c19c5e3d8d9d604

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page