summaryrefslogtreecommitdiffstats
path: root/jupyterlab/kernel/gamestonk_kernel/gamestonk_kernel.py
diff options
context:
space:
mode:
Diffstat (limited to 'jupyterlab/kernel/gamestonk_kernel/gamestonk_kernel.py')
-rw-r--r--jupyterlab/kernel/gamestonk_kernel/gamestonk_kernel.py24
1 files changed, 23 insertions, 1 deletions
diff --git a/jupyterlab/kernel/gamestonk_kernel/gamestonk_kernel.py b/jupyterlab/kernel/gamestonk_kernel/gamestonk_kernel.py
index 39a6b40ae5d..83db4039bed 100644
--- a/jupyterlab/kernel/gamestonk_kernel/gamestonk_kernel.py
+++ b/jupyterlab/kernel/gamestonk_kernel/gamestonk_kernel.py
@@ -6,6 +6,14 @@ from ipykernel.kernelbase import Kernel
from terminal import TerminalController, bootup
+def _to_svg(fig):
+ """Return a svg image from a matplotlib figure."""
+ imgdata = io.BytesIO()
+ fig.savefig(imgdata, format="svg")
+ imgdata.seek(0)
+ return imgdata.getvalue().decode("utf-8")
+
+
class GamestonkKernel(Kernel):
"""The Gamestonk Kernel."""
@@ -57,12 +65,26 @@ class GamestonkKernel(Kernel):
# True - Quit or Reset based on flag
# False - Keep loop and show help menu
+ if process_input is not None and isinstance(process_input, tuple):
+ # We expect to receive a matplotlib figure in `process_input`
+ fig, _ = process_input
+ svg_fig = _to_svg(fig)
+
+ content = {
+ "data": {"image/svg+xml": svg_fig},
+ "metadata": {
+ "image/html": {"width": 600, "height": 400},
+ "isolated": True,
+ },
+ }
+ self.send_response(self.iopub_socket, "display_data", content)
if process_input is not None and not isinstance(
process_input, bool
):
- # Quit terminal
+ # We expect to receive a controller in `process_input`
self.t_controller = process_input
if process_input is True and isinstance(process_input, bool):
+ # We expect to receive a True boolean in `process_input`
self.t_controller = TerminalController()
self.t_controller.print_help()