HISTFILE = '.jep' import traceback import jep from jep import * hasReadline = False try: import readline try: hasReadline = True import os HISTFILE = '%s/.jep' % (os.environ['HOME']) if(not os.access(HISTFILE, os.W_OK)): os.open(HISTFILE, os.O_CREAT) readline.read_history_file(HISTFILE) except: traceback.print_exc() pass except: print """ No readline available. You may want to set the LD_PRELOAD environment variable, see the README file for details. i.e.: export LD_PRELOAD=/usr/lib/libpython2.3.so.1.0 If your platform really doesn't have readline, try this: http://newcenturycomputers.net/projects/readline.html """ PS1 = ">>> " PS2 = "... " def prompt(jep): global hasReadline try: line = None while(1): ran = True try: ran = jep.eval(line) except: traceback.print_exc() try: if(ran): line = raw_input(PS1) else: line = raw_input(PS2) except: break finally: if(hasReadline): readline.write_history_file(HISTFILE) if(__name__ == '__main__'): Jep = findClass('jep.Jep') jep = Jep(True) # Pass argv to interactive prompt. We can't pass a Python object, # but we can make a new one. jep.eval("argv = %s" % argv) try: prompt(jep) except: traceback.print_exc() print '' jep.close()