Mercurial > cpython-lru_cache-weakref
comparison Lib/idlelib/PyShell.py @ 74694:acedd92086c5
Merge 3.2
- Issue #13506: Add '' to path for IDLE Shell when started and restarted with Restart Shell.
Original patches by Marco Scataglini and Roger Serwy.
Merge 3.2 #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.
| author | Terry Jan Reedy <tjreedy@udel.edu> |
|---|---|
| date | Tue, 31 Jan 2012 02:42:19 -0500 |
| parents | ba832d42cd9e 1993aa091d89 |
| children | bf31815548c9 |
comparison
equal
deleted
inserted
replaced
| 74691:2db416b953e8 | 74694:acedd92086c5 |
|---|---|
| 409 self.rpcclt.register("stdout", self.tkconsole.stdout) | 409 self.rpcclt.register("stdout", self.tkconsole.stdout) |
| 410 self.rpcclt.register("stderr", self.tkconsole.stderr) | 410 self.rpcclt.register("stderr", self.tkconsole.stderr) |
| 411 self.rpcclt.register("flist", self.tkconsole.flist) | 411 self.rpcclt.register("flist", self.tkconsole.flist) |
| 412 self.rpcclt.register("linecache", linecache) | 412 self.rpcclt.register("linecache", linecache) |
| 413 self.rpcclt.register("interp", self) | 413 self.rpcclt.register("interp", self) |
| 414 self.transfer_path() | 414 self.transfer_path(with_cwd=True) |
| 415 self.poll_subprocess() | 415 self.poll_subprocess() |
| 416 return self.rpcclt | 416 return self.rpcclt |
| 417 | 417 |
| 418 def restart_subprocess(self): | 418 def restart_subprocess(self, with_cwd=False): |
| 419 if self.restarting: | 419 if self.restarting: |
| 420 return self.rpcclt | 420 return self.rpcclt |
| 421 self.restarting = True | 421 self.restarting = True |
| 422 # close only the subprocess debugger | 422 # close only the subprocess debugger |
| 423 debug = self.getdebugger() | 423 debug = self.getdebugger() |
| 437 try: | 437 try: |
| 438 self.rpcclt.accept() | 438 self.rpcclt.accept() |
| 439 except socket.timeout as err: | 439 except socket.timeout as err: |
| 440 self.display_no_subprocess_error() | 440 self.display_no_subprocess_error() |
| 441 return None | 441 return None |
| 442 self.transfer_path() | 442 self.transfer_path(with_cwd=with_cwd) |
| 443 # annotate restart in shell window and mark it | 443 # annotate restart in shell window and mark it |
| 444 console.text.delete("iomark", "end-1c") | 444 console.text.delete("iomark", "end-1c") |
| 445 if was_executing: | 445 if was_executing: |
| 446 console.write('\n') | 446 console.write('\n') |
| 447 console.showprompt() | 447 console.showprompt() |
| 490 try: | 490 try: |
| 491 self.rpcsubproc.wait() | 491 self.rpcsubproc.wait() |
| 492 except OSError: | 492 except OSError: |
| 493 return | 493 return |
| 494 | 494 |
| 495 def transfer_path(self): | 495 def transfer_path(self, with_cwd=False): |
| 496 if with_cwd: # Issue 13506 | |
| 497 path = [''] # include Current Working Directory | |
| 498 path.extend(sys.path) | |
| 499 else: | |
| 500 path = sys.path | |
| 501 | |
| 496 self.runcommand("""if 1: | 502 self.runcommand("""if 1: |
| 497 import sys as _sys | 503 import sys as _sys |
| 498 _sys.path = %r | 504 _sys.path = %r |
| 499 del _sys | 505 del _sys |
| 500 \n""" % (sys.path,)) | 506 \n""" % (path,)) |
| 501 | 507 |
| 502 active_seq = None | 508 active_seq = None |
| 503 | 509 |
| 504 def poll_subprocess(self): | 510 def poll_subprocess(self): |
| 505 clt = self.rpcclt | 511 clt = self.rpcclt |
| 1189 def view_restart_mark(self, event=None): | 1195 def view_restart_mark(self, event=None): |
| 1190 self.text.see("iomark") | 1196 self.text.see("iomark") |
| 1191 self.text.see("restart") | 1197 self.text.see("restart") |
| 1192 | 1198 |
| 1193 def restart_shell(self, event=None): | 1199 def restart_shell(self, event=None): |
| 1194 self.interp.restart_subprocess() | 1200 "Callback for Run/Restart Shell Cntl-F6" |
| 1201 self.interp.restart_subprocess(with_cwd=True) | |
| 1195 | 1202 |
| 1196 def showprompt(self): | 1203 def showprompt(self): |
| 1197 self.resetoutput() | 1204 self.resetoutput() |
| 1198 try: | 1205 try: |
| 1199 s = str(sys.ps1) | 1206 s = str(sys.ps1) |
