[Idle-dev] CVS: idle run.py,1.4,1.5 ScriptBinding.py,1.6,1.7
Kurt B. Kaiser
kbk@users.sourceforge.net
Sat, 27 Jul 2002 20:35:33 -0700
Update of /cvsroot/idlefork/idle
In directory usw-pr-cvs1:/tmp/cvs-serv18267
Modified Files:
run.py ScriptBinding.py
Log Message:
Reset the Python execution server environment to its initial value prior
to executing Run/F5 from an EditorWindow.
M ScriptBinding.py : add call to clear_the_environment()
M run.py : implemented Executive.clear_the_environment()
Index: run.py
===================================================================
RCS file: /cvsroot/idlefork/idle/run.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** run.py 26 Jul 2002 00:06:42 -0000 1.4
--- run.py 28 Jul 2002 03:35:31 -0000 1.5
***************
*** 2,5 ****
--- 2,6 ----
import time
import socket
+ import __main__
import rpc
***************
*** 56,64 ****
def __init__(self, rpchandler):
self.rpchandler = rpchandler
! import __main__
! self.locals = __main__.__dict__
def runcode(self, code):
! exec code in self.locals
def start_the_debugger(self, gui_adap_oid):
--- 57,72 ----
def __init__(self, rpchandler):
self.rpchandler = rpchandler
! self.base_env_keys = __main__.__dict__.keys()
def runcode(self, code):
! exec code in __main__.__dict__
!
! def clear_the_environment(self):
! global __main__
! env = __main__.__dict__
! for key in env.keys():
! if key not in self.base_env_keys:
! del env[key]
! env['__doc__'] = None
def start_the_debugger(self, gui_adap_oid):
Index: ScriptBinding.py
===================================================================
RCS file: /cvsroot/idlefork/idle/ScriptBinding.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** ScriptBinding.py 12 Jun 2002 03:28:57 -0000 1.6
--- ScriptBinding.py 28 Jul 2002 03:35:31 -0000 1.7
***************
*** 145,152 ****
if not filename:
return
-
flist = self.editwin.flist
shell = flist.open_shell()
interp = shell.interp
# XXX Too often this discards arguments the user just set...
interp.runcommand("""if 1:
--- 145,153 ----
if not filename:
return
flist = self.editwin.flist
shell = flist.open_shell()
interp = shell.interp
+ # clear the subprocess environment before every Run/F5 invocation
+ interp.rpcclt.remotecall("exec", "clear_the_environment", (), {})
# XXX Too often this discards arguments the user just set...
interp.runcommand("""if 1:
***************
*** 156,159 ****
--- 157,161 ----
if (not _sys.argv or
_basename(_sys.argv[0]) != _basename(_filename)):
+ # XXX 25 July 2002 KBK should this be sys.argv not _sys.argv?
_sys.argv = [_filename]
del _filename, _sys, _basename