diff options
author | Terry Jan Reedy <tjreedy@udel.edu> | 2016-07-15 06:43:03 (GMT) |
---|---|---|
committer | Terry Jan Reedy <tjreedy@udel.edu> | 2016-07-15 06:43:03 (GMT) |
commit | 6cf0e13b656b624f456f9ca1deb924dc00191bc7 (patch) | |
tree | d8d7583b55638643df2256acdce5846d878dd608 /Lib/idlelib/pyshell.py | |
parent | ce7b27d169f0d8383f99e0b73d6057aae6470e27 (diff) | |
download | cpython-6cf0e13b656b624f456f9ca1deb924dc00191bc7.zip cpython-6cf0e13b656b624f456f9ca1deb924dc00191bc7.tar.gz cpython-6cf0e13b656b624f456f9ca1deb924dc00191bc7.tar.bz2 |
Issue #25507: Move 4 objects from pyshell to run and switch inports.
This removes one problem inport and reduces len(sys.modules) by 37.
Diffstat (limited to 'Lib/idlelib/pyshell.py')
-rwxr-xr-x | Lib/idlelib/pyshell.py | 101 |
1 files changed, 1 insertions, 100 deletions
diff --git a/Lib/idlelib/pyshell.py b/Lib/idlelib/pyshell.py index 82e77f9..28584ac 100755 --- a/Lib/idlelib/pyshell.py +++ b/Lib/idlelib/pyshell.py @@ -25,7 +25,6 @@ import sys import threading import time import tokenize -import io import linecache from code import InteractiveInterpreter @@ -37,6 +36,7 @@ from idlelib.colorizer import ColorDelegator from idlelib.undo import UndoDelegator from idlelib.outwin import OutputWindow from idlelib.config import idleConf +from idlelib.run import idle_formatwarning, PseudoInputFile, PseudoOutputFile from idlelib import rpc from idlelib import debugger from idlelib import debugger_r @@ -52,19 +52,6 @@ PORT = 0 # someday pass in host, port for remote debug capability warning_stream = sys.__stderr__ # None, at least on Windows, if no console. import warnings -def idle_formatwarning(message, category, filename, lineno, line=None): - """Format warnings the IDLE way.""" - - s = "\nWarning (from warnings module):\n" - s += ' File \"%s\", line %s\n' % (filename, lineno) - if line is None: - line = linecache.getline(filename, lineno) - line = line.strip() - if line: - s += " %s\n" % line - s += "%s: %s\n" % (category.__name__, message) - return s - def idle_showwarning( message, category, filename, lineno, file=None, line=None): """Show Idle-format warning (after replacing warnings.showwarning). @@ -1316,92 +1303,6 @@ class PyShell(OutputWindow): return 'disabled' return super().rmenu_check_paste() -class PseudoFile(io.TextIOBase): - - def __init__(self, shell, tags, encoding=None): - self.shell = shell - self.tags = tags - self._encoding = encoding - - @property - def encoding(self): - return self._encoding - - @property - def name(self): - return '<%s>' % self.tags - - def isatty(self): - return True - - -class PseudoOutputFile(PseudoFile): - - def writable(self): - return True - - def write(self, s): - if self.closed: - raise ValueError("write to closed file") - if type(s) is not str: - if not isinstance(s, str): - raise TypeError('must be str, not ' + type(s).__name__) - # See issue #19481 - s = str.__str__(s) - return self.shell.write(s, self.tags) - - -class PseudoInputFile(PseudoFile): - - def __init__(self, shell, tags, encoding=None): - PseudoFile.__init__(self, shell, tags, encoding) - self._line_buffer = '' - - def readable(self): - return True - - def read(self, size=-1): - if self.closed: - raise ValueError("read from closed file") - if size is None: - size = -1 - elif not isinstance(size, int): - raise TypeError('must be int, not ' + type(size).__name__) - result = self._line_buffer - self._line_buffer = '' - if size < 0: - while True: - line = self.shell.readline() - if not line: break - result += line - else: - while len(result) < size: - line = self.shell.readline() - if not line: break - result += line - self._line_buffer = result[size:] - result = result[:size] - return result - - def readline(self, size=-1): - if self.closed: - raise ValueError("read from closed file") - if size is None: - size = -1 - elif not isinstance(size, int): - raise TypeError('must be int, not ' + type(size).__name__) - line = self._line_buffer or self.shell.readline() - if size < 0: - size = len(line) - eol = line.find('\n', 0, size) - if eol >= 0: - size = eol + 1 - self._line_buffer = line[size:] - return line[:size] - - def close(self): - self.shell.close() - def fix_x11_paste(root): "Make paste replace selection on x11. See issue #5124." |