#13506 Add '' to path for interactive interpreter by adding with_cwd parameter

to PyShell.PyShell.transfer_path() and changing elsewhere as needed.
Original patches by Marco Scataglini and Roger Serwy.
This commit is contained in:
Terry Jan Reedy 2012-01-31 02:26:32 -05:00
parent ab32066e65
commit da4c467210
4 changed files with 20 additions and 10 deletions

View file

@ -411,11 +411,11 @@ class ModifiedInterpreter(InteractiveInterpreter):
self.rpcclt.register("flist", self.tkconsole.flist)
self.rpcclt.register("linecache", linecache)
self.rpcclt.register("interp", self)
self.transfer_path()
self.transfer_path(with_cwd=True)
self.poll_subprocess()
return self.rpcclt
def restart_subprocess(self):
def restart_subprocess(self, with_cwd=False):
if self.restarting:
return self.rpcclt
self.restarting = True
@ -439,7 +439,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
except socket.timeout as err:
self.display_no_subprocess_error()
return None
self.transfer_path()
self.transfer_path(with_cwd=with_cwd)
# annotate restart in shell window and mark it
console.text.delete("iomark", "end-1c")
if was_executing:
@ -488,12 +488,18 @@ class ModifiedInterpreter(InteractiveInterpreter):
except OSError:
return
def transfer_path(self):
def transfer_path(self, with_cwd=False):
if with_cwd: # Issue 13506
path = [''] # include Current Working Directory
path.extend(sys.path)
else:
path = sys.path
self.runcommand("""if 1:
import sys as _sys
_sys.path = %r
del _sys
\n""" % (sys.path,))
\n""" % (path,))
active_seq = None
@ -1187,7 +1193,8 @@ class PyShell(OutputWindow):
self.text.see("restart")
def restart_shell(self, event=None):
self.interp.restart_subprocess()
"Callback for Run/Restart Shell Cntl-F6"
self.interp.restart_subprocess(with_cwd=True)
def showprompt(self):
self.resetoutput()