diff --git a/voila/handler.py b/voila/handler.py index 72f2e9c31..2a5df8846 100644 --- a/voila/handler.py +++ b/voila/handler.py @@ -200,6 +200,8 @@ async def _jinja_notebook_execute(self, nb, kernel_id): # see the updated variable (it seems to be local to our block) nb.cells = result.cells + await self._cleanup_resources() + async def _jinja_cell_generator(self, nb, kernel_id): """Generator that will execute a single notebook cell at a time""" nb, resources = ClearOutputPreprocessor().preprocess(nb, {'metadata': {'path': self.cwd}}) @@ -250,6 +252,12 @@ async def _jinja_cell_generator(self, nb, kernel_id): finally: yield output_cell + await self._cleanup_resources() + + async def _cleanup_resources(self): + await ensure_async(self.executor.km.cleanup_resources()) + await ensure_async(self.executor.kc.stop_channels()) + async def load_notebook(self, path): model = await ensure_async(self.contents_manager.get(path=path)) if 'content' not in model: