[Python-checkins] cpython (3.2): #13506 Add '' to path for interactive interpreter by adding with_cwd parameter

terry.reedy python-checkins at python.org
Tue Jan 31 08:59:26 CET 2012


http://hg.python.org/cpython/rev/1993aa091d89
changeset:   74693:1993aa091d89
branch:      3.2
parent:      74690:c5a09a96f533
user:        Terry Jan Reedy <tjreedy at udel.edu>
date:        Tue Jan 31 02:26:32 2012 -0500
summary:
  #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.

files:
  Lib/idlelib/PyShell.py       |  19 +++++++++++++------
  Lib/idlelib/ScriptBinding.py |   5 ++---
  Misc/ACKS                    |   3 ++-
  Misc/NEWS                    |   3 +++
  4 files changed, 20 insertions(+), 10 deletions(-)


diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -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 --git a/Lib/idlelib/ScriptBinding.py b/Lib/idlelib/ScriptBinding.py
--- a/Lib/idlelib/ScriptBinding.py
+++ b/Lib/idlelib/ScriptBinding.py
@@ -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 --git a/Misc/ACKS b/Misc/ACKS
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -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 --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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.
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list