Skip to main content

np-notebooks-launcher

A GUI tool for launching JupyterLab with a filtered, pre-configured version of a Jupyter notebook. Designed for experiment workflows that use the same notebook across different experiment types (e.g. ephys, hab, training).

PyPI Python version

Coverage CI/CD GitHub issues

What it does

  1. Reads the first cell of a notebook to find _-prefixed variables annotated as Literal, int, float or bool types — these are the configurable parameters:

    alt text

  2. Shows a GUI with a dropdown for each variable, pre-populated with the options and default from the notebook:

    Preview of launcher GUI

  3. Generates a filtered copy of the notebook with the selected values injected and irrelevant cells removed.

  4. Launches JupyterLab with the filtered copy, with the first cell modified:

    alt text

The launcher also has a Reset & Update button which is hard-coded to reset to the latest commit on github.com/alleninstitute/np_notebooks:main and runs uv sync on the repository.

Usage

uvx np-notebook-launcher path/to/notebook.ipynb

How to annotate a notebook

First cell — configurable variables

The first cell of the notebook is special. Any _-prefixed variable with a Literal type annotation will appear as a dropdown in the launcher GUI:

# variables in this cell with underscore-prefix can be injected by launcher:
_experiment: Literal["pretest", "ephys", "opto", "hab", "training"] = "pretest"
  • The variable name must start with _
  • The type annotation must be Literal[opt1, opt2, ...]
  • A default value must be assigned (= "pretest")
  • Supported value types: str, bool, int, float

When launched, the first cell is replaced with a markdown summary of the injected values.

Cell directives — conditional visibility

Add a directive comment as the first line of any cell to control whether it appears in the filtered notebook.

Code cells:

# /// show-if: _experiment=ephys

Markdown cells:

<!-- /// show-if: _experiment=ephys -->

Directives

Directive Behavior
show-if: <condition> Cell is included only when condition is true
hide-if: <condition> Cell is hidden only when condition is true

Cells with no directive are always included.

Condition syntax

Conditions use and, or, not, and names matching the possible option values of the variable. The namespace prefix (e.g. _experiment=) is informational — what follows = is the boolean expression.

# /// show-if: _experiment=ephys
# /// show-if: _experiment=(ephys or opto) and not pretest
# /// hide-if: _experiment=training

For a string variable like _experiment = "ephys", the condition context is {"ephys": True, "pretest": False, "hab": False, ...} — each option is a key and only the selected one is True. Unknown names evaluate to False.

Project structure

src/np_notebooks_launcher/__init__.py   # all logic: parsing, filtering, GUI, CLI
notebooks/dynamic_routing.ipynb         # example annotated notebook
tests/test_launcher.py                  # unit + integration tests
pyproject.toml

Development

Install with uv:

uv sync

Run tests:

uv run task test

The entry points np-notebooks-launcher and launch both map to np_notebooks_launcher:main.

Pushing to main triggers CI/CD with publishing to PyPI.

Key functions

Function Description
parse_first_cell_variables(cell) Extracts annotated _vars from cell 0
parse_cell_directive(cell) Reads show-if/hide-if from a cell's first line
cell_is_visible(cell, ctx) Evaluates directive against a context dict
filter_notebook(nb, ctx, variable_selections) Returns a filtered deep copy of the notebook
generate_filtered_notebook(source, ctx, ...) Filters and writes the notebook to disk
run_launcher(notebook_path) Opens the GUI

Metadata

Release files for np-notebooks-launcher 0.1.17

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for np-notebooks-launcher 0.1.17
File Size Uploaded Provenance
np_notebooks_launcher-0.1.17.tar.gz 9.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for np-notebooks-launcher 0.1.17
File Interpreter ABI Platform
np_notebooks_launcher-0.1.17-py3-none-any.whl Python 3 none any Details

Total release size: 20.0 kB

Release files / np_notebooks_launcher-0.1.17.tar.gz

Download URL np_notebooks_launcher-0.1.17.tar.gz
Size 9.8 kB
Tags Source
SHA-256 checksum
How to use checksums
d9ab84eb86e24612ec4a254151a61d3ab4e04583ea83bf7c1ebaaa36ae2bcc04
BLAKE2b-256 checksum
How to use checksums
8c185beaaae1b41b21243102f93569ae505a81671db14c7ced817a06fc888548
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / np_notebooks_launcher-0.1.17-py3-none-any.whl

Download URL np_notebooks_launcher-0.1.17-py3-none-any.whl
Size 10.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
694f78227ebee2e3e71cb55014089a2480e1316970fcaf1e27a3836d30e70c76
BLAKE2b-256 checksum
How to use checksums
c26c985eb8eac6270bdeeaa7138dd110dd9fd95e5e4ea6968cb2fd721f9b361b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for np-notebooks-launcher 0.1.17

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page