一个简单的django.dispatch分支,用作独立的pubsub库。

Paperbo的Python项目详细描述


一个简单的django.dispatch叉,用作独立的Python 公共图书馆。

使用

报童的dispatch可以与django的相同使用;它们是 基本上是一样的。

“信号调度器”帮助分离的应用程序相互通知 事件。例如,库可以调用 独立的应用程序,而没有为它们编程,以及 无需扩展或修补库signal通知 代表发送方通过dispatcher注册了receivers

例如,假设我们有一个披萨递送库。它的工作只是 与披萨递送互联网API进行通信;而不是编程 单用户通知管道,此库的开发人员希望 向订阅的接收者发送已发送比萨饼的信号:

from dispatch import Signal

delivered = Signal(providing_args=['parlor'])

当得知披萨已经送到时,图书馆可以 发送此信号:

class PizzaAPI(object):

    def check(self):
        response = self.get_response()
        if response.status == 'delivered':
            delivered.send(sender=self, parlor=response.parlor)

但是,如果周围没有人接收信号,信号就没有多大用处。 使用披萨递送库的应用程序可以注册 通过他们打算接收的信号与调度员联系的接收器:

delivered.connect(popup_window)

或者使用receiverdecorator:

from dispatch import receiver

@receiver(delivered)
def popup_window(sender, parlor, **kws):
    ...

Django’s documentation 更多信息。

配置

报童的dispatch已准备好使用但是,它的Signal,如 django遵循一种调试模式,在这种模式下,将检查接收器 连接时Paperboy不提供 它自己的,但是您可以简单地配置它,如下例所示。

全球范围:

from dispatch import Signal
Signal.debug = True

按应用程序:

from dispatch import Signal

class AtariSignal(Signal):

    debug = True

随着技术的日益成熟:

from dispatch import Signal
from atari.conf import settings

class AtariSignal(Signal):

    @property
    def debug(self):
        return settings.DEBUG

安装

使用pip等安装工具:

pip install Paperboy

来源:

python setup.py install

运行测试

通过setup.py文件:

python setup.py test

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java置换相关算法   在Java中读取/打开文本文件   java为什么这段代码不适用于CodeEval?   java如何将日历转换为JSON   从txt文件中读取字符串并将其存储到java中的字符数组中   字符编码Java ResourceBundles umlauts搞砸了   java为什么hashmap会根据总大小而不是填充的存储桶调整大小   java如何将Excel单元格中的数字字符串读取为字符串(而不是数字)?   java Guava的LocalCache无法使用,为什么?   java有没有办法强制JVM在单个处理器或内核上运行   java Eclipse不安装软件   将字节转换为java字符串(可能是汉字)   Java正则表达式:提取函数名   JavaTestNG:如何从多个类中指定测试方法顺序?