From cc1055a450c0a13caefdcfc1784acbd5c897e69d Mon Sep 17 00:00:00 2001 From: AlexandreSajus Date: Wed, 8 Dec 2021 19:58:01 +0100 Subject: [PATCH] :beetle: adds html output support --- opencodeblocks/blocks/codeblock.py | 8 ++++++-- opencodeblocks/graphics/kernel.py | 4 ++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/opencodeblocks/blocks/codeblock.py b/opencodeblocks/blocks/codeblock.py index ae8c9fc1..27395cea 100644 --- a/opencodeblocks/blocks/codeblock.py +++ b/opencodeblocks/blocks/codeblock.py @@ -82,14 +82,16 @@ def init_run_button(self): """Initialize the run button""" run_button = QPushButton(">", self.root) run_button.move(int(self.edge_size), int(self.edge_size / 2)) - run_button.setFixedSize(int(3 * self.edge_size), int(3 * self.edge_size)) + run_button.setFixedSize(int(3 * self.edge_size), + int(3 * self.edge_size)) run_button.clicked.connect(self.run_left) return run_button def init_run_all_button(self): """Initialize the run all button""" run_all_button = QPushButton(">>", self.root) - run_all_button.setFixedSize(int(3 * self.edge_size), int(3 * self.edge_size)) + run_all_button.setFixedSize( + int(3 * self.edge_size), int(3 * self.edge_size)) run_all_button.clicked.connect(self.run_right) run_all_button.raise_() @@ -228,6 +230,8 @@ def stdout(self, value: str): if hasattr(self, "output_panel"): if value.startswith(""): display_text = self.b64_to_html(value[5:]) + elif value.startswith("
"): + display_text = value else: display_text = self.str_to_html(value) self.output_panel.setText(display_text) diff --git a/opencodeblocks/graphics/kernel.py b/opencodeblocks/graphics/kernel.py index 7563d9fa..75202c49 100644 --- a/opencodeblocks/graphics/kernel.py +++ b/opencodeblocks/graphics/kernel.py @@ -34,6 +34,10 @@ def message_to_output(self, message: dict) -> Tuple[str, str]: message_type = 'image' # output an image (from plt.plot or plt.imshow) out = message['data']['image/png'] + elif 'text/html' in message['data']: + message_type = 'text' + # output some html text (like a pandas dataframe) + out = message['data']['text/html'] else: message_type = 'text' # output data as str (for example if code="a=10\na")