Mercurial > cpython-lru_cache-weakref
comparison Lib/idlelib/PyShell.py @ 78274:cffdb7d76691
merge 3.2
| author | Martin v. Löwis <martin@v.loewis.de> |
|---|---|
| date | Wed, 25 Jul 2012 10:49:32 +0200 |
| parents | 4915cd0cb7af a82fd35e28be |
| children | 1da53d86d722 |
comparison
equal
deleted
inserted
replaced
| 78272:d9a881b0d6ca | 78274:cffdb7d76691 |
|---|---|
| 10 import threading | 10 import threading |
| 11 import time | 11 import time |
| 12 import tokenize | 12 import tokenize |
| 13 import traceback | 13 import traceback |
| 14 import types | 14 import types |
| 15 import io | |
| 15 | 16 |
| 16 import linecache | 17 import linecache |
| 17 from code import InteractiveInterpreter | 18 from code import InteractiveInterpreter |
| 18 | 19 |
| 19 try: | 20 try: |
| 408 try: | 409 try: |
| 409 self.rpcclt.accept() | 410 self.rpcclt.accept() |
| 410 except socket.timeout as err: | 411 except socket.timeout as err: |
| 411 self.display_no_subprocess_error() | 412 self.display_no_subprocess_error() |
| 412 return None | 413 return None |
| 414 # Can't regiter self.tkconsole.stdin, since run.py wants to | |
| 415 # call non-TextIO methods on it (such as getvar) | |
| 416 # XXX should be renamed to "console" | |
| 413 self.rpcclt.register("stdin", self.tkconsole) | 417 self.rpcclt.register("stdin", self.tkconsole) |
| 414 self.rpcclt.register("stdout", self.tkconsole.stdout) | 418 self.rpcclt.register("stdout", self.tkconsole.stdout) |
| 415 self.rpcclt.register("stderr", self.tkconsole.stderr) | 419 self.rpcclt.register("stderr", self.tkconsole.stderr) |
| 416 self.rpcclt.register("flist", self.tkconsole.flist) | 420 self.rpcclt.register("flist", self.tkconsole.flist) |
| 417 self.rpcclt.register("linecache", linecache) | 421 self.rpcclt.register("linecache", linecache) |
| 852 # | 856 # |
| 853 self.save_stdout = sys.stdout | 857 self.save_stdout = sys.stdout |
| 854 self.save_stderr = sys.stderr | 858 self.save_stderr = sys.stderr |
| 855 self.save_stdin = sys.stdin | 859 self.save_stdin = sys.stdin |
| 856 from idlelib import IOBinding | 860 from idlelib import IOBinding |
| 861 self.stdin = PseudoInputFile(self) | |
| 857 self.stdout = PseudoFile(self, "stdout", IOBinding.encoding) | 862 self.stdout = PseudoFile(self, "stdout", IOBinding.encoding) |
| 858 self.stderr = PseudoFile(self, "stderr", IOBinding.encoding) | 863 self.stderr = PseudoFile(self, "stderr", IOBinding.encoding) |
| 859 self.console = PseudoFile(self, "console", IOBinding.encoding) | 864 self.console = PseudoFile(self, "console", IOBinding.encoding) |
| 860 if not use_subprocess: | 865 if not use_subprocess: |
| 861 sys.stdout = self.stdout | 866 sys.stdout = self.stdout |
| 862 sys.stderr = self.stderr | 867 sys.stderr = self.stderr |
| 863 sys.stdin = self | 868 sys.stdin = self.stdin |
| 864 try: | 869 try: |
| 865 # page help() text to shell. | 870 # page help() text to shell. |
| 866 import pydoc # import must be done here to capture i/o rebinding. | 871 import pydoc # import must be done here to capture i/o rebinding. |
| 867 # XXX KBK 27Dec07 use a textView someday, but must work w/o subproc | 872 # XXX KBK 27Dec07 use a textView someday, but must work w/o subproc |
| 868 pydoc.pager = pydoc.plainpager | 873 pydoc.pager = pydoc.plainpager |
| 1269 def flush(self): | 1274 def flush(self): |
| 1270 pass | 1275 pass |
| 1271 | 1276 |
| 1272 def isatty(self): | 1277 def isatty(self): |
| 1273 return True | 1278 return True |
| 1279 | |
| 1280 class PseudoInputFile(object): | |
| 1281 def __init__(self, shell): | |
| 1282 self.readline = shell.readline | |
| 1283 self.isatty = shell.isatty | |
| 1284 | |
| 1285 def write(self, s): | |
| 1286 raise io.UnsupportedOperation("not writable") | |
| 1287 writelines = write | |
| 1274 | 1288 |
| 1275 | 1289 |
| 1276 usage_msg = """\ | 1290 usage_msg = """\ |
| 1277 | 1291 |
| 1278 USAGE: idle [-deins] [-t title] [file]* | 1292 USAGE: idle [-deins] [-t title] [file]* |
