Coverage for src/lexigram/notification/__init__.py: 100%
22 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-26 02:26 +0800
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-26 02:26 +0800
1"""lexigram-notification — SMS, push, email, and user inbox with Named DI multi-backend support."""
3from __future__ import annotations
5from typing import TYPE_CHECKING
7from lexigram.contracts.notification.errors import NotificationError
8from lexigram.contracts.notification.inbox import InboxMessage, InboxStoreProtocol
9from lexigram.contracts.notification.protocols import (
10 PushChannelProtocol,
11 SMSChannelProtocol,
12)
13from lexigram.contracts.notification.types import PushMessage, SMSMessage
14from lexigram.notification.backends.push import WebPushChannel
15from lexigram.notification.config import (
16 APNsDriverConfig,
17 FCMDriverConfig,
18 InboxConfig,
19 MailerConfig,
20 NamedMailerConfig,
21 NamedPushConfig,
22 NamedSMSConfig,
23 NotificationConfig,
24 SendGridDriverConfig,
25 SMTPDriverConfig,
26 TwilioDriverConfig,
27 WebPushDriverConfig,
28)
29from lexigram.notification.constants import __version__
30from lexigram.notification.events import (
31 EmailBouncedEvent,
32 EmailSentEvent,
33 InboxMessageCreatedEvent,
34 InboxMessageReadEvent,
35 NotificationFailedEvent,
36 NotificationSentEvent,
37)
38from lexigram.notification.exceptions import (
39 APNsNotificationError,
40 FCMNotificationError,
41 InboxError,
42 InboxMessageNotFoundError,
43 InboxPermissionError,
44 SendGridMailerError,
45 SMTPMailerError,
46 TwilioNotificationError,
47 WebPushNotificationError,
48)
49from lexigram.notification.hooks import (
50 NotificationFailedHook,
51 NotificationSentHook,
52)
53from lexigram.notification.inbox.database import DatabaseInboxStore
54from lexigram.notification.inbox.memory import InMemoryInboxStore
55from lexigram.notification.inbox.service import InboxService
56from lexigram.notification.mailer.mailable import Mailable
57from lexigram.notification.mailer.retrying_mailer import RetryingMailer
58from lexigram.notification.mailer.sendgrid_mailer import SendGridMailer
59from lexigram.notification.mailer.smtp_mailer import SMTPMailer
60from lexigram.notification.module import NotificationModule
61from lexigram.notification.protocols import (
62 InboxStoreProtocol,
63 MailerProtocol,
64 PushChannelProtocol,
65 SMSChannelProtocol,
66)
68__all__ = [
69 "APNsDriverConfig",
70 "APNsNotificationError",
71 "DatabaseInboxStore",
72 "EmailBouncedEvent",
73 "EmailSentEvent",
74 "FCMDriverConfig",
75 "FCMNotificationError",
76 "InMemoryInboxStore",
77 "InboxConfig",
78 "InboxError",
79 "InboxMessage",
80 "InboxMessageCreatedEvent",
81 "InboxMessageNotFoundError",
82 "InboxMessageReadEvent",
83 "InboxPermissionError",
84 "InboxService",
85 "InboxStoreProtocol",
86 "Mailable",
87 "MailerConfig",
88 "MailerProtocol",
89 "NamedMailerConfig",
90 "NamedPushConfig",
91 "NamedSMSConfig",
92 "NotificationConfig",
93 "NotificationError",
94 "NotificationFailedEvent",
95 "NotificationFailedHook",
96 "NotificationModule",
97 "NotificationSentEvent",
98 "NotificationSentHook",
99 "PushChannelProtocol",
100 "PushMessage",
101 "RetryingMailer",
102 "SMSChannelProtocol",
103 "SMSMessage",
104 "SMTPDriverConfig",
105 "SMTPMailer",
106 "SMTPMailerError",
107 "SendGridMailer",
108 "SendGridMailerError",
109 "TwilioDriverConfig",
110 "TwilioNotificationError",
111 "WebPushChannel",
112 "WebPushDriverConfig",
113 "WebPushNotificationError",
114 "__version__",
115]