spacepaste

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
>>> from twisted.internet.defer import Deferred
>>> 
>>> def whoisit(d):
...     for cb,eb in d.callbacks:
...         func, arg, kwarg = cb
...         args = ['...']
...         args.extend([repr(x) for x in arg])
...         args.extend(['%s=%r'%(k,v) for k,v in kwarg.items()])
...         yield '%s.%s(%s)' % (
...             func.__module__,
...             func.func_name,
...             ','.join(args),
...         )
... 
>>> 
>>> d = Deferred()
>>> def foo(result, arg1):
...     return result + arg1
... 
>>> 
>>> def bar(result, arg1):
...     return result - arg1
... 
>>> 
>>> d.addCallback(foo, 2)
<Deferred at 0x3d6af8>
>>> d.addCallback(bar, 3)
<Deferred at 0x3d6af8>
>>> print '<Deferred at 0x%x %s>' % (id(d), ' -> '.join(whoisit(d)))
<Deferred at 0x3d6af8 __main__.foo(...,2) -> __main__.bar(...,3)>