ReductStore Client SDK for Python
This package provides an asynchronous HTTP client for interacting with ReductStore in Python.
Features
- Supports the ReductStore HTTP API v1.13
- Bucket management
- API Token management
- Write, read and query data
- Labeling records
- Batching records for read and write operations
- Subscription
- Replication management
Install
To install this package, run the following command:
pip install reduct-py
Example
Here is an example of how to use this package to create a bucket, write data to it, and read data from it:
from reduct import Client, BucketSettings, QuotaType
async def main():
# 1. Create a ReductStore client
async with Client("http://localhost:8383", api_token="my-token") as client:
# 2. Get or create a bucket with 1Gb quota
bucket = await client.create_bucket(
"my-bucket",
BucketSettings(quota_type=QuotaType.FIFO, quota_size=1_000_000_000),
exist_ok=True,
)
# 3. Write some data with timestamps in the 'entry-1' entry
await bucket.write("sensor-1", b"<Blob data>",
timestamp="2024-01-01T10:00:00Z",
labels={"score": 10})
await bucket.write("sensor-1", b"<Blob data>",
timestamp="2024-01-01T10:00:01Z",
labels={"score": 20})
# 4. Query the data by time range and condition
async for record in bucket.query("sensor-1",
start="2024-01-01T10:00:00Z",
end="2024-01-01T10:00:02Z",
when={"&score": {"$gt": 10}}):
print(f"Record timestamp: {record.timestamp}")
print(f"Record size: {record.size}")
print(await record.read_all())
# 5. Run the main function
if __name__ == "__main__":
import asyncio
asyncio.run(main())
For more examples, see the Guides section in the ReductStore documentation.
Links
Modules
📄️ Client Module
API reference for the Client Module Module of the ReductStore Client SDK for Python.
📄️ Bucket Module
API reference for the Bucket Module Module of the ReductStore Client SDK for Python.
📄️ Record Module
API reference for the Record Module Module of the ReductStore Client SDK for Python.
📄️ Error Module
API reference for the Error Module Module of the ReductStore Client SDK for Python.
🗃️ Messages
4 items