nbdime
nbdime copied to clipboard
nbdime cannot handle asynchronous contentmanager
nbdime==3.1.0
jupyterlab-git==0.30.1
jupyter_server_config.py
from jupyter_server.services.contents.largefilemanager import AsyncLargeFileManager
c.ServerApp.contents_manager_class = AsyncLargeFileManager
error message
[E 2021-06-17 16:21:18.690 ServerApp] Uncaught exception POST /nbdime/api/diff?1623918078686 (::1)
HTTPServerRequest(protocol='http', host='localhost:8888', method='POST', uri='/nbdime/api/diff?1623918078686', version='HTTP/1.1', remote_ip='::1')
Traceback (most recent call last):
File "/Users/passer/conda/envs/jupyterlab-lsp/lib/python3.6/site-packages/tornado/web.py", line 1704, in _execute
result = await result
File "/Users/passer/conda/envs/jupyterlab-lsp/lib/python3.6/site-packages/tornado/gen.py", line 769, in run
yielded = self.gen.throw(*exc_info) # type: ignore
File "/Users/passer/conda/envs/jupyterlab-lsp/lib/python3.6/site-packages/nbdime/webapp/nb_server_extension.py", line 195, in post
base_nb, remote_nb = yield self._get_checkpoint_notebooks(base[len('checkpoint:'):])
File "/Users/passer/conda/envs/jupyterlab-lsp/lib/python3.6/site-packages/tornado/gen.py", line 762, in run
value = future.result()
File "/Users/passer/conda/envs/jupyterlab-lsp/lib/python3.6/site-packages/tornado/gen.py", line 775, in run
yielded = self.gen.send(value)
File "/Users/passer/conda/envs/jupyterlab-lsp/lib/python3.6/site-packages/nbdime/webapp/nb_server_extension.py", line 164, in _get_checkpoint_notebooks
remote_nb = model['content']
TypeError: 'coroutine' object is not subscriptable
e.g. ExtensionApiDiffHandler#_get_checkpoint_notebooks
checkpoints = yield gen.maybe_future(cm.list_checkpoints(base))
It feels better that code like the following
checkpoints = await ensure_async(cm.list_checkpoints(base))
Closing as fixed in #596