Visualize Python code execution in Jupyter Notebook cells
Project description
Visualize Python code execution (line-by-line) in Jupyter Notebook cells. Inspired by Online Python Tutor.
Install
Note: installing directly off this repo won’t work, as we don’t ship the built JavaScript and CSS assets. See more about developing below.
pip
pip install nbtutor
jupyter nbextension install --overwrite --py nbpresent
jupyter nbextension enable --py nbpresent
Usage (Jupyter Notebook)
First load the nbtutor IPython kernel extension at top of the Notebook by executing the following magic in a CodeCell:
%load_ext nbtutor
Then to visualize the execute of code in a CodeCell add the following magic to the top of the CodeCell and execute it again:
%%nbtutor
Optional arguments
There are also optional arguments that can be used with the cell magic:
Reset the IPython user namespace
%%nbtutor -r/--reset
Suppress the confirmation message from -r/--reset
%%nbtutor -r/--reset -f/--force
Render primitive objects inline
%%nbtutor -i/--inline
Specify the maximum frame depth to visualize (default: 1)
%%nbtutor -d/--depth N
Specify the number of significant digits for floats (default: 3)
%%nbtutor --digits D
Specify the maximum number of elements to visualize for “sequence” type objects (default: 5)
%%nbtutor --max_size S
Step through all frames (including frames from other cells and other global scopes altogether)
%%nbtutor --step_all
Expand numpy arrays to show underlying data
%%nbtutor --expand_arrays
No inlined keys, attributes, or primitive objects
%%nbtutor --nolies
Notes
Visualizing numpy arrays is somewhat experimental. Simple ndarrays and simple slicing should work, but anything beyond that is un-tested.
If you find a problem please feel free to submit an issue
Develop
This assumes you have cloned this repository locally:
git clone https://github.com/lgpage/nbtutor.git
cd nbtutor
Repo architecture
The nbtutor nbextension is built from ./src into ./nbtutor/static/nbtutor with: - less for style - es6 (via babel) for javascript - browserify for packaging
The nbtutor ipython kernel extension (magics) is stored in the ./nbtutor/ipython folder
Build tools are stored in the ./tools folder.
Getting started
You’ll need conda installed, either from Anaconda or miniconda. You can create a Python development environment named nbtutor from ./environment.yml.
conda create -n nbtutor python=YOUR_FAVORITE_PYTHON
conda env update
source activate nbtutor
We use npm for node.js dependencies, so then run:
npm install
Finally, you are ready to build the assets with:
npm run build
Installing the nbextension
To ensure that you always get the right assets (for development), install the nbextension with the symlink options:
python setup.py develop
jupyter nbextension install --overwrite --symlink --sys-prefix --py nbtutor
jupyter nbextension enable --sys-prefix --py nbtutor
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for nbtutor-1.0.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d367c7529fa5dced1e2f5cbeda25496f8784e03afd8dc2954c7097f22b0ad701 |
|
MD5 | e4eef265097e3315a801a925cee33000 |
|
BLAKE2b-256 | 34995ca2eb2b90c88d01f75f86f916517aaa86d70e66a47392c9082b374bba72 |