pingpong 0.0.1

Django library that makes triggering emails easier
pingpong is a Python library to aimed at simplifying things thing that should be easy in Django.

Installation

 1. Install lib with pip:

pip install pingpong

- OR -

Put the "pingpong" directory somewhere in your python path

2. Add "pingpong" to your installed apps (in the settings.py file)

A better way to fire off emails

    from pingpong.email import render_to_email

    def some_function():

        template = "emails/muffins.email"
        context = { "your_mom": "Betty Crocker", "muffin_type": "blueberry" }
        recipients = ['somebody@example.com']

        # send an email!
        render_to_email(template, context, recipients)


And the template, `emails/my_email_template.email` would be in your main templates folder:

    Delicious muffins thanks to {{ your_mom }}


    Hi friend,

    I'm writing to let you know that {{ your_mom }} made some superb
    {{ muffin_type }} muffins. Please tell her thank you!

    Thanks,
    A Robot


The first non-blank line is the subject, everything following is the message.

Subject:

    Delicious muffins thanks to Betty Crocker

Message:

    I'm writing to let you know that Betty Crocker made some superb
    blueberry muffins. Please tell her thank you!

    Thanks,
    A Robot

Whitespace is stripped from the beginning and end of the message.

Passing system events to your app

set up listeners:

    # listeners.py

    from pingpong.utils import pong

    @pong("dailycron")
    def email_admins_about_daily_activity(ping_name, args, kwargs, **kw):
        ...


    # models.py

    ... your models...

    import listeners


Then you trigger all functions listening to "dailycron" like so:

python manage.py pong dailycron

If you pass extra args to the management command they will get passed along...

python manage.py pong cachecleared memcache:38174

In this case we're letting the app know that memcache on port 38174 just got cleared.

    from pingpong.utils import pong

    @pong("cachecleared")
    def warm_up_cache(ping_name, args, kwargs, **kw):
        assert ping_name == "cachecleared"
        assert args[0] == "memcache:38174"

        cache_type, port = args[0].split(":")
        ...

last updated on:
July 12th, 2012, 12:32 GMT
price:
FREE!
developed by:
James Robert
homepage:
pypi.python.org
license type:
MIT/X Consortium License 
category:
ROOT \ Internet \ HTTP (WWW)

FREE!

In a hurry? Add it to your Download Basket!

user rating

UNRATED
0.0/5
 

0/5

Rate it!

Add your review!

SUBMIT