Skip to content

nbdiff-web gives error Exception: You must define the 'login_url' setting in your application to use @tornado.web.authenticated` #749

@this-josh

Description

@this-josh

I have created a clean conda 3.12.2 env and installed nbdime==4.0.1.

I have then created a clean git repo, a and committed a notebook called a.ipynb. Now, after changing the notebook and running nbdiff-web a.ipynb

I get the error

[I nbdimeserver:430] Listening on 127.0.0.1, port 58036
[I webutil:29] URL: http://127.0.0.1:58036/difftool
[E web:1875] Uncaught exception GET /difftool (127.0.0.1)
HTTPServerRequest(protocol='http', host='127.0.0.1:58036', method='GET', uri='/difftool', version='HTTP/1.1', remote_ip='127.0.0.1')
Traceback (most recent call last):
  File "/private/tmp/.venv/lib/python3.12/site-packages/tornado/web.py", line 1769, in _execute
    result = await result  # type: ignore
             ^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/jupyter_server/base/handlers.py", line 642, in prepare
    return web.authenticated(lambda _: super().prepare())(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/tornado/web.py", line 3289, in wrapper
    url = self.get_login_url()
          ^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/tornado/web.py", line 1443, in get_login_url
    self.require_setting("login_url", "@tornado.web.authenticated")
  File "/private/tmp/.venv/lib/python3.12/site-packages/tornado/web.py", line 1673, in require_setting
    raise Exception(
Exception: You must define the 'login_url' setting in your application to use @tornado.web.authenticated
[E web:1300] Uncaught exception in write_error
Traceback (most recent call last):
  File "/private/tmp/.venv/lib/python3.12/site-packages/tornado/web.py", line 1769, in _execute
    result = await result  # type: ignore
             ^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/jupyter_server/base/handlers.py", line 642, in prepare
    return web.authenticated(lambda _: super().prepare())(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/tornado/web.py", line 3289, in wrapper
    url = self.get_login_url()
          ^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/tornado/web.py", line 1443, in get_login_url
    self.require_setting("login_url", "@tornado.web.authenticated")
  File "/private/tmp/.venv/lib/python3.12/site-packages/tornado/web.py", line 1673, in require_setting
    raise Exception(
Exception: You must define the 'login_url' setting in your application to use @tornado.web.authenticated

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/private/tmp/.venv/lib/python3.12/site-packages/jupyter_server/base/handlers.py", line 738, in write_error
    html = self.render_template("%s.html" % status_code, **ns)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/jupyter_server/base/handlers.py", line 665, in render_template
    template = self.get_template(name)
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/jupyter_server/base/handlers.py", line 660, in get_template
    return self.settings["jinja2_env"].get_template(name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/jinja2/environment.py", line 1010, in get_template
    return self._load_template(name, globals)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/jinja2/environment.py", line 969, in _load_template
    template = self.loader.load(self, name, self.make_globals(globals))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/jinja2/loaders.py", line 125, in load
    source, filename, uptodate = self.get_source(environment, name)
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/jinja2/loaders.py", line 204, in get_source
    raise TemplateNotFound(template)
jinja2.exceptions.TemplateNotFound: 500.html

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/private/tmp/.venv/lib/python3.12/site-packages/tornado/web.py", line 1298, in send_error
    self.write_error(status_code, **kwargs)
  File "/private/tmp/.venv/lib/python3.12/site-packages/nbdime/webapp/nbdimeserver.py", line 68, in write_error
    return super(NbdimeHandler, self).write_error(status_code, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/jupyter_server/base/handlers.py", line 740, in write_error
    html = self.render_template("error.html", **ns)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/jupyter_server/base/handlers.py", line 665, in render_template
    template = self.get_template(name)
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/jupyter_server/base/handlers.py", line 660, in get_template
    return self.settings["jinja2_env"].get_template(name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/jinja2/environment.py", line 1010, in get_template
    return self._load_template(name, globals)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/jinja2/environment.py", line 969, in _load_template
    template = self.loader.load(self, name, self.make_globals(globals))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/jinja2/loaders.py", line 125, in load
    source, filename, uptodate = self.get_source(environment, name)
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/jinja2/loaders.py", line 204, in get_source
    raise TemplateNotFound(template)
jinja2.exceptions.TemplateNotFound: error.html
[E log:97] {
  "Host": "127.0.0.1:58036",
  "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
  "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
}
[E log:98] 500 GET /difftool (@127.0.0.1) 22.21ms referer=None
^CTraceback (most recent call last):
  File "/private/tmp/.venv/bin/nbdiff-web", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/nbdime/webapp/nbdiffweb.py", line 96, in main
    return main_diff(opts)
           ^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/nbdime/webapp/nbdiffweb.py", line 82, in main_diff
    return handle_gitrefs(base, remote, path, opts)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/nbdime/webapp/nbdiffweb.py", line 64, in handle_gitrefs
    status = run_server(
             ^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/site-packages/nbdime/webapp/nbdimeserver.py", line 446, in main_server
    io_loop.start()
  File "/private/tmp/.venv/lib/python3.12/site-packages/tornado/platform/asyncio.py", line 205, in start
    self.asyncio_loop.run_forever()
  File "/private/tmp/.venv/lib/python3.12/asyncio/base_events.py", line 639, in run_forever
    self._run_once()
  File "/private/tmp/.venv/lib/python3.12/asyncio/base_events.py", line 1947, in _run_once
    event_list = self._selector.select(timeout)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/private/tmp/.venv/lib/python3.12/selectors.py", line 566, in select
    kev_list = self._selector.control(None, max_ev, timeout)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
KeyboardInterrupt

This is on macOS 14.3.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions