Introspector mini-sprint report.
This monday and tuesday Plone GSoC student Martin Lundwall and Zope GSoC student Uli Fouquet together with yours truly and Martijn Faassen worked on their respective GSoC projects at a mini-sprint here in Paris, located at Pilot Systems. Day 1 consisted most of discussing what to do next and how to refactor zope.introspector, which is the module that is common for both projects. During day 2 we did much of the refactoring, and the result was that towards the end of the day we started to see some primitive GUI parts to access the introspector code in zope.introspector.
Basically, the idea is that with zope.introspector you call IInfos(object).infos() to get hold of a sequence of IInfo objects, that contain information on the object. What infos you get depends on what the object is, so you will get an ModuleInfo for a Module and a ObjectInfo for an Object, for example. You’ll also get ViewInfo objects if you object has views, and you will get RegistrationInfo objects if your object is registered in the component registry. A second module, zope.introspectorui will hold views for all the information objects in zope.introspector (possibly these modules will be merged, we haven’t made up our mind yet). It will be easy to extend this with new information modules, they are just adapters.
zope.introspector and zope.introspectorui both run under Zope2, Zope3 and Grok, and grokui.introspector will contain the Grok views to browser and search for objects. On the Zope2 side, plone.introspector will do the same (despite the name it’s so far a pure Zope2 project and doesn’t need Plone at all, but we couldn’t come up with a better name, as zope.instropector is already taken).
The sprint was not only a success for introspection, we now have a good path forward for the UI of the introspectors, it’s also a success for Grok and grokcore.view, as zope.introspectorui defines view with grokcore.view, and this works just fine under Zope2!
The path forward now is to finish the infrastructure and views. Then what’s needed is more information adapters, and writing them is easy, so others can do that! :-)
Thanks to Martin, Martijn and Uli for a couple of fun and productive days. Thanks to Pilot Systems for the conference room and the yummy coffee!