Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jupyter docker: new full build with latest of almost everything except xclim and ravenpy to smooth transition #121

Merged
merged 110 commits into from
May 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
110 commits
Select commit Hold shift + click to select a range
1e010a9
docker: new xclim 0.44.0 should fix popmean.shape[axis] error so we c…
tlvu Jun 24, 2023
f567367
docker: set bash as user shell for better Jupyter terminal experience
tlvu Jun 24, 2023
8d344b0
release: update to use image pavics/workflow-tests:230629
tlvu Jun 29, 2023
4ad76b0
docker: pin pydantic to not break ravenpy
tlvu Jul 4, 2023
074f20e
release: update to use image pavics/workflow-tests:py310-230704
tlvu Jul 4, 2023
dde83db
docker: new ravenpy will pin pydantic itself
tlvu Jul 6, 2023
138112a
release: update to use image pavics/workflow-tests:py310-230706
tlvu Jul 6, 2023
30bbbb3
docker: add pykdtree to fix cartopy bug with scipy 1.11
tlvu Jul 6, 2023
e974650
release: update to use image pavics/workflow-tests:py310-230706-2
tlvu Jul 6, 2023
0a918bd
release: update to use image pavics/workflow-tests:py310-230721
tlvu Jul 21, 2023
7b6bd1b
Merge remote-tracking branch 'origin/master' into new-docker-build
tlvu Aug 8, 2023
33c1ec7
docker: unpin intake-esm, issue should be fixed
tlvu Aug 30, 2023
9bfb843
docker: unpin numpy to see if issue with datashade=True in hvplot.qua…
tlvu Aug 30, 2023
7083aae
docker: unpin panel to test if Analogues dashboard can work with newe…
tlvu Aug 30, 2023
117b6de
release: update to use image pavics/workflow-tests:py310-230830
tlvu Aug 30, 2023
9a42dd7
docker: force latest panel >= 1.2.2 because mamba randomly choose old…
tlvu Sep 8, 2023
adc4d3d
release: update to use image pavics/workflow-tests:py310-230830-updat…
tlvu Sep 8, 2023
776011b
Merge remote-tracking branch 'origin/master' into new-docker-build
tlvu Sep 20, 2023
c7c0358
docker: ensure /notebook_dir/ is read-only for the Jupyter user
tlvu Sep 20, 2023
68cce0b
release: update to use image pavics/workflow-tests:py39-230601-1
tlvu Sep 20, 2023
4d8dcd0
docker update: newer panel and bokeh for FWI quick release
tlvu Oct 17, 2023
187f9bf
release: update to use image pavics/workflow-tests:py310-231107
tlvu Nov 7, 2023
8765531
Merge remote-tracking branch 'origin/master' into new-docker-build
tlvu Nov 8, 2023
a8a4c78
Merge remote-tracking branch 'origin/master' into new-docker-build
tlvu Nov 8, 2023
b222b0a
Merge remote-tracking branch 'origin/master' into new-docker-build
tlvu Jan 30, 2024
8529a9a
docker: ensure threddsclient >= 0.4.5 for Thredds v5 compat
tlvu Jan 30, 2024
5c282eb
docker: ensure recent new packages part of new incremental build
tlvu Jan 30, 2024
a62b2dd
docker: ensure xclim >= 0.47.0
tlvu Jan 30, 2024
e2d8193
release: update to use image pavics/workflow-tests:py310-231107-updat…
tlvu Jan 30, 2024
56992e5
docker: add xscen, finagos, upgrade ravenpy and pydantic
tlvu Mar 6, 2024
23cb6af
docker: pin xscen for back-compat with xclim 0.47.0
tlvu Mar 6, 2024
63011de
docker: fix typo in figanos name
tlvu Mar 6, 2024
ce26b1c
release: update to use image pavics/workflow-tests:py310-231107-updat…
tlvu Mar 6, 2024
4f2c099
release: update to use image pavics/workflow-tests:py310-240306
tlvu Mar 7, 2024
daaa489
docker: attempt to fix "Plugin 'jupyterlab_dash' is already registered."
tlvu Mar 7, 2024
f4b19c2
Revert "docker: attempt to fix "Plugin 'jupyterlab_dash' is already r…
tlvu Mar 7, 2024
81deb99
docker: add py39-230601-1-update240116 previous release env export an…
tlvu Mar 7, 2024
866da9f
docker: add py310-231107 env export and build log for full build base…
tlvu Mar 7, 2024
a8b7206
docker: py310-231107-update240306 env export, build log, initial jenkins
tlvu Mar 7, 2024
e7946d1
docker: py310-240306 env export, build log, initial jenkins
tlvu Mar 7, 2024
5f932b4
release: update to use image pavics/workflow-tests:py310-240312
tlvu Mar 12, 2024
8652af6
docker: py310-240312 env export, build log
tlvu Mar 14, 2024
9f6581b
docker: py310-240312 initial jenkins default nb and raven nb
tlvu Mar 14, 2024
a73fc6c
docker: replace jupyter-dash with dash since the previous have warnin…
tlvu Mar 16, 2024
6f2a984
docker: ensure latest birdy 0.8.5 for RavenPy nb fixes
tlvu Mar 16, 2024
232b5ee
release: update to use image pavics/workflow-tests:py310-240316
tlvu Mar 16, 2024
47ceb1f
docker: py310-240316 build log
tlvu Mar 16, 2024
67999ab
docker: py310-240316 conda env, jenkins default and raven nb
tlvu Mar 23, 2024
4fcedaf
release: update to use image pavics/workflow-tests:py310-240323
tlvu Mar 23, 2024
e42adfc
docker: py310-240323: build log
tlvu Mar 23, 2024
266a507
output-sanitize.cfg: fix subset-user-input.ipynb /tmp/ipykernel_NUM/ …
tlvu Mar 23, 2024
4776dee
docker: py310-240323: conda env
tlvu Mar 23, 2024
3314f75
docker: py310-240323: initial jenkins default nb
tlvu Mar 23, 2024
090110e
docker: py310-240323: initial jenkins raven nb
tlvu Mar 25, 2024
14c8c90
jenkins: add SAVE_RESULTING_NOTEBOOK_TIMEOUT for slow notebooks or sl…
tlvu Mar 26, 2024
6dd64ec
docker: remove extra package and build step needed for jupyter-dash
tlvu Apr 2, 2024
2e27636
docker: add conda-pack to root conda env
tlvu Apr 2, 2024
f7e7c43
release: update to use image pavics/workflow-tests:py310-240402
tlvu Apr 2, 2024
fbe057b
docker: py310-240402: build log
tlvu Apr 2, 2024
45f91c8
docker: py310-240402: conda env export
tlvu Apr 2, 2024
05c6a4c
docker: py310-240402: jenkins default nb: homepage nb 4 and 1 intermi…
tlvu Apr 3, 2024
c0bc360
docker: py310-240402: jenkins raven nb
tlvu Apr 3, 2024
7ef44f7
Revert "docker: remove extra package and build step needed for jupyte…
tlvu Apr 5, 2024
216b16e
release: update to use image pavics/workflow-tests:py310-240404
tlvu Apr 5, 2024
b014ee9
docker: py310-240404: build log
tlvu Apr 11, 2024
dab5eb3
docker: py310-240404: conda env export
tlvu Apr 11, 2024
76eb988
docker: py310-240404: initial jenkins, default nb, only homepage nb 4…
tlvu Apr 11, 2024
375c271
docker: py310-240404: initial jenkins, raven nb
tlvu Apr 11, 2024
1d5d7a5
release: update to use image pavics/workflow-tests:py310-240411
tlvu Apr 11, 2024
d3e072d
docker: py310-240411: build log
tlvu Apr 12, 2024
9765cc8
docker: py310-240411: conda env export
tlvu Apr 12, 2024
69c7b34
docker: py310-240411: initial jenkins, raven nb
tlvu Apr 12, 2024
43f5f56
docker: py310-240411: initial jenkins, default nb, only homepage nb 4…
tlvu Apr 12, 2024
6093370
Merge remote-tracking branch 'origin/master' into new-docker-build
tlvu Apr 15, 2024
6f6a2ff
docker: pin jupyter-archive to older ver for the "Extract Archive" op…
tlvu Apr 19, 2024
51c0ba8
docker: add openpyxl for CCCS Panel (Eva request)
tlvu Apr 19, 2024
f3491fe
release: update to use image pavics/workflow-tests:py310-240419
tlvu Apr 19, 2024
9e62842
docker: py310-240419: docker hub build log
tlvu Apr 20, 2024
2f8c450
docker: py310-240419: conda env export
tlvu Apr 20, 2024
80cd6c4
docker: py310-240419: initial jenkins, default nb, only homepage nb 4
tlvu Apr 24, 2024
c792171
docker: py310-240419: initial jenkins, raven nb, some nb hang at impo…
tlvu Apr 26, 2024
a584cac
docker: move to py3.11 and remove cdms2
tlvu Apr 29, 2024
61834e1
release: update to use image pavics/workflow-tests:py310-240428
tlvu Apr 29, 2024
6a8cb91
release: update to use image pavics/workflow-tests:py311-240428
tlvu Apr 29, 2024
393fc67
docker: document why cdms2 was disabled
tlvu Apr 29, 2024
be70c30
docker: py311-240428: docker hub build log
tlvu May 1, 2024
2632657
docker: py311-240428: conda env export
tlvu May 1, 2024
2e96dd6
docker: py311-240428: initial jenkins, default nb
tlvu May 1, 2024
66d2646
docker: py311-240428: initial jenkins, raven nb
tlvu May 1, 2024
a21c3c1
jenkins: add note that ESGF_COMPUTE_API_REPO do not work anymore
tlvu May 3, 2024
f12f917
release: update to use image pavics/workflow-tests:py311-240506
tlvu May 6, 2024
b813769
docker: py311-240506: dockerhub build log
tlvu May 6, 2024
936e344
docker: py311-240506: conda env export
tlvu May 6, 2024
f390690
jenkins: fix nbval --sanitize-with deprecation warning
tlvu May 6, 2024
54698f1
docker: py311-240506: working jenkins, default nb
tlvu May 7, 2024
f8297b4
docker: py311-240506: initial jenkins, raven nb, only 04_Emulating ...
tlvu May 7, 2024
2cd37ec
docker: backport RavenPy/pull/360 to fix nb '04_Emulating...'
tlvu May 7, 2024
06645a7
docker: use official ravenpy 0.13.1 backport branch
tlvu May 7, 2024
8f69876
docker: need to force uninstall ravenpy before installing it from source
tlvu May 7, 2024
3d3b14d
docker: prevent unknown jupyterlab-git downgrade to 0.8.2
tlvu May 7, 2024
008928f
docker: jupyterlab-git 0.50.0 seems to conflict jupyterlab-topbar
tlvu May 7, 2024
a44255e
docker: use official ravenpy==0.13.1 from PyPI
tlvu May 7, 2024
20c7b5e
docker: install birdy.git@v0.8.7 from source
tlvu May 8, 2024
5533c89
docker: use official birdhouse-birdy==0.8.7 from PyPI
tlvu May 8, 2024
d205720
release: update to use image pavics/workflow-tests:py311-240506-updat…
tlvu May 8, 2024
5e28160
docker: py311-240506-update240508: DockerHub build log
tlvu May 8, 2024
448a347
docker: py311-240506-update240508: conda env export
tlvu May 9, 2024
931cfc9
docker: py311-240506-update240508: jenkins build, raven nb, only know…
tlvu May 9, 2024
c805eae
docker: py311-240506-update240508: jenkins build, default nb, only in…
tlvu May 9, 2024
54792e6
docker: py311-240506-update240508: jenkins build, default nb, all passed
tlvu May 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ pipeline {
// https://jenkins.io/doc/book/pipeline/syntax/
agent {
docker {
image "pavics/workflow-tests:py39-230601-1-update240116"
image "pavics/workflow-tests:py311-240506-update240508"
label 'linux && docker'
}
}
Expand Down Expand Up @@ -82,7 +82,7 @@ Requires 'weaver' component to be active on the target 'PAVICS_HOST' server
string(name: 'RAVENPY_REPO', defaultValue: 'CSHS-CWRA/RavenPy',
description: 'https://github.com/CSHS-CWRA/RavenPy repo or fork to test against.', trim: true)
booleanParam(name: 'TEST_ESGF_COMPUTE_API_REPO', defaultValue: false,
description: 'Check the box to test esgf-compute-api repo.')
description: 'Check the box to test esgf-compute-api repo. Kept here for historical reasons only, not working anymore.')
string(name: 'ESGF_COMPUTE_API_BRANCH', defaultValue: 'devel',
description: 'ESGF_COMPUTE_API_REPO branch to test against.', trim: true)
string(name: 'ESGF_COMPUTE_API_REPO', defaultValue: 'ESGF/esgf-compute-api',
Expand All @@ -100,6 +100,8 @@ Requires 'weaver' component to be active on the target 'PAVICS_HOST' server
booleanParam(name: 'SAVE_RESULTING_NOTEBOOK', defaultValue: true,
description: '''Check the box to save the resulting notebooks of the run.
Note this is another run, will double the time and no guaranty to have same error as the run from py.test.''')
string(name: 'SAVE_RESULTING_NOTEBOOK_TIMEOUT', defaultValue: '240',
description: 'Timeout in sec for nbconvert. For slow notebooks or slow machine', trim: true)
}

