Adding Your Own Data Apps to JupyterLab
11-01, 15:10–16:40 (America/New_York), Winter Garden (Room 5412)

In this practical talk about how to extend JupyterLab, we focus on understanding the underlying extension support infrastructure. As we walk through a step-by-step example of creating an app in JupyterLab, we'll learn, among other things, how to launch that app from different places within JupyterLab, how to style our app, and how to pass parameters to our app to modify its behavior. This talk is for anyone who finds themselves doing complex or repetitive tasks and thinks that they, and others, may benefit from integrating those tasks into JupyterLab.


JupyterLab enables you to work with documents and activities such as Jupyter notebooks, text editors, terminals, and custom components in a flexible, integrated, and extensible manner.

This is a practical talk about how to extend JupyterLab. It is for anyone who finds themselves doing complex or repetitive tasks and thinks that they, and others, may benefit from integrating those tasks into JupyterLab; in other words, it is for anyone who wants to extend JupyterLab.

We will walk through a step-by-step simple example of creating and adding an extension application to JupyterLab. As we proceed, we will discuss and demonstrate the tools and infrastructure available for extending JupyterLab. Attendees will take away a clear understanding of how JupyterLab extensions work, and what steps to take to build their own extensions. The step-by-step example will also be made available in a GitHub repository.

Outline:
- Introduction and a brief description of JupyterLab extensions
- Building a basic extension
- explanation of important files
- basic principles of extension tools and infrastructure
- installing and initializing our extension
- Using the command registry
- Executing from the Command Palette
- Creating an app with widgets
- Styling Extensions in JupyterLab
- Executing from the Launcher
- Passing arguments to our application
- Creating our own Sidebar launcher
- Using event listeners to launch different versions of our app

REQUIRED background knowledge:

  • Attendees should some familiarity with Jupyter Notebooks and/or JupyterLab.
  • Attendess must have solid experience with any typical object-oriented programming language (i.e. a good understanding of classes, objects, and inheritence).
  • Attendees must have a laptop with miniconda installed. (conda, micromamba, or mamba environments work as well). (See https://docs.conda.io/projects/miniconda/en/latest/miniconda-install.html )
  • It is strongly recommended that attendees install the following environment before the tutorial:
    conda create -n jlx --override-channels --strict-channel-priority  \
    -c conda-forge -c nodefaults \
    jupyterlab=4 nodejs=18 git copier=7 jinja2-time

Prior Knowledge Expected

No previous knowledge expected

Daniel is an engineer at Bloomberg L.P. with experience developing Trading Systems, Risk Analytics, and applications for Financial Analysis of Equities and Fixed Income securities. He holds a Ph.D. in Molecular Biophysics from the University of Virginia, and was a CFA charter holder and member of the Chartered Financial Analyst Institute for more than 10 years. He is the Open Source maintainer of Matplotlib's MPLFINANCE package (https://pypi.org/project/mplfinance/), and the author of McGraw-Hill's "Biophysics Demystified."