Skip to content

Commit

Permalink
Don't block the event loop when exporting with nbconvert (#655)
Browse files Browse the repository at this point in the history
  • Loading branch information
davidbrochart committed Jan 11, 2022
1 parent db46446 commit f3b6340
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion jupyter_server/nbconvert/handlers.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import os
import zipfile

from anyio.to_thread import run_sync
from ipython_genutils import text
from ipython_genutils.py3compat import cast_bytes
from nbformat import from_dict
Expand Down Expand Up @@ -115,8 +116,11 @@ async def get(self, format, path):
if ext_resources_dir:
resource_dict["metadata"]["path"] = ext_resources_dir

# Exporting can take a while, delegate to a thread so we don't block the event loop
try:
output, resources = exporter.from_notebook_node(nb, resources=resource_dict)
output, resources = await run_sync(
exporter.from_notebook_node(nb, resources=resource_dict)
)
except Exception as e:
self.log.exception("nbconvert failed: %s", e)
raise web.HTTPError(500, "nbconvert failed: %s" % e) from e
Expand Down

0 comments on commit f3b6340

Please sign in to comment.