Jump to revision: | |
---|---|
Author: | pje |
Date: | Sun May 11 20:16:11 2003 UTC (20 years, 11 months ago) |
Log Message:
Added transitive adaptation: declaring an adapter "AB" from A to B, and "BC" from B to C, automatically implies adaptation from A to C via BC(AB()). Used it to simplify the mechanism for adapting an IExecutable to an ICmdLineAppFactory. Refactored some of the interface package's initial kludges to cleaner mechanisms based on adaptation. Learned some interesting things along the way... Classic classes don't have __mro__, which made adapt() break on them. The technique I was using in the hopes of suppressing unwanted TypeErrors suppressed wanted ones, and meanwhile there weren't any unwanted ones in PEAK. Finally, Python 2.2 doesn't support 'super()' access to properties, and metamethods are properties, so you have to use my new 'supermeta' to work around this when you need to call a super() metamethod. This is supposed to be fixed in Python 2.3, but not backported 2.2 because Guido considers it a "feature". Ah well.
Changed paths:
Path | Action | Text Changes | Prop Changes | Diff to Previous |
---|---|---|---|---|
PEAK/CHANGES.txt | modified | X | (diff to previous) | |
PEAK/src/peak/binding/once.py | modified | X | (diff to previous) | |
PEAK/src/peak/interface.py | modified | X | (diff to previous) | |
PEAK/src/peak/model/features.py | modified | X | (diff to previous) | |
PEAK/src/peak/running/commands.py | modified | X | (diff to previous) | |
PEAK/src/peak/util/advice.py | modified | X | (diff to previous) |
cvs-admin@eby-sarna.com Powered by ViewCVS 1.0-dev |
ViewCVS and CVS Help |