I think this is excellent and should be supported by the shell. If the license permits it I would also like to have it included as default shell in the binary distributions. Do you know?
Massimo On Oct 12, 4:31 pm, yarko <[EMAIL PROTECTED]> wrote: > I experimented yesterday a bit w/ IPython trunk, to discover that Gaël > Varoquaux has written a wx based front end for IPython (IPythonx, and > IPtyon-wx, but I found the former at this point more interesting, as > it has nice, scrolling completion). > > I tried to "quickly" hack up gluon/shell.py to see if I could call > ipythonx instead of ipython. Besides the graphical completion, I > also played with activating an editor through ipython startup scripts, > and even enabling a shell-like profile (which turns out to be pretty > cool; seehttp://ipython.scipy.org/moin/Cookbook/ShProfile). The > editor, for example, you can invoke the editor like this: %edit > os.path.isfile). > > Anyway - my "quick" experiment failed, and I wound up exchanging a few > emails w/ Gael. This caused me to look into the ipython docs more, > and in different places. > > Among other things, I managed to call up ipython through ipapi, rather > than as it's currently called. I'm not yet sure of all the > implications - but Massimo encouraged me to start a thread. > > It looks like thru the ipapi, we can set user contexts - that is, > attach the the current environment. This, along with enabling shell > behaviors and other "magic" - the IPythin structure looks pretty good > - I think we might be able to enable a shell in a different way: we > might be able to start web2py during development WITH a running > ipythin in the invoking window, and - as we load applications, set > their context for the ipython window. I think we could also be able > to set some ipapi hooks, or document them for developers to use during > code development to make this tailored to the web2py environment. > > Currently, the only "test" change I've made is in gluon/shell.py, and > it's just this: > > try: > # yarko's trying this a different way: > # import IPython > # shell = IPython.Shell.IPShell(argv=[], user_ns=_env) > # shell.mainloop() > import IPython.ipapi > # Clear the options, to avoid having the ipython0 > instance complain > import sys > sys.argv = sys.argv[:1] > print "launching Ipython instance...." > > IPython.ipapi.launch_new_instance(_env) > print "Exited Ipython instance..." # do you want to > go to main now? > return > except: > > With a little poking around the ipapi today, we can create a context > of ip before launching it (in main), and invoke it. As we run, I > imagine we can attach the current context to the ipython instance - > perhaps from the admin interface - "push context to shell". > > I thought I'd put this out there so people can start looking at the > IPython Extension API - there's lots of potential and "magic" > available, and a lot to read and learn about. Hopefully, someone > (Stuart?) can help trying to move shell into an interactive one that > works with the server running in normal mode. Perhaps others will > get ideas of what hooks into the python level api might be useful for > develping / testing web apps. > > I'm looking at this > > http://ipython.scipy.org/moin/IpythonExtensionApi > http://ipython.scipy.org/doc/manual/html/interactive/extension_api.html > > Let me know if you're interested. If there's enough, we could work > w/ Massimo to start an experimental branch on Launchpad to explose > this a bit. > > Regards, > Yarko --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to web2py@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---