nbdime icon indicating copy to clipboard operation
nbdime copied to clipboard

nbdime cannot handle asynchronous contentmanager

Open icankeep opened this issue 3 years ago • 1 comments

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

icankeep avatar Jun 17 '21 08:06 icankeep

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))

icankeep avatar Jun 17 '21 08:06 icankeep

Closing as fixed in #596

vidartf avatar Nov 10 '23 23:11 vidartf