No Description

Afshin T. Darian 1edddfb9e6 v0.3.0-beta.5 4 years ago
.github 32f3967858 Unpin xeus 5 years ago
binder 1edddfb9e6 v0.3.0-beta.5 4 years ago
examples 6e5c2743e0 Add sidebar section to the tutorial notebook 5 years ago
schema 23621497eb Filter _xpython-prefixed variables 5 years ago
src 590557170a IEditorFinder#find returns CodeEditor.IEditor[] 4 years ago
style 4dd77c1d72 Fix file editor toolbar CSS 4 years ago
test f7629c9771 Merge pull request #474 from KrzysztofSikoraCodete/extra-breakpoints-console 4 years ago
.eslintignore 356d1fe8a5 Switch to ESLint 5 years ago
.eslintrc.js c783799976 Require jsdoc description for eslint 5 years ago
.gitignore ef32662519 Add yarn.lock 4 years ago
.prettierignore 1910f45233 Add .prettierignore file 5 years ago
.prettierrc 65b4154a8c Add .prettierrc 5 years ago
DESIGN.md f8f82ebdfe Fix design file location. 5 years ago
LICENSE 64db2dfe4b Update LICENSE 5 years ago
README.md 32f3967858 Unpin xeus 5 years ago
babel.config.js 63b8370600 Switch to JupyterServer from @jupyterlab/testutils 5 years ago
jest.config.js 63b8370600 Switch to JupyterServer from @jupyterlab/testutils 5 years ago
lint-staged.config.js e9a52f476b Add explicit return types to functions and methods 5 years ago
package.json 1edddfb9e6 v0.3.0-beta.5 4 years ago
screencast.gif d7015ddb03 Add screencast 5 years ago
tdoptions.json 9e67f61b69 Add a shell JupyterLab extension. 5 years ago
tsconfig.eslint.json 63b8370600 Switch to JupyterServer from @jupyterlab/testutils 5 years ago
tsconfig.json 25bfc84fb0 Add scaffolding for tests 5 years ago
tsconfig.test.json 63b8370600 Switch to JupyterServer from @jupyterlab/testutils 5 years ago
yarn.lock 3434444978 Update to JupyterLab 2.2 final 4 years ago

README.md

@jupyterlab/debugger

Github Actions Status Binder npm

A JupyterLab debugger UI extension. This extension is under active development.

screencast

Prerequisites

  • JupyterLab 2.0+
  • xeus-python 0.8.0+
  • notebook 6+

Installation

A kernel with support for debugging is required to be able to use the debugger.

It is generally recommended to create a new conda environment to install the dependencies:

conda create -n jupyterlab-debugger -c conda-forge xeus-python=0.8.0 notebook=6 jupyterlab=2 ptvsd nodejs
conda activate jupyterlab-debugger

Then, run the following command to install the extension:

jupyter labextension install @jupyterlab/debugger

Usage

For now xeus-python is the only Jupyter kernel that supports debugging. xeus-python can be selected from the JupyterLab launcher:

xpython-launcher

Alternatively, it is also possible to switch to the xpython kernel using the kernel selection dialog:

xpython-dialog

Enable the debugger, set breakpoints and step into the code:

xpython-step

Development

# Create a new conda environment
conda create -n jupyterlab-debugger -c conda-forge nodejs xeus-python=0.8.0 ptvsd jupyterlab=2

# Activate the conda environment
conda activate jupyterlab-debugger

# Install dependencies
jlpm

# Build TypeScript source
jlpm build

# Link your development version of the extension with JupyterLab
jupyter labextension link .

# Rebuild TypeScript source after making changes
jlpm build

# Rebuild JupyterLab after making any changes
jupyter lab build

# Start JupyterLab with the kernel logs enabled and watch mode enabled
XEUS_LOG=1 jupyter lab --no-browser --watch

Tests

To run the tests:

# [Optional] to enable the logs for xeus-python
export XEUS_LOG=1

jlpm run test

To run tests for a specific test suite name:

jlpm run test --testNamePattern=<regex>

To run tests for a specific test module name:

jlpm run test --testPathPattern=<regex>

Inspecting debug messages

The kernelspy extension for JupyterLab can be used to inspect the debug messages sent between the debugger UI and the kernel.

To install it:

jupyter labextension install jupyterlab-kernelspy