Well, it's right there in the Python:

    def awake(self,trans):
        self.__class__.__bases__[0].awake(self, trans)

        self.initPSP()

That looks like it's basically just to put in that .initPSP() hook.

It's kind of lame, but SecureMixIn could have a method:

    def awake(self, trans):
        SiteLayout.awake(self, trans)

This hard-codes what SecureMixIn mixes in to.  Otherwise you could do
self.__class__.__bases__[1].awake(self, trans), which would be slightly
more general.

I can't think of a good way to have PSP do this.  Unless perhaps it used
the new-and-fancy super() call (which I don't completely understand
yet).  Or PSP could add something to __init__, like:

    def __init__(self):
        self._realAwake = self.awake
        self.awake = self._pspAwake

    def pspAwake(self, trans):
        self._realAwake(trans)
        self.initPSP()

That might work well for multiple inheritance.  

-- 
Ian Bicking           Colorstudy Web Development
[EMAIL PROTECTED]   http://www.colorstudy.com
PGP: gpg --keyserver pgp.mit.edu --recv-keys 0x9B9E28B7
4869 N Talman Ave, Chicago, IL 60625 / (773) 275-7241



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Webware-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/webware-devel

Reply via email to