1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
"""A simple Jupyter Server extension example."""
import os
from traitlets import Unicode
from jupyter_server.extension.application import ExtensionApp, ExtensionAppJinjaMixin
from .handlers import ErrorHandler, IndexHandler, ParameterHandler, TemplateHandler
DEFAULT_STATIC_FILES_PATH = os.path.join(os.path.dirname(__file__), "static")
DEFAULT_TEMPLATE_FILES_PATH = os.path.join(os.path.dirname(__file__), "templates")
class SimpleApp2(ExtensionAppJinjaMixin, ExtensionApp):
"""A simple application."""
# The name of the extension.
name = "simple_ext2"
# The url that your extension will serve its homepage.
extension_url = "/simple_ext2"
# Should your extension expose other server extensions when launched directly?
load_other_extensions = True
# Local path to static files directory.
static_paths = [DEFAULT_STATIC_FILES_PATH] # type:ignore[assignment]
# Local path to templates directory.
template_paths = [DEFAULT_TEMPLATE_FILES_PATH] # type:ignore[assignment]
configD = Unicode("", config=True, help="Config D example.")
def initialize_handlers(self):
"""Initialize handlers."""
self.handlers.extend(
[
(r"/simple_ext2/params/(.+)$", ParameterHandler),
(r"/simple_ext2/template", TemplateHandler),
(r"/simple_ext2/?", IndexHandler),
(r"/simple_ext2/(.*)", ErrorHandler),
]
)
def initialize_settings(self):
"""Initialize settings."""
self.log.info(f"Config {self.config}")
# -----------------------------------------------------------------------------
# Main entry point
# -----------------------------------------------------------------------------
main = launch_new_instance = SimpleApp2.launch_instance
|