mirror of https://github.com/python/cpython
#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:
parent
ab32066e65
commit
da4c467210
|
@ -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()
|
||||
|
|
|
@ -144,10 +144,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:
|
||||
|
|
|
@ -806,6 +806,7 @@ Mark Sapiro
|
|||
Ty Sarna
|
||||
Ben Sayer
|
||||
sbt
|
||||
Marco Scataglini
|
||||
Andrew Schaaf
|
||||
Michael Scharf
|
||||
Andreas Schawo
|
||||
|
@ -830,7 +831,7 @@ Nick Seidenman
|
|||
Yury Selivanov
|
||||
Fred Sells
|
||||
Jiwon Seo
|
||||
Roger D. Serwy
|
||||
Roger Serwy
|
||||
Jerry Seutter
|
||||
Denis Severson
|
||||
Ian Seyer
|
||||
|
|
|
@ -113,6 +113,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 #13848: open() and the FileIO constructor now check for NUL
|
||||
characters in the file name. Patch by Hynek Schlawack.
|
||||
|
||||
|
|
Loading…
Reference in New Issue