Pluggable notifications for your Python apps.
yell is not a notification storage or delivery backend but a set of APIs that make it easy to add your own delivery mechanisms.
The full documentation is available here.
from yell import notify from yell.decorators import notification @notification(name = 'buffalo') def buffalo_printer(message): print message @notification(name = 'buffalo') def buffalo_saver(message): save(message) notify("buffalo", _("Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo"))
from yell import Notification, notify class Buffalo(Notification): name = "buffalo" message = _("Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo") def notify(self, *args, **kwargs): print self.message class BuffaloEmail(Buffalo): def notify(self, *args, **kwargs): send_mail("Buffalo", self.message, 'buffalo@example.com', [kwargs.get('user').email]) class BuffaloDatabase(Buffalo): def notify(self, *args, **kwargs): BuffaloModel.objects.create(user = kwargs.get('user')) # The default behaviour is to use every notification backend with the same # name notify("buffalo", user = User.objects.get(id=1)) # Only send emails notify("buffalo", user = User.objects.get(id=1), backends = [BuffaloEmail])
v0.3
- backwards incompatible Guessing the file extension with the
mimetypes
package proved to be inconsistent across systems.TemplatedEmailBackend
now makes use of explicitly declared file extensions.
v0.2
- Made the API saner to use (backwards incompatible):
yell.Yell
becameyell.Notification
yell.yell
becameyell.notify
yell.decorators.yelling
becameyell.decorators.notification