[Python-checkins] cpython (2.7): #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/1b5abba0c808
changeset: 74692:1b5abba0c808
branch: 2.7
parent: 74678:690d5978bd21
user: Terry Jan Reedy <tjreedy at udel.edu>
date: Tue Jan 31 02:09:25 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 | 2 ++
Misc/NEWS | 3 +++
4 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -423,11 +423,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
@@ -451,7 +451,7 @@
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 @@
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 @@
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
@@ -146,10 +146,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
@@ -740,6 +740,7 @@
Ty Sarna
Ben Sayer
sbt
+Marco Scataglini
Michael Scharf
Neil Schemenauer
David Scherer
@@ -759,6 +760,7 @@
Žiga Seilnach
Fred Sells
Jiwon Seo
+Roger Serwy
Jerry Seutter
Denis Severson
Ian Seyer
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -90,6 +90,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 #13806: The size check in audioop decompression functions was too
strict and could reject valid compressed data. Patch by Oleg Plakhotnyuk.
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list