/more.signals

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

more.signals

more.signals is an extension for Morepath that adds Blinker signals support.

Quickstart

The integration adds two directives to a Morepath App for connecting and disconnecting signals. Once connected you can emit to signal using request.app.signal('signal.name') to specify a named signal and then use the send() method, or you can combine both using request.app.signal('signal.name').send(self, **data). Please read Blinker's documentation for all the details.

from more.signals import SignalApp

class App(SignalApp):
    pass


@App.connect('hello')
def say_hello(sender, **data):
    print('HELLO {}!'.format(data.get('name')))


@App.path(path='')
class Root(object):
    pass


@App.json(model=Root)
def root_view(self, request):
    name = 'Foo Bar'
    request.app.signal('hello').send(self, name=name)
    return {'name': name}


if __name__ == '__main__':
    morepath.run(App())