triggers {
Expand Down
2 changes: 1 addition & 1 deletion binder/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM pavics/workflow-tests:py39-230601-1-update240116
FROM pavics/workflow-tests:py311-240506-update240508

USER root

Expand Down
12 changes: 6 additions & 6 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ FROM continuumio/miniconda3
# Use mamba for much improved performance over conda.
# The 'channel_priority strict' did help conda but it was not enough.
RUN conda update conda -n base && \
conda install mamba -n base -c conda-forge -c defaults && \
conda install mamba conda-pack -n base -c conda-forge -c defaults && \
conda clean --all --yes && \
conda config --set channel_priority strict && \
wget -qO- https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -C /usr/local -xvj bin/micromamba
Expand All @@ -21,7 +21,7 @@ RUN apt-get update && \
# Create user jenkins for our Jenkins e2e notebooks test suite.
# Change /opt/conda folder permissions for jupyter-conda extension.
RUN groupadd --gid 1000 jenkins \
&& useradd --uid 1000 --gid jenkins --create-home jenkins && \
&& useradd --uid 1000 --gid jenkins --shell /bin/bash --create-home jenkins && \
chmod -R a+rwX /opt/conda

COPY environment.yml /environment.yml
Expand All @@ -43,10 +43,8 @@ COPY environment.yml /environment.yml
# Conda was stuck at this step:
# DEBUG conda.common._logic:_run_sat(607): Invoking SAT with clause count: 2500273
#
# Python 3.10 cause this "ValueError: `popmean.shape[axis]` must equal 1." in
# homepage nb 4, see https://github.com/Ouranosinc/PAVICS-landing/issues/65
RUN umask 0000 && \
mamba create --name birdy --channel conda-forge --channel defaults xclim ravenpy python=3.9 --yes && \
mamba create --name birdy --channel conda-forge --channel defaults xclim ravenpy python=3.11 --yes && \
mamba env update --name birdy --file /environment.yml && \
mamba clean --all --yes

Expand Down Expand Up @@ -97,7 +95,9 @@ RUN wget https://raw.githubusercontent.com/jupyter/docker-stacks/$DOCKER_STACKS_
wget https://raw.githubusercontent.com/jupyter/docker-stacks/$DOCKER_STACKS_COMMIT/base-notebook/jupyter_notebook_config.py --output-document /etc/jupyter/jupyter_notebook_config.py && \
chmod a+rx /usr/local/bin/start.sh /usr/local/bin/start-singleuser.sh /usr/local/bin/start-notebook.sh /usr/local/bin/fix-permissions && \
chmod a+r /etc/jupyter/jupyter_notebook_config.py && \
mkdir /notebook_dir && chown jenkins /notebook_dir && \
mkdir -p /notebook_dir/writable-workspace && chown jenkins /notebook_dir/writable-workspace && \
mkdir -p /notebook_dir/pavics-homepage && chown jenkins /notebook_dir/pavics-homepage && \
chown root:root /notebook_dir && chmod a-w /notebook_dir && \
chmod a+rwX -R /opt/conda/envs/birdy/fonts && \
mkdir /opt/conda/pkgs/cache && \
chown jenkins:jenkins -R /opt/conda/pkgs/cache && \
Expand Down
10 changes: 6 additions & 4 deletions docker/Dockerfile.testing
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# For testing quickly without having to do a full rebuild.

FROM pavics/workflow-tests:py39-230601-1-update231122
FROM pavics/workflow-tests:py311-240506

#ENV ESMFMKFILE="/opt/conda/envs/birdy/lib/esmf.mk"

Expand All @@ -11,9 +11,11 @@ USER root
# Use 'update' for existing and 'install' for new package.
# Keep same channel ordering to not revert anything.
RUN umask 0000 \
&& pip install --no-cache-dir https://github.com/bird-house/threddsclient/archive/refs/heads/master.zip
# && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyviz/label/dev -c defaults -n birdy salib \
# && mamba clean --all --yes
&& pip uninstall -y ravenpy birdhouse-birdy \
&& pip install --no-cache-dir --no-deps ravenpy==0.13.1 birdhouse-birdy==0.8.7 \
&& mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyviz/label/dev -c defaults -n birdy jupyterlab-git==0.44.0 \
&& mamba clean --all --yes
# && pip install --no-cache-dir --upgrade figanos
# && pip uninstall -y ravenpy \
# && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c defaults -n birdy ravenpy aiohttp

Expand Down
52 changes: 32 additions & 20 deletions docker/environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ channels:
- conda-forge
- cdat
- bokeh
- plotly # for jupyter-dash
# - plotly # for jupyter-dash
# - pyston
- pyviz/label/dev # for jupyter-panel-proxy, panel
- defaults
Expand All @@ -19,8 +19,13 @@ dependencies:

# Pin latest xclim and ravenpy to avoid downgrading during the second installation phase.
# Mamba is quicker to solve dependencies than conda, but it is less precise so accidental downgrades can happen.
- xclim >= 0.43.0
- ravenpy >= 0.12.1
- xclim >= 0.47.0
- ravenpy >= 0.13.0

# https://anaconda.org/conda-forge/xscen
# A climate change scenario-building analysis framework, built with xclim/xarray.
# PIN to 0.8.2 for xclim 0.47.0 compat
- xscen == 0.8.2

#- dask # from xclim and ravenpy
#- distributed
Expand All @@ -32,13 +37,10 @@ dependencies:
- matplotlib
# - xarray # from xclim and ravenpy
# - numpy # from xclim and ravenpy
# TODO: unpin numpy, pinned for hvplot.quadmesh(rasterize=True)
# datashade=True is an alias
# See https://github.com/holoviz/hvplot/issues/1073
- numpy <= 1.23.5
- numpy
# TODO: unpin cf_xarray due to https://github.com/xarray-contrib/cf-xarray/issues/442
- cf_xarray != 0.8.1
- birdy
- birdy >= 0.8.7
# - owslib>=0.23.0 # from ravenpy
# - netcdf4 # from ravenpy
# TODO: remove libnetcdf PIN because https://github.com/Ouranosinc/PAVICS-landing/issues/66
Expand All @@ -49,6 +51,10 @@ dependencies:
- cfgrib
- pydap
- cartopy >= 0.21.0
# Fixes cartopy bug arising with scipy 1.11.
# https://github.com/Ouranosinc/pavics-sdi/pull/298
# https://github.com/Ouranosinc/pavics-sdi/issues/294
- pykdtree
- descartes # Is this really needed???
# - rasterio # from ravenpy
# - gdal # for osgeo, from ravenpy
Expand All @@ -60,15 +66,14 @@ dependencies:
- pyogrio
- scikit-image
- ipyleaflet
- threddsclient
- threddsclient >= 0.4.5
- bokeh
- regionmask
- siphon
- jupyter_bokeh
- pscript
- h5netcdf
# TODO: remove panel pin when Analogues dashboard works
- panel <= 0.14.4
- panel >= 1.2.2
# https://github.com/holoviz/panel
- pyviz_comms # (was labextension pyviz/jupyterlab_pyviz in jupyterlab v2)
- holoviews
Expand All @@ -79,6 +84,8 @@ dependencies:
# https://github.com/bird-house/birdhouse-deploy/pull/63#issuecomment-668270608
# pinning hvplot did not solve the problem with violin plot.
- hvplot
# https://anaconda.org/conda-forge/dash
- dash >= 2.16.1
# https://streamlit.io/
# https://anaconda.org/conda-forge/streamlit
- streamlit
Expand All @@ -89,6 +96,9 @@ dependencies:
# https://python-pptx.readthedocs.io/en/latest/
# https://anaconda.org/conda-forge/python-pptx
- python-pptx
# openpyxl: library to read/write Excel 2010 xlsx/xlsm files
# https://anaconda.org/conda-forge/openpyxl
- openpyxl
- nc-time-axis
# - cftime # from xclim and ravenpy
# - statsmodels # for ravenpy
Expand All @@ -102,11 +112,7 @@ dependencies:
# Plugin for building and loading intake catalogs for earth system data sets
# holdings, such as CMIP (Coupled Model Intercomparison Project) and CESM
# Large Ensemble datasets.
# Pin intake-esm since newer version activated validation of optional fields and broke our notebooks
# ValidationError: 1 validation error for ESMCatalogModel
# aggregation_control
# field required (type=value_error.missing)
- intake-esm <= 2021.8.17
- intake-esm >= 2023.6.14
# load netCDF, Zarr and other multi-dimensional data (xarray_image, netcdf,
# grib, opendap, rasterio, remote-xarray, zarr)
- intake-xarray
Expand Down Expand Up @@ -140,7 +146,8 @@ dependencies:
- esgf-compute-api
# https://anaconda.org/conda-forge/esgf-pyclient (for pavics-sdi esgf-dap.ipynb)
- esgf-pyclient
- cdms2
# Disable cdms2 because it was forcing python downgrade to 3.10 and below.
#- cdms2
# Disable vcs because it was forcing python downgrade to below 3.9.
# See https://github.com/CDAT/vcs/issues/457
# package vcs-8.1-py_0 requires vtk-cdat >8.1, but none of the providers can be installed
Expand Down Expand Up @@ -168,10 +175,12 @@ dependencies:
# extension to produce .py files from notebook .ipynb files
- jupytext
# jupyterlab extension for git
- jupyterlab-git
- jupyterlab-git >= 0.44.0
# Voilà turns Jupyter notebooks into standalone web applications
- voila
- jupyter-archive
# PIN jupyter-archive due to
# https://github.com/jupyterlab-contrib/jupyter-archive/issues/132
- jupyter-archive <= 3.3.4
# https://github.com/jtpio/jupyterlab-topbar
- jupyterlab-topbar
# https://github.com/jtpio/jupyterlab-system-monitor (was from jupyterlab-topbar)
Expand All @@ -180,7 +189,6 @@ dependencies:
- nbresuse # needed by jupyterlab-system-monitor
# xeus-python: back-end kernel implementing the Jupyter Debug Protocol
- xeus-python
- jupyter-dash
# https:://github.com/jupyterhub/jupyter-server-proxy
- jupyter-server-proxy
# https://github.com/dask/dask-labextension
Expand Down Expand Up @@ -225,6 +233,10 @@ dependencies:
# https://pypi.org/project/fstd2nc/
# Converts RPN standard files (from Environment Canada) to netCDF files.
- fstd2nc
# https://pypi.org/project/figanos/
# Outils pour produire des graphiques informatifs sur les impacts des
# changements climatiques.
- figanos
# visual debugger for Jupyter Notebook, not working with JupyterLab at this moment
- pixiedust
# block execution of 'run_all_cells' until user input finished
Expand Down
Loading