##// END OF EJS Templates
clear_output implies '\r' for terminal frontends
MinRK -
Show More
@@ -17,6 +17,8 b' Authors:'
17 17 # Imports
18 18 #-----------------------------------------------------------------------------
19 19
20 from __future__ import print_function
21
20 22 from xml.dom import minidom
21 23
22 24 from .displaypub import (
@@ -496,6 +498,16 b' def clear_output(stdout=True, stderr=True, other=True):'
496 498 (e.g. figures,images,HTML, any result of display()).
497 499 """
498 500 from IPython.core.interactiveshell import InteractiveShell
501 if InteractiveShell.initialized():
499 502 InteractiveShell.instance().display_pub.clear_output(
500 503 stdout=stdout, stderr=stderr, other=other,
501 504 )
505 else:
506 from IPython.utils import io
507 if stdout:
508 print('\033[2K\r', file=io.stdout, end='')
509 io.stdout.flush()
510 if stderr:
511 print('\033[2K\r', file=io.stderr, end='')
512 io.stderr.flush()
513
@@ -30,6 +30,7 b' Authors:'
30 30 from __future__ import print_function
31 31
32 32 from IPython.config.configurable import Configurable
33 from IPython.utils import io
33 34
34 35 #-----------------------------------------------------------------------------
35 36 # Main payload class
@@ -99,14 +100,20 b' class DisplayPublisher(Configurable):'
99 100 arbitrary key, value pairs that frontends can use to interpret
100 101 the data.
101 102 """
102 from IPython.utils import io
103
103 104 # The default is to simply write the plain text data using io.stdout.
104 105 if data.has_key('text/plain'):
105 106 print(data['text/plain'], file=io.stdout)
106 107
107 108 def clear_output(self, stdout=True, stderr=True, other=True):
108 109 """Clear the output of the cell receiving output."""
109 pass
110 if stdout:
111 print('\033[2K\r', file=io.stdout, end='')
112 io.stdout.flush()
113 if stderr:
114 print('\033[2K\r', file=io.stderr, end='')
115 io.stderr.flush()
116
110 117
111 118
112 119 def publish_display_data(source, data, metadata=None):
@@ -81,8 +81,15 b' class ZMQDisplayPublisher(DisplayPublisher):'
81 81 )
82 82
83 83 def clear_output(self, stdout=True, stderr=True, other=True):
84 self._flush_streams()
85 84 content = dict(stdout=stdout, stderr=stderr, other=other)
85
86 if stdout:
87 print('\r', file=sys.stdout, end='')
88 if stderr:
89 print('\r', file=sys.stderr, end='')
90
91 self._flush_streams()
92
86 93 self.session.send(
87 94 self.pub_socket, u'clear_output', content,
88 95 parent=self.parent_header
General Comments 0
You need to be logged in to leave comments. Login now