Metadata-Version: 2.4
Name: scitrera-rt-data
Version: 0.0.2
Summary: Utilities for real-time data applications
Author: Scitrera LLC
License: BSD-3-Clause
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas
Requires-Dist: pytz
Requires-Dist: python-dateutil
Requires-Dist: scitrera-app-framework
Requires-Dist: tenacity
Provides-Extra: redis
Requires-Dist: redis[hiredis]>=4.0.0; extra == "redis"
Requires-Dist: msgpack>=1.0.0; extra == "redis"
Provides-Extra: sql
Requires-Dist: SQLAlchemy>=2.0.0; extra == "sql"
Requires-Dist: asyncpg>=0.27.0; extra == "sql"
Provides-Extra: rmq
Requires-Dist: rstream; extra == "rmq"
Requires-Dist: msgpack>=1.0.0; extra == "rmq"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-asyncio; extra == "dev"
Provides-Extra: all
Requires-Dist: redis[hiredis]>=4.0.0; extra == "all"
Requires-Dist: SQLAlchemy>=2.0.0; extra == "all"
Requires-Dist: asyncpg>=0.27.0; extra == "all"
Requires-Dist: msgpack>=1.0.0; extra == "all"
Requires-Dist: rstream; extra == "all"
Dynamic: license-file

# scitrera-rt-data

Various utilities to support various data applications, including key-value stores, locks, serialization, and SQL helpers.

## Features

- **Key-Value Stores**: Redis compatible data stores (and In-Memory implementations for tests).
- **TKVT (Topic-Key-Value-Timestamp)**: A common abstraction over Kafka-like streams (Kafka, RabbitMQ Streams, Redis Streams, etc.) providing a unified interface for stream-based data.
- **Locks**: Distributed locks using Redis (and In-Process locks for tests).
- **SQL Utilities**: Helpers for SQLAlchemy and asyncpg.
- **Serialization**: Quick and dirty serialization/deserialization support for JSON, Msgpack, and Pickle.
- **Date/Time Utilities**: Convenient wrappers around Pandas, pytz, and dateutil. The pandas Timestamp is the considered the authoritative datetime type--and various functions help convert between it and other formats.

## Installation

```bash
pip install scitrera-rt-data
```

For specific features, you can install extras:

```bash
pip install scitrera-rt-data[redis]
pip install scitrera-rt-data[sql]
pip install scitrera-rt-data[rmq]
pip install scitrera-rt-data[all]
```

## License

3-Clause BSD License. See [LICENSE](LICENSE) for details.
