Metadata-Version: 2.4
Name: signalkit
Version: 0.1.2
Summary: Structured, UUID-based signal orchestration utilities for Python using Blinker
Author-email: KMRH47 <kmrh47@pm.me>
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: blinker

# SignalKit

SignalKit is a lightweight utility library that builds on Blinker to provide structured, UUID-based signal-response orchestration.

## Features

- Typed signal events using [Pydantic](https://docs.pydantic.dev/)
- Safe response correlation via request IDs
- Decorators to simplify consistent handler behavior
- High performance, minimal dependencies

## Install

```bash
pip install -e .
```

## Usage Example

```python
from pydantic import BaseModel, Field
import uuid
from signalkit.core import CoolSignal, SignalEvent

class MyEvent(SignalEvent):
    value: str

signal = CoolSignal()

def handler(sender, event: MyEvent):
    if event.value == "hello":
        return "matched!"

signal.connect(handler)
event = MyEvent(value="hello")
result = signal.send(signal, event=event)
print(result)  # "matched!"
```

## Note

SignalKit works with any Pydantic model that has a `request_id` field. For more complex validation and parsing, simply extend `SignalEvent` with your own fields.
