Metadata-Version: 2.5
Name: jupyterlab-workshop
Version: 0.1.12
Summary: Guided interactive workshops inside JupyterLab.
Project-URL: Homepage, https://github.com/GrahamDumpleton/jupyterlab-workshop
Project-URL: Documentation, https://jupyterlab-workshop.readthedocs.io/
Project-URL: Repository, https://github.com/GrahamDumpleton/jupyterlab-workshop.git
Project-URL: Issues, https://github.com/GrahamDumpleton/jupyterlab-workshop/issues
Author-email: Graham Dumpleton <graham.dumpleton@gmail.com>
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: jupyter,jupyterlab,jupyterlab-extension,training,workshop
Classifier: Framework :: Jupyter
Classifier: Framework :: Jupyter :: JupyterLab
Classifier: Framework :: Jupyter :: JupyterLab :: 4
Classifier: Framework :: Jupyter :: JupyterLab :: Extensions
Classifier: Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.12
Requires-Dist: jupyter-server<3,>=2.13.0
Requires-Dist: pyyaml>=6.0.3
Provides-Extra: lite
Requires-Dist: jupyterlite-core<0.9,>=0.8.3; extra == 'lite'
Requires-Dist: jupyterlite-pyodide-kernel<0.9,>=0.8.5; extra == 'lite'
Requires-Dist: jupyterlite-terminal<2,>=1.6; extra == 'lite'
Provides-Extra: mcp
Requires-Dist: mcp>=1.0; extra == 'mcp'
Provides-Extra: test
Requires-Dist: playwright>=1.45; extra == 'test'
Description-Content-Type: text/markdown

# jupyterlab-workshop

Guided, interactive workshops inside JupyterLab.

> **Early in development.** The documentation and the experience are
> still being polished, and the workshop format, settings and command
> line can change between releases without a compatibility path.

Teaching in JupyterLab usually means a notebook with explanation between
the code cells. Learners read down it pressing Run, everything has to be
a cell in one language, and nothing can tell whether a step was done.
This extension separates the instructions from the work: they live in a
side panel, one page at a time, and each step is a clickable action that
does something real in the JupyterLab session beside it, in a terminal,
the editor, a notebook, a kernel or the interface itself. Workshops can
check what the learner has done, ask questions, collect values, hold
pages until requirements are met, and snapshot the working directory,
and the subject can be anything JupyterLab can host, including
JupyterLab itself.

A workshop is a directory with a `workshop.yaml` manifest and Markdown
pages. The format is text based and git friendly. A workshop runs
wherever JupyterLab runs, and can be handed to learners through a
published collection, a Binder link, or a static JupyterLite site that
runs entirely in the browser.

## Install

The package is a prebuilt JupyterLab 4 extension with its server
extension, installed into a virtual environment alongside JupyterLab
with `uv add jupyterlab jupyterlab-workshop` or the pip equivalent.
[Getting started](https://jupyterlab-workshop.readthedocs.io/en/latest/getting-started.html)
walks through the setup, runs an example workshop and scaffolds one of
your own; the `jupyter workshop` command that comes with the package
lints, self-tests and publishes workshops, and author mode in JupyterLab
edits them in place.

## Learn more

- [Try the demo](https://grahamdumpleton.github.io/jupyterlab-workshop/demo/lab/index.html?reset&workshop=hello-jupyterlab&restart=force):
  the Hello JupyterLab workshop running in JupyterLite, started afresh
  on every visit, or
  [launch on Binder](https://mybinder.org/v2/gh/GrahamDumpleton/jupyterlab-workshop/main?urlpath=lab)
  to pick one of the example workshops in a full JupyterLab with a real
  terminal.

- [How workshops work](https://jupyterlab-workshop.readthedocs.io/en/latest/concepts.html)
  and the
  [tutorial](https://jupyterlab-workshop.readthedocs.io/en/latest/tutorial.html),
  which writes a small workshop from nothing and publishes it.

- [Using workshops](https://jupyterlab-workshop.readthedocs.io/en/latest/using.html)
  for learners and
  [Deploying workshops](https://jupyterlab-workshop.readthedocs.io/en/latest/deploying.html)
  for Binder, JupyterHub and locked-down images.

- [The documentation](https://jupyterlab-workshop.readthedocs.io/) for
  the rest: every action a page can use, checks and forms, variables,
  layouts, platforms, JupyterLite, publishing, trust, the manifest and
  settings references, the command line and authoring in JupyterLab.

- [Source, issues and contributing](https://github.com/GrahamDumpleton/jupyterlab-workshop):
  see `CONTRIBUTING.md` in the repository for the development setup.

## License

Apache License 2.0.
