Skip to main content

一个简单可扩展的异步消息通知库

Project description

一个简单可扩展的异步消息通知库

Package version Supported Python versions

安装

pip install use-notify

使用

from use_notify import useNotify, useNotifyChannel

notify = useNotify()
notify.add(
    # 添加多个通知渠道
    useNotifyChannel.Bark({"token": "xxxxxx"}),
    useNotifyChannel.Ding({
        "token": "xxxxx",
        "at_all": True
    })
)

notify.publish(title="消息标题", content="消息正文")

动态凭据

token 等凭据字段可以传入字符串,也可以传入无参数函数。发送时会解析函数返回值,适合把刷新、缓存逻辑放在业务侧:

useNotifyChannel.Bark({"token": lambda: get_current_bark_token()})

库只负责发送前读取当前凭据,不内置各平台 OAuth 或后台刷新线程。

装饰器使用(推荐)

使用 @notify 装饰器可以自动为函数执行发送通知:

from use_notify import useNotify, useNotifyChannel, notify, set_default_notify_instance

# 创建并设置当前执行上下文的默认通知实例
default_notify = useNotify()
default_notify.add(
    useNotifyChannel.Bark({"token": "your_bark_token"}),
    useNotifyChannel.Ding({"token": "your_ding_token"})
)
set_default_notify_instance(default_notify)

# 现在可以直接使用装饰器,无需传递 notify_instance
@notify()
def data_processing():
    # 数据处理逻辑
    return "数据处理完成"

@notify(title="重要任务")
def important_task():
    # 重要任务逻辑
    return "重要任务完成"

@notify(notify_on_error=True, notify_on_success=False)
def risky_operation():
    # 只在出错时通知
    if some_condition:
        raise Exception("操作失败")
    return "操作成功"

# 异步函数支持
@notify()
async def async_task():
    await some_async_operation()
    return "异步任务完成"

装饰器特性:

  • ✅ 自动发送成功/失败通知
  • ✅ 支持同步和异步函数
  • ✅ 可配置通知条件和自定义消息
  • ✅ 默认实例机制,简化使用
  • ✅ 执行上下文信息收集

📖 详细文档: 装饰器完整使用指南

支持的消息通知渠道列表

  • Wechat(企微)
  • Ding(钉钉)
  • Bark
  • Email
  • Chanify
  • PushDeer
  • PushOver
  • FeiShu(飞书)
  • Ntfy

自己开发消息通知

from use_notify import useNotifyChannel


class Custom(useNotifyChannel.BaseChannel):
    """自定义消息通知"""

    def send(self, content, title=None):
        ...

    async def send_async(self, content, title=None):
        ...

更多示例

文档

Agent Skill

  • Installable skill package: SKILL.md + skill-references/
  • Purpose: help AI coding agents generate correct use-notify integration snippets, choose channels, and troubleshoot retry/error behavior

特性

  • 🚀 简单易用: 几行代码即可集成多种通知渠道
  • 🔄 异步支持: 完整的异步/同步双模式支持
  • 🎯 装饰器模式: 使用 @notify 装饰器自动化通知
  • 🔧 高度可扩展: 轻松添加自定义通知渠道
  • 📱 多渠道支持: 支持微信、钉钉、Bark、邮件等多种通知方式
  • ⚙️ 灵活配置: 支持条件通知、自定义模板、默认实例、超时与重试等高级功能

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

use_notify-0.4.0.tar.gz (17.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

use_notify-0.4.0-py3-none-any.whl (27.2 kB view details)

Uploaded Python 3

File details

Details for the file use_notify-0.4.0.tar.gz.

File metadata

  • Download URL: use_notify-0.4.0.tar.gz
  • Upload date:
  • Size: 17.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for use_notify-0.4.0.tar.gz
Algorithm Hash digest
SHA256 71a4be16bf1b1f8eb3fab70a7498696eaf6fad8897c539d59aa7a0adfdaea439
MD5 83b5f6954f79ea2f2736d41dc1f2c077
BLAKE2b-256 67aec46557d89ed7fa953ff1d42cd74fad913a12bea7a7b2abe1599a688158b9

See more details on using hashes here.

File details

Details for the file use_notify-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: use_notify-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 27.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for use_notify-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d720d4e62851b0f9058d785f741e20ef3fd7da217a16e8801790cf26e78c3896
MD5 5aec62cfa471d52fda50d4d70bbdebfa
BLAKE2b-256 1d09175dd3363b0e7aaff6459da2f1ff076d27d0cb1df621942f586e9a5d8e56

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page