Skip to main content

ReductStore Client SDK for Python

Project description

ReductStore Client SDK for Python

PyPI PyPI - Downloads GitHub Workflow Status

This package provides an asynchronous HTTP client for interacting with ReductStore in Python.

Features

  • Supports the ReductStore HTTP API v1.14
  • 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",
                                         stop="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.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

reduct_py-1.14.0-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

Details for the file reduct_py-1.14.0-py3-none-any.whl.

File metadata

  • Download URL: reduct_py-1.14.0-py3-none-any.whl
  • Upload date:
  • Size: 19.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for reduct_py-1.14.0-py3-none-any.whl
Algorithm Hash digest
SHA256 be8bfab140e5f90ba87b00956e44423ddd51eba1d446996f308349b632372f4f
MD5 6bfccb4b1ccbe0a114d4105fbd78e1a0
BLAKE2b-256 e8cd229ed1f992d2beee8bcd0907b71be9cbc9e122f81e3c7bcd4854c55b17f1

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 Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page