Current collected state Current
Observed since 20 Oct, 17:10 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
abatcher
Parallel HTTP request batcher with rate limiting, retries, connection pooling, and more.
abatcherSimple parallel HTTP request batcher with rate limiting, retries, connection pooling, and more. The entire API is only 1 function.
Using abatcher should be as simple as:
import abatcher
requests = [
# Simple URL GET request
"https://httpbin.org/anything",
# Custom request
{
"url": "https://httpbin.org/post",
"method": "POST",
"params": {"name": "Test"},
"headers": {"X-Custom": "value"},
},
]
results = abatcher.run(requests)
print(f"Batch requests results: {results}")
If you need more control, you can also send a custom client.
import httpx
import abatcher
custom_client = httpx.AsyncClient(
auth=("user", "pass"),
timeout=httpx.Timeout(45.0),
limits=httpx.Limits(max_connections=100, max_keepalive_connections=20),
)
results = abatcher.run(
requests,
client=custom_client,
max_concurrent=20,
max_per_second=10,
cache=True,
cache_dir="custom_cache",
cache_ttl=3600,
)
print(f"Batch requests results: {results}")
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
aiometerEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | aiometer>=1.0.0 | runtime |
httpxEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | httpx>=0.28.1 | runtime |
tenacityEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | tenacity>=9.1.2 | runtime |
bdist_wheel · 6.17 KB · Python py3
sdist · 5.24 KB · Python source
Observed since 20 Oct, 17:10 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:a35d591ea0f40301a0edeacbdde626a0613abc4e9b12d0c77bd923136b4d72ba