Metadata-Version: 2.4
Name: ds-event-stream-py-sdk
Version: 0.1.0a1
Summary: A Python package from the DS library collection
Author-email: Kristoffer Varslott <hello@grasplabs.com>
Maintainer-email: Kristoffer Varslott <hello@grasplabs.com>
License-Expression: Apache-2.0
Project-URL: Documentation, https://grasp-labs.github.io/ds-event-stream-py-sdk/
Project-URL: Repository, https://github.com/grasp-labs/ds-event-stream-py-sdk/
Project-URL: Issues, https://github.com/grasp-labs/ds-event-stream-py-sdk/issues/
Project-URL: Changelog, https://github.com/grasp-labs/ds-event-stream-py-sdk/releases
Keywords: ds,kafka,python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE-APACHE
Requires-Dist: confluent-kafka>=2.10.1
Requires-Dist: ds-common-logger-py-lib<1.0.0,>=0.1.0-alpha.5
Requires-Dist: ds-common-serde-py-lib<1.0.0,>=0.1.0-alpha.3
Provides-Extra: dev
Requires-Dist: ruff>=0.1.8; extra == "dev"
Requires-Dist: mypy>=1.7.0; extra == "dev"
Requires-Dist: pytest>=7.4.0; extra == "dev"
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
Requires-Dist: pytest-xdist>=3.3.0; extra == "dev"
Requires-Dist: pre-commit>=3.6.0; extra == "dev"
Requires-Dist: build>=1.0.0; extra == "dev"
Requires-Dist: twine>=4.0.0; extra == "dev"
Requires-Dist: sphinx>=7.1.0; extra == "dev"
Requires-Dist: sphinx-autoapi>=3.0.0; extra == "dev"
Requires-Dist: sphinx-material>=0.0.35; extra == "dev"
Requires-Dist: types-confluent-kafka>=1.4.0; extra == "dev"
Requires-Dist: bandit>=1.7.0; extra == "dev"
Provides-Extra: test
Requires-Dist: pytest>=7.4.0; extra == "test"
Requires-Dist: pytest-cov>=4.1.0; extra == "test"
Requires-Dist: pytest-xdist>=3.3.0; extra == "test"
Requires-Dist: types-confluent-kafka>=1.4.0; extra == "test"
Provides-Extra: docs
Requires-Dist: sphinx>=7.1.0; extra == "docs"
Requires-Dist: sphinx-autoapi>=3.0.0; extra == "docs"
Requires-Dist: sphinx-material>=0.0.35; extra == "docs"
Dynamic: license-file

# ds-event-stream-py-sdk

A Python package from the DS Event Stream Python SDK.

## Installation

Install the package using pip:

```bash
pip install ds-event-stream-py-sdk
```

Or using uv (recommended):

```bash
uv pip install ds-event-stream-py-sdk
```

## Quick Start

```python
from ds_event_stream_py_sdk import __version__

print(f"ds-event-stream-py-sdk version: {__version__}")
```

## Features

- Kafka producer
- Kafka consumer
- Event stream model

## Usage

```python
import logging
from uuid import uuid4

from ds_common_logger_py_lib import Logger
from ds_event_stream_py_sdk.errors import ProducerError
from ds_event_stream_py_sdk.models.v1 import EventStream
from ds_event_stream_py_sdk.producer import KafkaProducer

Logger.configure(level=logging.DEBUG)
logger = Logger.get_logger(__name__)


producer = KafkaProducer(
    bootstrap_servers="b0.dev.kafka.ds.local:9095",
    sasl_username="ds.test.producer.v1",
    sasl_password="",
    timeout=5.0,
)

event = EventStream(
    session_id=uuid4(),
    tenant_id=uuid4(),
    event_type="example.event",
    event_source="examples",
    created_by="John Doe",
    payload={"hello": "world"},
)
producer.send_message(
    topic="ds.test.message.created.v1",
    message=event,
    key=str(event.session_id),
    timeout=5.0,
)
```

## Requirements

- Python 3.10 or higher
- ds-common-logger-py-lib
- ds-common-serde-py-lib
- confluent-kafka

## Documentation

Full documentation is available at:

- [GitHub Repository](https://github.com/grasp-labs/ds-event-stream-py-sdk)
- [Documentation Site](https://grasp-labs.github.io/ds-event-stream-py-sdk/)

## Development

To contribute or set up a development environment:

```bash
# Clone the repository
git clone https://github.com/grasp-labs/ds-event-stream-py-sdk.git
cd ds-event-stream-py-sdk

# Install development dependencies
uv sync --all-extras --dev

# Run tests
make test
```

See the [README](https://github.com/grasp-labs/ds-event-stream-py-sdk#readme)
for more information.

## License

This package is licensed under the Apache License 2.0.
See the [LICENSE-APACHE](https://github.com/grasp-labs/ds-event-stream-py-sdk/blob/main/LICENSE-APACHE)
file for details.

## Support

- **Issues**: [GitHub Issues](https://github.com/grasp-labs/ds-event-stream-py-sdk/issues)
- **Releases**: [GitHub Releases](https://github.com/grasp-labs/ds-event-stream-py-sdk/releases)
