notifiers:一个 Python 库,统一管理所有通知推送
notifiers:一个 Python 库,统一管理所有通知推送
notifiers 在 GitHub 上已经拿到 2,735 Star 了。
这个项目只做一件事:用统一的接口把各种通知渠道串起来。Pushover、Slack、Telegram、Gmail、邮件……二十多家提供商,一行代码就能发消息。不管是做监控报警还是脚本通知,都不用自己挨个对接 API。

1、这玩意儿是干嘛的
平时写脚本或者做服务监控,收到异常时想推一条通知,流程是这样的:先读 Slack API 文档,再读 Telegram Bot 文档,再读邮件 SMTP 配置……每家提供商的接口格式都不一样,有的要 token,有的要 webhook,有的要签名。
notifiers 把这个过程抽象成了一层统一的 Python API。你要做的只有三步:安装、选提供商、发消息。后续想换个渠道?改一个字符串就行,业务代码不用动。
支持的提供商包括 Pushover、SimplePush、Slack、Gmail、Email SMTP、Telegram、Gitter、Pushbullet、Join、Zulip、Twilio、PagerDuty、Mailgun、iCloud 等。

2、为什么不用各家官方 SDK
每个通知提供商都有自己的 Python 包,那为什么要多装一个 notifiers?
一是依赖干净。notifiers 底层只依赖 requests、jsonschema 和 click 三个包,不需要为每个渠道单独装 SDK。二十几个渠道对应的 SDK 全装下来,依赖树会膨胀不少。
二是接口统一。每个新提供商接入后,你现有的代码天然就支持,不需要改调用逻辑。官方 SDK 的 API 设计各不相同,切一次渠道就得重写一次调用代码。
三是测试覆盖。项目对各个提供商的 API 变动做了持续集成,接口行为相对稳定。
3、怎么用
安装很简单:
pip install notifiers
也支持 Homebrew 和 Docker:
brew install notifiers
docker pull liiight/notifiers
Python 里调用的方式有两种。第一种是先获取提供商对象,再发通知:
from notifiers import get_notifier
p = get_notifier('pushover')
p.notify(user='foo', token='bar', message='test')
第二种是直接一行搞定:
from notifiers import notify
notify('pushover', user='foo', token='bar', message='test')
想知道某个提供商需要哪些必填参数?直接查 .required 属性就行:
p = get_notifier('pushover')
p.required
# {'required': ['user', 'message', 'token']}
4、命令行也能用
除了当 Python 库来 import,notifiers 还自带了 CLI:
notifiers pushover notify --user foo --token baz "This is so easy!"
这在 Shell 脚本或者 CI 流水线里直接调通知比较方便,不需要写额外的 Python 脚本。
5、直接接入日志系统
项目还提供了 logging handler,可以把异常自动推送到指定渠道:
import logging
from notifiers.logging import NotificationHandler
log = logging.getLogger(__name__)
defaults = {'token': 'foo', 'user': 'bar'}
hdlr = NotificationHandler('pushover', defaults=defaults)
hdlr.setLevel(logging.ERROR)
log.addHandler(hdlr)
# 触发 error 级别日志时自动推送通知
log.error('出错了,已推送报警')
6、适合哪些场景
做运维监控需要报警推送的开发者、写定时脚本需要异常通知的人、在搭建自动化工作流需要多渠道消息触达的团队,都可以直接拿过来用。API 足够简单,几分钟就能跑通。
项目文档比较全,用 ReadTheDocs 托管,覆盖安装、配置、每个提供商的参数说明和示例。2,700 多 Star 的量级,维护节奏稳定,代码结构清晰,有兴趣的可以直接翻源码。
就能跑通。
项目文档比较全,用 ReadTheDocs 托管,覆盖安装、配置、每个提供商的参数说明和示例。2,700 多 Star 的量级,维护节奏稳定,代码结构清晰,有兴趣的可以直接翻源码。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)