Brought to you by NumFOCUS Foundation and O’Reilly Media
The official Jupyter Conference
Aug 21-22, 2018: Training
Aug 22-24, 2018: Tutorials & Conference
New York, NY

Jupyter's configuration system

Afshin Darian (Two Sigma | Project Jupyter), M Pacer (Netflix), Min Ragan-Kelley (Simula Research Laboratory), Matthias Bussonnier (UC Berkeley BIDS)
2:40pm–3:20pm Friday, August 24, 2018
Location: Sutton Center/Sutton South
Average rating: ****.
(4.00, 2 ratings)

What you'll learn

  • Explore Jupyter's config systems
  • Learn how to use them productively and how to debug them when things (inevitably) break


Jupyter’s straightforward, out-of-the-box experience has been important for its success in widespread adoption. But good defaults only go so far. Jupyter’s modular design and powerful, flexible configuration systems inspire users’ creativity and enthusiasm. By enabling people to customize their tools, Jupyter’s configuration systems allow people to determine their own computational destiny. However, with great power comes great fragility; the same config files that enable user freedom and empowerment are a potential source of user frustration and confusion. Because of how Jupyter’s configuration systems work, tracing down the source of a configuration issue can be an arduous task.

Join Afshin Darian, M Pacer, Min Ragan-Kelley, and Matthias Bussonnier to go beyond the defaults and make Jupyter your own, focusing on Jupyter’s config systems—how to use them productively and how to debug them when things (inevitably) break. This is all the more important to do today, as the number and diversity of configuration systems is continuing to grow. For instance, Jupyter’s Python applications use the classic traitlets system, a versatile typed system that allows defining a common interface across CLIs, APIs, and configuration files, while JupyterLab introduces new configuration systems, as well as user-friendly interfaces for viewing and setting those configuration values. And managed deployments present their own challenges.

Through concrete examples and demos, you’ll explore the ideas needed to use, understand, and debug Jupyter’s configuration system. Some topics will be demonstrations of JupyterLab UIs, while others will show the role of configuration across a number of Jupyter libraries, including nbconvert, the notebook server, JupyterLab LaTeX, and traitlets.config.

Topics include:

  • Jupyter’s Python-based configuration systems (via traitlets.config)
  • How to set configuration settings on the command line, in configuration files, or in programmatic code (and why you’d want to)
  • The many scopes of configuration and how to use them to your advantage
  • What server extensions are and how to install, enable, and disable them
  • How to build configurable API handlers and nonconfigurable API handlers that can still use configuration files
  • How to use jupyter_conf_search to help you hunt down configuration issues
  • JupyterLab’s configuration systems
  • How to use themes
  • How to set custom keybindings
  • How to save and manipulate user sessions (i.e., JupyterLab workspaces)
  • How to enable and disable labextensions
  • JupyterLab’s hierarchical semantics for creating defaults and allowing overrides
Photo of Afshin Darian

Afshin Darian

Two Sigma | Project Jupyter

Afshin Darian is a Jupyter core developer at Two Sigma and a coauthor of JupyterLab. He has been active in the open source community for several years and has worked at several open source enterprises, including Anaconda, Alfresco Software, and OpenGamma. Darian holds degrees in philosophy and medieval history.

Photo of M Pacer

M Pacer


M Pacer is a Jupyter core developer and a senior notebook engineer at Netflix. Previously, M was a postdoctoral researcher the Berkeley Institute for Data Science (BIDS), focusing on the intersection between Jupyter and scientific publishing. M holds a PhD from UC Berkeley, where their research used machine learning and human experiments to study casual explanation and causal inference, and a BS from Yale University, where their research focused on the role of causal language in evaluating scientific claims.

Photo of Min Ragan-Kelley

Min Ragan-Kelley

Simula Research Laboratory

Min Ragan-Kelley is a postdoctoral fellow at Simula Research Lab in Oslo, Norway, where he focuses on developing JupyterHub, Binder, and related technologies and supporting deployments of Jupyter in science and education around the world. Min has been contributing to IPython and Jupyter since 2006 (full-time since 2013).

Photo of Matthias Bussonnier

Matthias Bussonnier

UC Berkeley BIDS

Matthias Bussonnier is postdoc at UC Berkeley BIDS and a core developer of the Jupyter and IPython project, where he is working in close collaboration with Google to bring real-time collaboration to the Jupyter environment.