E&S CVS Commit: pylib - Refactoring to make various things work the way they were always supposed
pje at eby-sarna.com
pje at eby-sarna.com
Wed Dec 26 09:36:00 EST 2001
Module Name: pylib
Committed By: pje
Date: Wed Dec 26 14:35:50 UTC 2001
Modified Files:
pylib/TW: Builders.py Components.py Interfaces.py
pylib/TW/tests: Components.py
Log Message:
Refactoring to make various things work the way they were always supposed
to, but didn't. Aspect really should've been a Catalyst, and Templates
were acting too much like a Catalyst. Now, Catalysts do "aspectual
inheritance", and Templates do not. ClassRefs are now Templates, not
Catalysts. Added ClassRef test to test suite, and updated the appropriate
docs and interfaces. Interestingly, there is now no way to make a class
a Template, except by inheriting from another Template (or perhaps by
using '__metaclass__ = Template' in Python 2.2). Aspect no longer creates
Templates, it creates Catalysts, and should probably be avoided.
Ultimately we may want to phase out "aspectual inheritance" except for
things that really want to be Catalysts. And Catalysts still have the
problem of not turning their metaclass instances to catalysts... but that
problem might be fixable using assignment to __class__. I'll have to look
more closely at that in the future.
To view diffs of this commit, you can use the following URL(s):
http://cvs.eby-sarna.com/pylib/TW/Builders.py.diff?r1=1.18&r2=1.19
http://cvs.eby-sarna.com/pylib/TW/Components.py.diff?r1=1.29&r2=1.30
http://cvs.eby-sarna.com/pylib/TW/Interfaces.py.diff?r1=1.6&r2=1.7
http://cvs.eby-sarna.com/pylib/TW/tests/Components.py.diff?r1=1.6&r2=1.7
To generate a diff of this commit:
cvs rdiff -r1.18 -r1.19 pylib/TW/Builders.py
cvs rdiff -r1.29 -r1.30 pylib/TW/Components.py
cvs rdiff -r1.6 -r1.7 pylib/TW/Interfaces.py
cvs rdiff -r1.6 -r1.7 pylib/TW/tests/Components.py
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
More information about the source-changes
mailing list