[Subversion] / PEAK / src / peak / util / Meta.py |
No default branch
Bookmark a link to HEAD:
(view)
(download)
(as text)
Began the move of 'peak.interface' to a separate 'protocols' package for ease of distribution independently of PEAK. Also, removed caching of success/failed adapter lookups, because there was no way for them to be cleared when declarations were made for base classes of a class whose lookup was cached. (To do caching, I'll have to add a separate cache.) In the next pass, I'll add the new declaration API that Ty and I designed, and then change PEAK to use it, factoring out the interim API, and changing the few remaining introspections in PEAK to work via adapation. Then, it's off to documentation, unit tests, and packaging for the 'protocols' package.
Found and fixed an interesting issue with automatic metaclass generation and class advice. My algorithm for determining the "best" metaclass was broken in some way. I no longer understood the original algorithm, so I rewrote it from first principles, and added a test to cover the way the old one was broken. It's kind of weird that I never discovered it before, but until recently its main use was just to automatically generate new metaclasses. So the bug would have just caused it to generate extra ones that weren't needed, which of course wouldn't be directly noticeable.
Normalized whitespace.
Fixed a long-standing semi-hidden problem where derived metaclasses were generated even for simple, single metaclasses. This bug also prevented metaclasses which were not subclasses of 'type' from working properly.
Moved binding.setupModule() et al to config.setupModule(). Also, 'binding.configure()' is now 'config.setupObject()', for better association with the 'setupModule()' function.
TransWarp -> PEAK in some docstrings for modules that are fairly stable. Didn't do ones which seem up in the air to me (eg is EigenDict relevant anymore?) or like model where the docstrings may need more overhaul anyway.
Moved module inheritance from 'peak.api' to 'peak.binding', and reformatted peak.api package accordingly. Applied the following name changes:: .getSEFparent() -> .getParentComponent() ._setSEFparent() -> .setParentComponent() .getService() -> .lookupComponent() setupModule() -> binding.setupModule() adviseModule() -> binding.patchModule() configure() -> binding.configure() Also made the default '__proceed__' value a built-in, so that it's not necessary to import it. This concludes the essential code-level transformations from TransWarp to PEAK. Almost everything should be in its long-term home now, with its long-term name, although the 'model' package may receive some adjustments by the time a tutorial is written for it. Following this check-in, the repository will be considered stable, and CVS checkouts of PEAK will be possible.
Misc. Documentation fixes, clarifications, and enhancements.
Pre-release documentation and cleanup sweep, part 4! Cleaned up the Utils directory, added docstrings, and also removed the forced load of the TW.SEF package when you import from TW.API. (It's been replaced with a lazy import.) This sonofagun just might ship this weekend.
"I've just received word that the Programmer has dissolved 2.1 support permanently. The last remnants of the old Republic have been swept away..." Well, almost. Many rebel packages and classes still huddle together in small Bundle objects, but their days are numbered. The SEF package is now entirely independent of ExtensionClass, and its metaclasses will control their implementation directly. There is much work ahead, but now there is "A New Hope". (Okay, so now I'm mixing Rebel and Empire metaphors... whatever.)
Added basic support for merging __metaclass__ values found in classes being merged.
Added metaclass autogeneration, w/support for a wide variety of new, old, and Extension classes.
cvs-admin@eby-sarna.com Powered by ViewCVS 1.0-dev |
ViewCVS and CVS Help |