feat: preserve Jupyter MIME output in Streamlit

This commit is contained in:
lda
2026-08-31 00:52:34 +07:00 Verified
parent 6a8546cb0f
commit 0754cb2508
16 changed files with 1315 additions and 75 deletions
+12 -16
View File
@@ -4,7 +4,8 @@ import unittest
from ipython_shell.jupyter.app import JupyterApp
from ipython_shell.jupyter.shell import JupyterShell
from ipython_shell.jupyter.transport import InputRequest, KernelMessage
from ipython_shell.jupyter.messages import ExecuteResultMessage
from ipython_shell.jupyter.transport import InputRequest
class JupyterShellTests(unittest.IsolatedAsyncioTestCase):
@@ -30,19 +31,17 @@ class JupyterShellTests(unittest.IsolatedAsyncioTestCase):
self.assertEqual(
next(
message.content["data"]["text/plain"]
message.content.data["text/plain"]
for message in first
if isinstance(message, KernelMessage)
and message.msg_type == "execute_result"
if isinstance(message, ExecuteResultMessage)
),
"41",
)
self.assertEqual(
next(
message.content["data"]["text/plain"]
message.content.data["text/plain"]
for message in second
if isinstance(message, KernelMessage)
and message.msg_type == "execute_result"
if isinstance(message, ExecuteResultMessage)
),
"42",
)
@@ -97,19 +96,17 @@ class JupyterAppTests(unittest.IsolatedAsyncioTestCase):
self.assertEqual(
next(
message.content["data"]["text/plain"]
message.content.data["text/plain"]
for message in beta_view
if isinstance(message, KernelMessage)
and message.msg_type == "execute_result"
if isinstance(message, ExecuteResultMessage)
),
"False",
)
self.assertEqual(
next(
message.content["data"]["text/plain"]
message.content.data["text/plain"]
for message in alpha_view
if isinstance(message, KernelMessage)
and message.msg_type == "execute_result"
if isinstance(message, ExecuteResultMessage)
),
"'alpha'",
)
@@ -143,10 +140,9 @@ class JupyterAppTests(unittest.IsolatedAsyncioTestCase):
self.assertEqual(
next(
message.content["data"]["text/plain"]
message.content.data["text/plain"]
for message in messages
if isinstance(message, KernelMessage)
and message.msg_type == "execute_result"
if isinstance(message, ExecuteResultMessage)
),
"'Ada'",
)