##// END OF EJS Templates
Adding transient and update, change to dict for outputs
Henry Fredrick Schreiner -
Show More
@@ -115,10 +115,11 b' class CapturingDisplayPublisher(DisplayPublisher):'
115 115 outputs = List()
116 116
117 117 def publish(self, data, metadata=None, source=None, *, transient=None, update=False):
118 self.outputs.append((data, metadata))
118 self.outputs.append({'data':data, 'metadata':metadata,
119 'transient':transient, 'update':update})
119 120
120 121 def clear_output(self, wait=False):
121 122 super(CapturingDisplayPublisher, self).clear_output(wait)
122 123
123 124 # empty the list, *do not* reassign a new list
124 del self.outputs[:]
125 self.outputs.clear()
@@ -14,13 +14,16 b' from io import StringIO'
14 14
15 15
16 16 class RichOutput(object):
17 def __init__(self, data=None, metadata=None):
17 def __init__(self, data=None, metadata=None, transient=None, update=False):
18 18 self.data = data or {}
19 19 self.metadata = metadata or {}
20 self.transient = transient or {}
21 self.update = update
20 22
21 23 def display(self):
22 24 from IPython.display import publish_display_data
23 publish_display_data(data=self.data, metadata=self.metadata)
25 publish_display_data(data=self.data, metadata=self.metadata,
26 transient=self.transient, update=self.update)
24 27
25 28 def _repr_mime_(self, mime):
26 29 if mime not in self.data:
@@ -104,7 +107,7 b' class CapturedIO(object):'
104 107 for o in c.outputs:
105 108 display(o)
106 109 """
107 return [ RichOutput(d, md) for d, md in self._outputs ]
110 return [ RichOutput(**kargs) for kargs in self._outputs ]
108 111
109 112 def show(self):
110 113 """write my output to sys.stdout/err as appropriate"""
@@ -112,8 +115,8 b' class CapturedIO(object):'
112 115 sys.stderr.write(self.stderr)
113 116 sys.stdout.flush()
114 117 sys.stderr.flush()
115 for data, metadata in self._outputs:
116 RichOutput(data, metadata).display()
118 for kargs in self._outputs:
119 RichOutput(**kargs).display()
117 120
118 121 __call__ = show
119 122
General Comments 0
You need to be logged in to leave comments. Login now