Show More
@@ -0,0 +1,67 b'' | |||
|
1 | # encoding: utf-8 | |
|
2 | ||
|
3 | """ Redirects stdout/stderr to given write methods.""" | |
|
4 | ||
|
5 | __docformat__ = "restructuredtext en" | |
|
6 | ||
|
7 | #------------------------------------------------------------------------------- | |
|
8 | # Copyright (C) 2008 The IPython Development Team | |
|
9 | # | |
|
10 | # Distributed under the terms of the BSD License. The full license is in | |
|
11 | # the file COPYING, distributed as part of this software. | |
|
12 | #------------------------------------------------------------------------------- | |
|
13 | ||
|
14 | #------------------------------------------------------------------------------- | |
|
15 | # Imports | |
|
16 | #------------------------------------------------------------------------------- | |
|
17 | ||
|
18 | import sys | |
|
19 | from IPython.kernel.core.output_trap import OutputTrap | |
|
20 | ||
|
21 | class FileLike(object): | |
|
22 | """ FileLike object that redirects all write to a callback. | |
|
23 | ||
|
24 | Only the write-related methods are implemented, as well as those | |
|
25 | required to read a StringIO. | |
|
26 | """ | |
|
27 | closed = False | |
|
28 | ||
|
29 | def __init__(self, write): | |
|
30 | self.write = write | |
|
31 | ||
|
32 | def flush(self): | |
|
33 | pass | |
|
34 | ||
|
35 | def close(self): | |
|
36 | pass | |
|
37 | ||
|
38 | def writelines(self, lines): | |
|
39 | for line in lines: | |
|
40 | self.write(line) | |
|
41 | ||
|
42 | def isatty(self): | |
|
43 | return False | |
|
44 | ||
|
45 | def getvalue(self): | |
|
46 | return '' | |
|
47 | ||
|
48 | ||
|
49 | class SyncOutputTrap(OutputTrap): | |
|
50 | """ Object which redirect text sent to stdout and stderr to write | |
|
51 | callbacks. | |
|
52 | """ | |
|
53 | ||
|
54 | def __init__(self, write_out, write_err): | |
|
55 | # Store callbacks | |
|
56 | self.out = FileLike(write_out) | |
|
57 | self.err = FileLike(write_err) | |
|
58 | ||
|
59 | # Boolean to check if the stdout/stderr hook is set. | |
|
60 | self.out_set = False | |
|
61 | self.err_set = False | |
|
62 | ||
|
63 | def clear(self): | |
|
64 | """ Clear out the buffers. | |
|
65 | """ | |
|
66 | pass | |
|
67 |
@@ -221,6 +221,7 b' class ConsoleWidget(editwindow.EditWindow):' | |||
|
221 | 221 | segments.pop(i) |
|
222 | 222 | |
|
223 | 223 | self.GotoPos(self.GetLength()) |
|
224 | wx.Yield() | |
|
224 | 225 | |
|
225 | 226 | |
|
226 | 227 | def new_prompt(self, prompt): |
@@ -350,6 +351,7 b' class ConsoleWidget(editwindow.EditWindow):' | |||
|
350 | 351 | if event.KeyCode in (13, wx.WXK_NUMPAD_ENTER) and \ |
|
351 | 352 | event.Modifiers in (wx.MOD_NONE, wx.MOD_WIN): |
|
352 | 353 | catched = True |
|
354 | self.CallTipCancel() | |
|
353 | 355 | self.write('\n') |
|
354 | 356 | self._on_enter() |
|
355 | 357 |
@@ -41,7 +41,7 b' _RUNNING_BUFFER_MARKER = 31' | |||
|
41 | 41 | class IPythonWxController(PrefilterFrontEnd, ConsoleWidget): |
|
42 | 42 | |
|
43 | 43 | output_prompt = \ |
|
44 |
' |
|
|
44 | '\x01\x1b[0;31m\x02Out[\x01\x1b[1;31m\x02%i\x01\x1b[0;31m\x02]: \x01\x1b[0m\x02' | |
|
45 | 45 | |
|
46 | 46 | #-------------------------------------------------------------------------- |
|
47 | 47 | # Public API |
@@ -125,9 +125,9 b' class IPythonWxController(PrefilterFrontEnd, ConsoleWidget):' | |||
|
125 | 125 | self.MarkerAdd(i, 31) |
|
126 | 126 | # Update the display: |
|
127 | 127 | wx.Yield() |
|
128 | # Remove the trailing "\n" for cleaner display | |
|
129 | self.SetSelection(self.GetLength()-1, self.GetLength()) | |
|
130 | self.ReplaceSelection('') | |
|
128 | ## Remove the trailing "\n" for cleaner display | |
|
129 | #self.SetSelection(self.GetLength()-1, self.GetLength()) | |
|
130 | #self.ReplaceSelection('') | |
|
131 | 131 | self.GotoPos(self.GetLength()) |
|
132 | 132 | PrefilterFrontEnd.execute(self, python_string, raw_string=raw_string) |
|
133 | 133 |
@@ -20,13 +20,11 b' __docformat__ = "restructuredtext en"' | |||
|
20 | 20 | #------------------------------------------------------------------------------- |
|
21 | 21 | |
|
22 | 22 | # Standard library imports. |
|
23 | from compiler.ast import Discard | |
|
24 | 23 | from types import FunctionType |
|
25 | 24 | |
|
26 | 25 | import __builtin__ |
|
27 | 26 | import codeop |
|
28 | 27 | import compiler |
|
29 | import pprint | |
|
30 | 28 | import sys |
|
31 | 29 | import traceback |
|
32 | 30 |
General Comments 0
You need to be logged in to leave comments.
Login now