简单蟒蛇事件信号
smokesignal的Python项目详细描述
#SmokeSignal-简单的python信令
[![构建状态](https://travis ci.org/shaunduncan/smokesignal.png)(https://travis ci.org/shaunduncan/smokesignal)
`smokesignal`是一个简单的python库,用于发送和接收信号。
它从django信号框架中获得了一些灵感,但它是一个通用的变体。
`包括使用"on"注册单个可响应信号的调用,并使用"emit"发送信号。
此方法还接受一个可选参数"max_calls",该参数
指示回调响应发出信号的最大次数:
``python
@smokesignal.on('foo')
def my_callback():
pass
@smokesignal.on('foo',max_ calls=2)
def my_callback():
pass
`````
esignal
@smokesignal.once('foo')
def my_u callback():
pass
`````
`````发送信号
使用"emit"将信号发送到所有注册的回调。此方法可选地接受直接传递给每个回调的
参数和关键字参数列表:
``python
import smokesignal
参数smokesignal.emit('foo',1,2,3,four=4)
````
默认情况下,此上下文
manager接受一个参数,该参数是上下文管理器退出后发送的信号。但是,
您可以为"enter"和"exit"提供关键字参数,这些参数将在
上下文管理器的以下位置发送:
``python
import smokesignal
在带有SmokeSignal.emission(enter='foo',exit='bar')的退出时提交:
通过
`````
ect`如果您打算删除所有这些函数:
``python
import smokesignal
myu回调将不再响应signals
smokesignal.disconnect(myu回调)
myu回调将不再响应foo,但可能会向其他方发送smokesignal.disconnecty_callback,"foo")
```
对于特定的信号
smokesignal.clear('foo')
某种信号。"signals"和"response"可用于此目的。请注意,注册回调以响应
信号还将创建回调的可调用属性,以便于交互
wi这些方法:
``python
``python
``获取回调响应
smokesignsignal.signals(我的回调函数)的所有信号的元组
`;检查回调是否响应信号
smokesignsignal.signals(我的回调函数‘foo’)
`
``或者作为回调函数的属性
`
``python
`;获取回调响应
` `
乙r/>
但是,
这不起作用,因为在注册回调
以响应信号时不知道类实例:
``python
import smokesignal
如果希望实例方法响应回调,则re是一个解决方法:
`` python
导入smokesignal
foo类(对象):
def初始(self,*args,**kwargs):
smokesignal.on('bar,self.callback)
super(foo,self)。\uu初始(args,**kwargs)
def回调(self):
通过
```
上述操作将注册回调,而不需要任何参数,但也将
确保正确调用预期的回调方法。
对于所有信号
<<<0.2
-添加了"Ememitting ` Emitting `上下文管理器
-更新的内部不再需要装饰魔法来强制最大呼叫计数
<0.1
-初始版本
-初始版本
根据条款授权是麻省理工学院的执照。
[![构建状态](https://travis ci.org/shaunduncan/smokesignal.png)(https://travis ci.org/shaunduncan/smokesignal)
`smokesignal`是一个简单的python库,用于发送和接收信号。
它从django信号框架中获得了一些灵感,但它是一个通用的变体。
`包括使用"on"注册单个可响应信号的调用,并使用"emit"发送信号。
此方法还接受一个可选参数"max_calls",该参数
指示回调响应发出信号的最大次数:
``python
@smokesignal.on('foo')
def my_callback():
pass
@smokesignal.on('foo',max_ calls=2)
def my_callback():
pass
esignal
@smokesignal.once('foo')
def my_u callback():
pass
`````
`````发送信号
使用"emit"将信号发送到所有注册的回调。此方法可选地接受直接传递给每个回调的
参数和关键字参数列表:
``python
import smokesignal
参数smokesignal.emit('foo',1,2,3,four=4)
````
默认情况下,此上下文
manager接受一个参数,该参数是上下文管理器退出后发送的信号。但是,
您可以为"enter"和"exit"提供关键字参数,这些参数将在
上下文管理器的以下位置发送:
``python
import smokesignal
在带有SmokeSignal.emission(enter='foo',exit='bar')的退出时提交:
通过
`````
ect`如果您打算删除所有这些函数:
``python
import smokesignal
myu回调将不再响应signals
smokesignal.disconnect(myu回调)
myu回调将不再响应foo,但可能会向其他方发送smokesignal.disconnecty_callback,"foo")
```
对于特定的信号
smokesignal.clear('foo')
某种信号。"signals"和"response"可用于此目的。请注意,注册回调以响应
信号还将创建回调的可调用属性,以便于交互
wi这些方法:
``python
``python
``获取回调响应
smokesignsignal.signals(我的回调函数)的所有信号的元组
`;检查回调是否响应信号
smokesignsignal.signals(我的回调函数‘foo’)
`
``或者作为回调函数的属性
`
``python
`;获取回调响应
` `
乙r/>
但是,
这不起作用,因为在注册回调
以响应信号时不知道类实例:
``python
import smokesignal
如果希望实例方法响应回调,则re是一个解决方法:
`` python
导入smokesignal
foo类(对象):
def初始(self,*args,**kwargs):
smokesignal.on('bar,self.callback)
super(foo,self)。\uu初始(args,**kwargs)
def回调(self):
通过
```
上述操作将注册回调,而不需要任何参数,但也将
确保正确调用预期的回调方法。
对于所有信号
<<<0.2
-添加了"Ememitting ` Emitting `上下文管理器
-更新的内部不再需要装饰魔法来强制最大呼叫计数
<0.1
-初始版本
-初始版本
根据条款授权是麻省理工学院的执照。