Skip to main content

Universal Notification Service

Universal notification service supporting Slack, Email, Discord, and webhooks for automated reporting.

Features

  • Multi-Channel Support: Slack, Email, Discord, Webhooks, SMS
  • Async Operations: Full async/await support for all notification operations
  • Rich Formatting: Support for emoji, markdown, and channel-specific formatting
  • Batch Processing: Send notifications to multiple recipients efficiently
  • Retry Logic: Intelligent retry mechanisms with exponential backoff
  • Template System: Customizable message templates with variable substitution
  • Rate Limiting: Built-in rate limiting for API compliance
  • Type Safety: Complete type annotations with mypy support

Installation

# Basic installation
pip install yeonjae-universal-notification-service

# With Slack support
pip install yeonjae-universal-notification-service[slack]

# With Email support  
pip install yeonjae-universal-notification-service[email]

# With Discord support
pip install yeonjae-universal-notification-service[discord]

# With all providers
pip install yeonjae-universal-notification-service[all]

Quick Start

import asyncio
from yeonjae_universal_notification_service import (
    NotificationService, NotificationInput, NotificationChannel,
    NotificationConfig, RecipientInfo
)

async def main():
    # Initialize service
    service = NotificationService()
    
    # Configure notification
    config = NotificationConfig(
        channel=NotificationChannel.SLACK,
        channel_id="#dev-reports"
    )
    
    recipient = RecipientInfo(
        developer="John Doe",
        developer_email="john@example.com",
        slack_id="U1234567890"
    )
    
    # Create notification
    notification = NotificationInput(
        summary_report="🎉 Daily development summary ready!",
        notification_config=config,
        recipient_info=recipient
    )
    
    # Send notification
    result = await service.send_notification(notification)
    print(f"Status: {result.send_status}")
    print(f"Message ID: {result.message_id}")

asyncio.run(main())

Configuration

Set your API keys as environment variables:

export SLACK_BOT_TOKEN="xoxb-your-slack-bot-token"
export DISCORD_BOT_TOKEN="your-discord-bot-token"
export SMTP_PASSWORD="your-email-password"

Supported Channels

  • Slack: Rich formatting, mentions, threads, file uploads
  • Email: HTML/Plain text, attachments, templates
  • Discord: Embeds, mentions, webhooks
  • Webhooks: Custom HTTP endpoints with retry logic
  • SMS: Text messages via various providers

License

MIT License

Metadata

Release files for yeonjae-universal-notification-service 1.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yeonjae-universal-notification-service 1.0.5
File Size Uploaded
yeonjae_universal_notification_service-1.0.5.tar.gz 11.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for yeonjae-universal-notification-service 1.0.5
File Interpreter ABI Platform
yeonjae_universal_notification_service-1.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 22.1 kB

Release files / yeonjae_universal_notification_service-1.0.5.tar.gz

Download URL yeonjae_universal_notification_service-1.0.5.tar.gz
Size 11.8 kB
Tags Source
SHA-256 checksum
How to use checksums
8f4045bbbca758fa90a9f7614808108faa24a3b3ce0dfe9e288cc51d92fda079
BLAKE2b-256 checksum
How to use checksums
b9fd2d805a20f3d1197940e1339d7aa18a185ee0440c7d8222d101a1d7599988
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.13

Release files / yeonjae_universal_notification_service-1.0.5-py3-none-any.whl

Download URL yeonjae_universal_notification_service-1.0.5-py3-none-any.whl
Size 10.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9b16cdabb45caddc5574b5accc246e47b01ba383e07dca8c26c150feaec44016
BLAKE2b-256 checksum
How to use checksums
4e4c25ce673e5c4a7ba77a2a1089ba25a25c8dba314d35f37781a78b2a137b09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.13

Release history Release notifications | RSS feed

This release

1.0.5 This release

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page