You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
831 B
Python
34 lines
831 B
Python
"""An error handler for JupyterLab."""
|
|
|
|
# Copyright (c) Jupyter Development Team.
|
|
# Distributed under the terms of the Modified BSD License.
|
|
|
|
from jupyter_server.base.handlers import JupyterHandler
|
|
from jupyter_server.extension.handler import ExtensionHandlerMixin
|
|
from tornado import web
|
|
|
|
TEMPLATE = """
|
|
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>JupyterLab Error</title>
|
|
</head>
|
|
<body>
|
|
<h1>JupyterLab Error<h1>
|
|
{messages}
|
|
</body>
|
|
"""
|
|
|
|
|
|
class ErrorHandler(ExtensionHandlerMixin, JupyterHandler):
|
|
def initialize(self, messages=None, name=None):
|
|
super().initialize(name=name)
|
|
self.messages = messages
|
|
|
|
@web.authenticated
|
|
@web.removeslash
|
|
def get(self):
|
|
msgs = [f"<h2>{msg}</h2>" for msg in self.messages]
|
|
self.write(TEMPLATE.format(messages="\n".join(msgs)))
|