Show More
@@ -15,6 +15,7 b' For more details, see the ipython-zmq design' | |||||
15 | #----------------------------------------------------------------------------- |
|
15 | #----------------------------------------------------------------------------- | |
16 | # Imports |
|
16 | # Imports | |
17 | #----------------------------------------------------------------------------- |
|
17 | #----------------------------------------------------------------------------- | |
|
18 | from __future__ import print_function | |||
18 |
|
19 | |||
19 | import __builtin__ |
|
20 | import __builtin__ | |
20 | import sys |
|
21 | import sys | |
@@ -79,9 +80,10 b' class Frontend(object):' | |||||
79 | """ |
|
80 | """ | |
80 |
|
81 | |||
81 | try: |
|
82 | try: | |
82 | self._splitter.push(raw_input('In[%i]:'%self.prompt_count+self.code)) |
|
83 | print() | |
|
84 | self._splitter.push(raw_input(' In[%i]: '%self.prompt_count+self.code)) | |||
83 | while self._splitter.push_accepts_more(): |
|
85 | while self._splitter.push_accepts_more(): | |
84 | self.code = raw_input('.....:'+' '*self._splitter.indent_spaces) |
|
86 | self.code = raw_input(' .....: '+' '*self._splitter.indent_spaces) | |
85 | self._splitter.push(' '*self._splitter.indent_spaces+self.code) |
|
87 | self._splitter.push(' '*self._splitter.indent_spaces+self.code) | |
86 | self._execute(self._splitter.source,False) |
|
88 | self._execute(self._splitter.source,False) | |
87 | self._splitter.reset() |
|
89 | self._splitter.reset() | |
@@ -128,17 +130,12 b' class Frontend(object):' | |||||
128 | if msg_xreq["parent_header"]["msg_id"] == msg_id: |
|
130 | if msg_xreq["parent_header"]["msg_id"] == msg_id: | |
129 | if msg_xreq["content"]["status"] == 'ok' : |
|
131 | if msg_xreq["content"]["status"] == 'ok' : | |
130 | self.handle_sub_channel() |
|
132 | self.handle_sub_channel() | |
131 | self.prompt_count = msg_xreq["content"]["execution_count"] + 1 |
|
|||
132 |
|
133 | |||
133 | else: |
|
134 | elif msg_xreq["content"]["status"] == 'error': | |
134 |
|
|
135 | for frame in msg_xreq["content"]["traceback"]: | |
135 |
print |
|
136 | print(frame, file=sys.stderr) | |
136 | try: # These bits aren't there for a SyntaxError |
|
137 | ||
137 | print >> sys.stderr, etb[1] |
|
138 | self.prompt_count = msg_xreq["content"]["execution_count"] + 1 | |
138 | print >> sys.stderr, etb[2] |
|
|||
139 | except IndexError: |
|
|||
140 | pass |
|
|||
141 | self.prompt_count = msg_xreq["content"]["execution_count"] + 1 |
|
|||
142 |
|
139 | |||
143 |
|
140 | |||
144 | def handle_sub_channel(self): |
|
141 | def handle_sub_channel(self): | |
@@ -160,14 +157,16 b' class Frontend(object):' | |||||
160 |
|
157 | |||
161 | elif sub_msg['msg_type'] == 'stream' : |
|
158 | elif sub_msg['msg_type'] == 'stream' : | |
162 | if sub_msg["content"]["name"] == "stdout": |
|
159 | if sub_msg["content"]["name"] == "stdout": | |
163 |
print |
|
160 | print(sub_msg["content"]["data"], file=sys.stdout, end="") | |
164 | sys.stdout.flush() |
|
161 | sys.stdout.flush() | |
165 | elif sub_msg["content"]["name"] == "stderr" : |
|
162 | elif sub_msg["content"]["name"] == "stderr" : | |
166 |
print |
|
163 | print(sub_msg["content"]["data"], file=sys.stderr, end="") | |
167 | sys.stderr.flush() |
|
164 | sys.stderr.flush() | |
168 |
|
165 | |||
169 | elif sub_msg['msg_type'] == 'pyout' : |
|
166 | elif sub_msg['msg_type'] == 'pyout' : | |
170 |
print |
|
167 | print("Out[%i]:"%sub_msg["content"]["execution_count"], | |
|
168 | sub_msg["content"]["data"]["text/plain"], | |||
|
169 | file=sys.stdout) | |||
171 | sys.stdout.flush() |
|
170 | sys.stdout.flush() | |
172 |
|
171 | |||
173 | def handle_rep_channel(self, timeout=0.1): |
|
172 | def handle_rep_channel(self, timeout=0.1): |
General Comments 0
You need to be logged in to leave comments.
Login now