Bengt Richter wrote:

> What about something on the pattern of (untested!)
> 
>     import algomodule # first time
> 
>     def algoreload():
>       algosource = algomodule.__file__.replace('.pyc','py')
>         algomodule.__dict__.clear()
>       try:
>           execfile(algosource, algomodule.__dict__)
>             algomodule.__file__ = algosource
>             return 'ok'
>         except Exception, e:
>             return '%s: %s -- couldn't execfile %r' %(e.__class__.__name__, 
> e, algosource)
> 
>     while True:
>         cmd = raw_input('cmd > ').strip()
>         if cmd == 'reload': print algoreload()
>         elif cmd == 'exit': raise SystemExit('ok, exiting ...')
>         elif cmd == 'edit': print os.popen('notepad.exe 
> '+algomodule.__file__.replace('.pyc','py')).read() or 'ok'
>         else:
>             cmd = cmd.split()
>             args = map(float, cmd[1:])
>             print getattr(algomodule, cmd[0], (lambda name, *ign: 'No such 
> function: %r'%name).__get__(cmd[0], str))(*args)
> 
> this would (theoretically ;-) let you type commands like
>        sqrt 9
> and have alogomodule.sqrt called with float('9'), and then
>        edit
> and edit the module source in notepad, and then
>        sqrt 16
> and have the new function called, etc.
> 
> The cmd module will let you set up something fancier than above, and 
> obviously you don't have to run notepad ;-)

http://ipython.scipy.org

-- 
Robert Kern
[EMAIL PROTECTED]

"In the fields of hell where the grass grows high
 Are the graves of dreams allowed to die."
  -- Richard Harter

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to