##// END OF EJS Templates
store execute_replies in a nice wrapper
MinRK -
Show More
@@ -72,6 +72,60 b' def spin_first(f, self, *args, **kwargs):'
72 72 # Classes
73 73 #--------------------------------------------------------------------------
74 74
75
76 class ExecuteReply(object):
77 """wrapper for finished Execute results"""
78 def __init__(self, msg_id, content, metadata):
79 self.msg_id = msg_id
80 self._content = content
81 self.execution_count = content['execution_count']
82 self.metadata = metadata
83
84 def __getitem__(self, key):
85 return self.metadata[key]
86
87 def __getattr__(self, key):
88 if key not in self.metadata:
89 raise AttributeError(key)
90 return self.metadata[key]
91
92 def __repr__(self):
93 pyout = self.metadata['pyout'] or {}
94 text_out = pyout.get('text/plain', '')
95 if len(text_out) > 32:
96 text_out = text_out[:29] + '...'
97
98 return "<ExecuteReply[%i]: %s>" % (self.execution_count, text_out)
99
100 def _repr_html_(self):
101 pyout = self.metadata['pyout'] or {}
102 return pyout.get("text/html")
103
104 def _repr_latex_(self):
105 pyout = self.metadata['pyout'] or {}
106 return pyout.get("text/latex")
107
108 def _repr_json_(self):
109 pyout = self.metadata['pyout'] or {}
110 return pyout.get("application/json")
111
112 def _repr_javascript_(self):
113 pyout = self.metadata['pyout'] or {}
114 return pyout.get("application/javascript")
115
116 def _repr_png_(self):
117 pyout = self.metadata['pyout'] or {}
118 return pyout.get("image/png")
119
120 def _repr_jpeg_(self):
121 pyout = self.metadata['pyout'] or {}
122 return pyout.get("image/jpeg")
123
124 def _repr_svg_(self):
125 pyout = self.metadata['pyout'] or {}
126 return pyout.get("image/svg+xml")
127
128
75 129 class Metadata(dict):
76 130 """Subclass of dict for initializing metadata values.
77 131
@@ -646,7 +700,7 b' class Client(HasTraits):'
646 700
647 701 # construct result:
648 702 if content['status'] == 'ok':
649 self.results[msg_id] = content
703 self.results[msg_id] = ExecuteReply(msg_id, content, md)
650 704 elif content['status'] == 'aborted':
651 705 self.results[msg_id] = error.TaskAborted(msg_id)
652 706 elif content['status'] == 'resubmitted':
@@ -878,14 +932,14 b' class Client(HasTraits):'
878 932 """
879 933 if self._notification_socket:
880 934 self._flush_notifications()
935 if self._iopub_socket:
936 self._flush_iopub(self._iopub_socket)
881 937 if self._mux_socket:
882 938 self._flush_results(self._mux_socket)
883 939 if self._task_socket:
884 940 self._flush_results(self._task_socket)
885 941 if self._control_socket:
886 942 self._flush_control(self._control_socket)
887 if self._iopub_socket:
888 self._flush_iopub(self._iopub_socket)
889 943 if self._query_socket:
890 944 self._flush_ignored_hub_replies()
891 945
General Comments 0
You need to be logged in to leave comments. Login now