]> granicus.if.org Git - python/commitdiff
#13506 Add '' to path for interactive interpreter by adding with_cwd parameter
authorTerry Jan Reedy <tjreedy@udel.edu>
Tue, 31 Jan 2012 07:09:25 +0000 (02:09 -0500)
committerTerry Jan Reedy <tjreedy@udel.edu>
Tue, 31 Jan 2012 07:09:25 +0000 (02:09 -0500)
to PyShell.PyShell.transfer_path() and changing elsewhere as needed.
Original patches by Marco Scataglini and Roger Serwy.

Lib/idlelib/PyShell.py
Lib/idlelib/ScriptBinding.py
Misc/ACKS
Misc/NEWS

index 96efcecb54fa06d923be1a035cf49c4471ad6534..73db11a0447dd853365c5cfa3cf43cc28a776df5 100644 (file)
@@ -423,11 +423,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
@@ -451,7 +451,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
         except socket.timeout, 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:
@@ -501,12 +501,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
 
@@ -1209,7 +1215,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()
index 4c6dc82e0f89854f6c6fabdb85ee0d46abfecd5e..01ac4746589ca609b69192daa80ca8ad8fb4cf16 100644 (file)
@@ -146,10 +146,9 @@ class ScriptBinding:
             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:
index 172a370f6c5ae823157382c6316bbca52672a03d..b21e78c393f25c5d8a3fdf73b0c0858bd6e76a0b 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -740,6 +740,7 @@ Mark Sapiro
 Ty Sarna
 Ben Sayer
 sbt
+Marco Scataglini
 Michael Scharf
 Neil Schemenauer
 David Scherer
@@ -759,6 +760,7 @@ Nick Seidenman
 Žiga Seilnach
 Fred Sells
 Jiwon Seo
+Roger Serwy
 Jerry Seutter
 Denis Severson
 Ian Seyer
index 1c6b66f95514d1a1bbeb4211ecc989547532b970..2884bbad4e3ceaaa2629ff444b78dae9cfb4c13e 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -90,6 +90,9 @@ Core and Builtins
 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 #13806: The size check in audioop decompression functions was too
   strict and could reject valid compressed data.  Patch by Oleg Plakhotnyuk.