Hi all I just figured this out a couple of days ago. It is VERY cool. """ $ ./bin/zopectl debug Starting debugger (the name "app" is bound to the top-level Zope object) [...]
import IPython IPython.Shell.IPShell().mainloop(sys_exit=1)
Python 2.3.3 (#1, Mar 17 2004, 01:31:20) Type "copyright", "credits" or "license" for more information.
IPython 0.6.3 -- An enhanced Interactive Python. ? -> Introduction to IPython's features. @magic -> Information about IPython's 'magic' @ functions. help -> Python's own help system. object? -> Details about 'object'. ?object also works, ?? prints more. In [3]: @autocall Automatic calling is: OFF In [4]: app = __IP.internal_ns['app'] In [5]: app Out[5]: <Application instance at 411d1470> In [14]: app.plone.object # Tab-completion ... rooooocks! app.plone.objectIds app.plone.objectMap app.plone.objectIds__roles__ app.plone.objectMap_d app.plone.objectIds_d app.plone.objectValues app.plone.objectItems app.plone.objectValues__roles__ app.plone.objectItems__roles__ app.plone.objectValues_d app.plone.objectItems_d In [14]: app.plone.object In [15]: app.plone.objectIds?? Type: Python Method Base Class: <type 'function'> String Form: <bound method PloneSite.objectIds of <PloneSite instance at 411bdd70>> Namespace: Interactive File: /home/jean/Zope-2.7.1-0/lib/python/OFS/ObjectManager.py Definition: app.plone.objectIds(self, spec=None) Source: def objectIds(self, spec=None): # Returns a list of subobject ids of the current object. # If 'spec' is specified, returns objects whose meta_type # matches 'spec'. if spec is not None: if type(spec)==type('s'): spec=[spec] set=[] for ob in self._objects: if ob['meta_type'] in spec: set.append(ob['id']) return set return [ o['id'] for o in self._objects ] """ Is anyone else using this? -- Jean Jordaan http://www.upfrontsystems.co.za