diff --git a/plugins/kernel/txl_kernel/driver.py b/plugins/kernel/txl_kernel/driver.py index 840d9ef..78c24ea 100644 --- a/plugins/kernel/txl_kernel/driver.py +++ b/plugins/kernel/txl_kernel/driver.py @@ -121,6 +121,7 @@ async def execute( if ycell["cell_type"] != "code": return ycell["outputs"].clear() + ycell["execution_count"] = None code = str(ycell["source"]) content = {"code": code, "silent": False} msg = create_message( diff --git a/plugins/notebook_editor/txl_notebook_editor/components.py b/plugins/notebook_editor/txl_notebook_editor/components.py index dc12ef6..c86f74b 100644 --- a/plugins/notebook_editor/txl_notebook_editor/components.py +++ b/plugins/notebook_editor/txl_notebook_editor/components.py @@ -86,6 +86,7 @@ def __init__( self.nb_change_target = asyncio.Queue() self.nb_change_events = asyncio.Queue() self.top_bar = TopBar() + self._background_tasks = set() def compose(self) -> ComposeResult: yield self.top_bar @@ -340,7 +341,9 @@ async def do_later(): } ) else: - await self.kernel.execute(self.current_cell.ycell) + task = asyncio.create_task(self.kernel.execute(self.current_cell.ycell)) + self._background_tasks.add(task) + task.add_done_callback(self._background_tasks.discard) elif event.key == Keys.ControlR: event.stop() if self.kernel: @@ -355,7 +358,9 @@ async def do_later(): } ) else: - await self.kernel.execute(self.current_cell.ycell) + task = asyncio.create_task(self.kernel.execute(self.current_cell.ycell)) + self._background_tasks.add(task) + task.add_done_callback(self._background_tasks.discard) if self.cell_i == len(self.cells) - 1: ycell = self.ynb.create_ycell( {