Python SDK for Antonnia Events and Webhooks
Project description
Antonnia Events
Python SDK for Antonnia Events and Webhooks
Overview
The antonnia-events package provides type-safe event definitions for Antonnia webhook events. It's part of the Antonnia Python SDK ecosystem and works seamlessly with other Antonnia packages.
Installation
pip install antonnia-events
Note: This package has a dependency on antonnia-conversations for the underlying data types.
Quick Start
from antonnia.events import Event, MessageCreated, SessionCreated
# Parse webhook events
def handle_webhook(event_data: dict):
event = Event.model_validate(event_data)
if isinstance(event, MessageCreated):
print(f"New message: {event.data.object.id}")
elif isinstance(event, SessionCreated):
print(f"New session: {event.data.object.id}")
Event Types
Available Events
MessageCreated- Fired when a new message is createdSessionCreated- Fired when a new session is createdSessionFinished- Fired when a session is finishedSessionTransferred- Fired when a session is transferred
Event Structure
All events inherit from EventBase and have this structure:
{
"id": "event_123",
"created_at": "2023-12-01T12:00:00Z",
"type": "message.created",
"data": {
"object": {
# The actual Message or Session object
}
}
}
Usage with Frameworks
FastAPI
from fastapi import FastAPI
from antonnia.events import Event
app = FastAPI()
@app.post("/webhook")
async def handle_webhook(event: Event):
# Event is automatically validated and parsed
return {"status": "received"}
Flask
from flask import Flask, request
from antonnia.events import Event
app = Flask(__name__)
@app.route("/webhook", methods=["POST"])
def handle_webhook():
event = Event.model_validate(request.json)
# Handle the event
return {"status": "received"}
Type Safety
The package provides full type safety with discriminated unions:
from antonnia.events import Event, MessageCreated
def process_event(event: Event):
# Type checker knows the event type based on isinstance check
if isinstance(event, MessageCreated):
# event.data.object is typed as Message
message = event.data.object
print(f"Message content: {message.content}")
Development
Installing for Development
pip install -e .[dev]
Running Tests
pytest
Code Formatting
black .
isort .
Type Checking
mypy .
License
MIT License - see LICENSE file for details.
Related Packages
antonnia-conversations- Conversations API client- More Antonnia packages coming soon!
Support
For support, please visit https://antonnia.com/support or create an issue in our GitHub repository.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file antonnia_events-1.0.6.dev1.tar.gz.
File metadata
- Download URL: antonnia_events-1.0.6.dev1.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd6b3e736bc77192a4158f4d1c16bb311d9ad7e6ae8272107f4e882b6cc3b030
|
|
| MD5 |
7926cf38689cff53c9bd77e3a3913679
|
|
| BLAKE2b-256 |
fcffdaf8ef698de8a855d7e3e216a3e374811ef4721d8c52b063b3f5528bb469
|
File details
Details for the file antonnia_events-1.0.6.dev1-py3-none-any.whl.
File metadata
- Download URL: antonnia_events-1.0.6.dev1-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a1dc3ef7bbf766618c76aae2ded2921f646fe09733731de1ba371fa5ed9d04e
|
|
| MD5 |
f81cc9df98c27df31e6c2544a85e4172
|
|
| BLAKE2b-256 |
19453ec29fe19236fca2f5ffdc243da42e2371f5aadfa7d17b18a999b91b4c94
|