No project description provided
Project description
Overview
This project allows you to execute a list of http operations asynchronously from within an synchronous context.
It does not care whether you should do this. It simply allows you to do so if you desire.
Installing
The package is available via pip.
pip install loamy
If you're not on Windows, install the uvloop extra to increase performance.
pip install "loamy[uvloop]"
Usage
The package can be imported as shown:
from loamy.session import Clump, RequestMap, RequestResponse
Class | Description |
---|---|
Clump |
Container object that stores collection of requests (type RequestMap) to send |
RequestMap |
Container object that stores all info about an individual request to send |
RequestResponse |
Container object that stores the request response and any exception raised for each individual request |
Example
# Create RequestMap objects
req1 = RequestMap(
url="https://baconipsum.com/api",
http_op="GET",
query_params={"type": "meat-and-filler", "format": "json"},
)
req2 = RequestMap(
url="https://baconipsum.com/api",
http_op="GET",
query_params={"type": "all-meat", "format": "json"},
)
req3 = RequestMap(
url="https://baconipsum.com/api",
http_op="GET",
query_params={"type": "meat-and-filler", "format": "json"},
)
# Create Clump and call send_requests()
session = Clump(requests=[req1, req2, req3])
responses: list[RequestResponse] = session.send_requests(return_exceptions=True)
# Handle responses for individual requests
for resp in responses:
http_verb = resp.request_map.http_op
print(f"Evaluating response for {http_verb} request to {resp.request_map.url}")
if resp.error is not None:
print("Exception raised for request")
else:
print(f"Status Code: {resp.status_code}")
if resp.body is not None:
print(resp.body)
RequestMap Class
class RequestMap(msgspec.Struct):
url: str
http_op: Literal["GET", "POST", "PUT", "PATCH", "OPTIONS", "DELETE"]
body: dict | None = None
query_params: dict[str, str] | None = None
headers: dict[str, str] | None = None
RequestResponse Class
class RequestResponse(msgspec.Struct):
request_map: RequestMap
status_code: int
body: dict | None = None
error: BaseException | None = None
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
loamy-0.0.5.tar.gz
(3.9 kB
view details)
Built Distribution
loamy-0.0.5-py3-none-any.whl
(4.2 kB
view details)
File details
Details for the file loamy-0.0.5.tar.gz
.
File metadata
- Download URL: loamy-0.0.5.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8cd7e51e59605f5341df6a477a0bb96f397941dd5fe8fd3f123c8976765a731f |
|
MD5 | 96f4a6d31b2dde67d8f7a8450cd9cccf |
|
BLAKE2b-256 | 0d57604b91919785c82389f5af2e419ed685bd6adde4532f45038cd9f4519cb3 |
File details
Details for the file loamy-0.0.5-py3-none-any.whl
.
File metadata
- Download URL: loamy-0.0.5-py3-none-any.whl
- Upload date:
- Size: 4.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f06203ac1906696719f34b710018a57c9a382865fd7e52f5120c357d4bbf260 |
|
MD5 | b9eca7d39edcdf67d03c4eb277ea869c |
|
BLAKE2b-256 | 9430fca8e9630d7862ad8d71f1ad5e55a6fa58458736ce9a6b27881778646865 |