changeset: 74693:1993aa091d89 branch: 3.2 parent: 74690:c5a09a96f533 user: Terry Jan Reedy date: Tue Jan 31 02:26:32 2012 -0500 files: Lib/idlelib/PyShell.py Lib/idlelib/ScriptBinding.py Misc/ACKS Misc/NEWS description: #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. diff -r c5a09a96f533 -r 1993aa091d89 Lib/idlelib/PyShell.py --- a/Lib/idlelib/PyShell.py Mon Jan 30 15:17:33 2012 -0800 +++ b/Lib/idlelib/PyShell.py Tue Jan 31 02:26:32 2012 -0500 @@ -411,11 +411,11 @@ 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 @@ 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 @@ 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 @@ 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() diff -r c5a09a96f533 -r 1993aa091d89 Lib/idlelib/ScriptBinding.py --- a/Lib/idlelib/ScriptBinding.py Mon Jan 30 15:17:33 2012 -0800 +++ b/Lib/idlelib/ScriptBinding.py Tue Jan 31 02:26:32 2012 -0500 @@ -144,10 +144,9 @@ return 'break' if not self.tabnanny(filename): return 'break' - shell = self.shell - interp = shell.interp + interp = self.shell.interp if PyShell.use_subprocess: - shell.restart_shell() + interp.restart_subprocess(with_cwd=False) dirname = os.path.dirname(filename) # XXX Too often this discards arguments the user just set... interp.runcommand("""if 1: diff -r c5a09a96f533 -r 1993aa091d89 Misc/ACKS --- a/Misc/ACKS Mon Jan 30 15:17:33 2012 -0800 +++ b/Misc/ACKS Tue Jan 31 02:26:32 2012 -0500 @@ -806,6 +806,7 @@ Ty Sarna Ben Sayer sbt +Marco Scataglini Andrew Schaaf Michael Scharf Andreas Schawo @@ -830,7 +831,7 @@ Yury Selivanov Fred Sells Jiwon Seo -Roger D. Serwy +Roger Serwy Jerry Seutter Denis Severson Ian Seyer diff -r c5a09a96f533 -r 1993aa091d89 Misc/NEWS --- a/Misc/NEWS Mon Jan 30 15:17:33 2012 -0800 +++ b/Misc/NEWS Tue Jan 31 02:26:32 2012 -0500 @@ -113,6 +113,9 @@ Library ------- +- Issue #13506: Add '' to path for IDLE Shell when started and restarted with Restart Shell. + Original patches by Marco Scataglini and Roger Serwy. + - Issue #13848: open() and the FileIO constructor now check for NUL characters in the file name. Patch by Hynek Schlawack.

AltStyle によって変換されたページ (->オリジナル) /