Pyjo.EventEmitter - Event emitter base class¶
import Pyjo.EventEmitter
class Cat(Pyjo.EventEmitter.object):
# Emit events
def poke(self, times):
self.emit('roar', 3)
# Subscribe to events
tiger = Cat.new()
@tiger.on
def road(cat, times):
for _ in range(0, times):
print('RAWR!')
tiger.poke()
Pyjo.EventEmitter
is a simple base class for event emitting objects.
Events¶
Pyjo.EventEmitter
can emit the following events.
error¶
@e.on
def error(e, err):
...
This is a special event for errors, it will not be emitted directly by this class but is fatal if unhandled.
@e.on
def error(e, err):
print("This looks bad: {0}".format(err))
Debugging¶
You can set the PYJO_EVENTEMITTER_DEBUG
environment variable to get some
advanced diagnostics information printed to stderr
.
PYJO_EVENTEMITTER_DEBUG=1
Classes¶
-
exception
Pyjo.EventEmitter.
Error
¶ Exception raised on unhandled error event.
-
class
Pyjo.EventEmitter.
Pyjo_EventEmitter
(**kwargs)¶ Pyjo.EventEmitter
inherits all attributes and methods fromPyjo.Base
and implements the following new ones.-
catch
(cb)¶ e = e.catch(lambda e, err: ...) @e.catch def cb(e, err): ...
Subscribe to
error
event.# Longer version @e.on def error(e, err): ...
-
emit
(name, *args, **kwargs)¶ e = e.emit('foo') e = e.emit('foo', 123)
Emit event.
-
has_subscribers
(name)¶ boolean = e.has_subscribers('foo')
Check if event has subscribers.
-
on
(cb, name=None)¶ cb = e.on(cb, 'foo')
Subscribe to event. Can be used as decorator.
@e.on def foo(e, *args, **kwargs): ...
-
once
(cb, name=None)¶ cb = e.once(cb, 'foo')
Subscribe to event and unsubscribe again after it has been emitted once. Can be used as decorator.
@e.once def foo(e, *args, **kwargs): ...
-
subscribers
(name)¶ subscribers = e.subscribers('foo')
All subscribers for event.
# Unsubscribe last subscriber e.unsubscribe('foo', e.subscribers('foo')[-1])
-
unsubscribe
(name, cb=None)¶ e = e.unsubscribe('foo') e = e.unsubscribe('foo', cb)
Unsubscribe from event.
-
unsubscribe_all
()¶ e = e.unsubscribe_all()
Unsubscribe from all events.
-
-
Pyjo.EventEmitter.
object
¶ alias of
Pyjo_EventEmitter