Notihub is a Python library to manage and use different notification services.
Project description
NotiHub - Plug-and-Play Notification Library
A unified, plug-and-play solution for sending notifications through various providers.
Introduction
NotiHub is a Python library designed to manage and use different notification services through a unified, plug-and-play interface. The library's core philosophy centers around providing a consistent abstraction layer over various notification providers, allowing developers to switch between services or use multiple providers simultaneously with minimal code changes.
Why NotiHub?
The plug-and-play design philosophy of NotiHub offers several key benefits:
- Consistency: All notification providers implement the same interface, ensuring consistent behavior across different services.
- Flexibility: Easy to add new notification providers or switch between existing ones without changing application code.
- Maintainability: Centralized configuration and error handling reduces code duplication.
- Extensibility: Simple to extend functionality for new notification channels or providers.
- Testability: Consistent interfaces make unit testing straightforward and provider-agnostic.
Quick Start
Install NotiHub using pip:
pip install notihub
Basic usage with AWS:
from notihub.client import NotifierClient
# Initialize AWS notifier
aws_notifier = NotifierClient.get_aws_notifier(
aws_access_key_id="your_access_key",
aws_secret_access_key="your_secret_key",
region_name="us-east-1"
)
# Send SMS via AWS SNS
aws_notifier.send_sms_notification(
phone_number="+1234567890",
message="Hello from NotiHub!"
)
Core Concepts
BaseNotifier Abstract Class
The BaseNotifier abstract class serves as the foundation for all notification providers in NotiHub. It defines the standard interface that all notifiers must implement, ensuring consistency across different services.
All notifiers in NotiHub inherit from the BaseNotifier abstract class, which defines three core methods:
send_sms_notification(): For sending SMS messagessend_email_notification(): For sending email notificationssend_push_notification(): For sending push notifications
This abstraction allows developers to write code that works with any supported notification provider without modification.
Supported Notifiers
NotiHub currently supports the following notification providers:
AWS Notifier
The AWS notifier provides integration with multiple AWS services:
- Amazon SNS: For SMS and push notifications
- Amazon SES: For email notifications
- Amazon Pinpoint: For advanced messaging capabilities
Twilio Notifier
The Twilio notifier provides integration with Twilio's communication platform, primarily focused on SMS messaging.
Further Documentation
For complete documentation, including installation instructions, usage examples, API references, and detailed configuration guides, please visit our Read the Docs documentation.
Contributing
We welcome contributions to NotiHub! Whether you're fixing bugs, adding new features, or improving documentation, your help is appreciated.
Please see our full contributing guidelines for details on our development workflow, code style guidelines, and how to add new providers.
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 notihub-0.1.8rc0.tar.gz.
File metadata
- Download URL: notihub-0.1.8rc0.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17d5a61fbdc77eeff8d60917c14c24255ed3c89ae7cc231f9165a604fd4d4003
|
|
| MD5 |
54d7cfe5ff94a506709856c5e5bb7c03
|
|
| BLAKE2b-256 |
c4723f750fdd98bfe4570251111ad6ff207edacbeb4cd2d080b4016401537640
|
File details
Details for the file notihub-0.1.8rc0-py3-none-any.whl.
File metadata
- Download URL: notihub-0.1.8rc0-py3-none-any.whl
- Upload date:
- Size: 13.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
458e4a52a98e3b7e684e91397c2a19d957531722a2b261e8380ce4b32495f8e5
|
|
| MD5 |
13497ab8a8aeb4ed9337f6e07239dc3f
|
|
| BLAKE2b-256 |
9bab33bd71d1e0c130e455f4951d5e633aa8318aacf0cb2a58525a2fbd3cfcea
|