Posts about python (old posts, page 24)

2009-03-22 21:16

Juno and middleware

This is how you add basic authentication to your Juno app:


Where valid_user is the obvious function that takes user/pass and returns true/false.

Not exactly a sophisticated role-based auth, but I don't need that for my app (LDAP's access controls take care of it).

2009-03-20 15:57

Pyjamas and Juno

I am currently in dire need of creating a nice admin page for a LDAP addressbook, which should do some slightly unusual things with the data (like manipulating Postfix's virtual table).

So, what the heck, let's also learn something new while I'm at it. The victims: Pyjamas and Juno.

Pyjamas is sort of a Python version of GWT and is bliss. Finally I can code HTML and JS in python ;-)

And Juno is refreshingly simple. Since the whole frontend is done by Pyjamas, all I needed is a way to route JSONRPC calls to python code and operate in the backend.

So, here are two useful snippets:

# This decorator decodes JSONRPC arguments as sent by Pyjamas to
# Juno, and calls the target function with the decoded version.
def JSONRemote(target):
    def wrapper(web,*args,**kwargs):
        data = json.loads(postdata)
        id, method, params = data["id"],data["method"],[web,]+data["params"][1]
        return target(*params,**kwargs)
    return wrapper

Using this, any plain juno method works as a JSONRPC method!

For example:

def list(web,startwith='*',method=None):
    except ldap.LDAPError, e:
    return resp

See? No JSON decoding. And no encoding either, because I am creating the response using this:

# This class creates a correct JSON response from Juno as required by Pyjamas
class JSONResponse(JunoResponse):
    def __init__(self,result=None,error=None,id=None,code=200):

This is probably not a great implementation but it's good enough for me right now.

2009-03-17 21:10

Translations coming

The spanish translations of most sessions of "PyQt by Example" are almost done, thanks to several volunteers.

Tomorrow I will upload at least one.

If anyone wants to translate them to other languages, I will be happy to include those too.

2009-03-12 00:59

Session 5 is slightly delayed

I planned to have it ready for today, but my current consulting job (migrating a firm from Exchange to FLOSS) is getting a bit gnarly (mostly because of Outlook 2000) (Yes, I know).

It may be done this saturday, maybe next tuesday, I just don't know yet.

Contents © 2000-2019 Roberto Alsina