diff --git a/Create_JupyterKernel.ipynb b/Create_JupyterKernel.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..d20d9f5eb63a874e3aa02041523adc8b4859f261 --- /dev/null +++ b/Create_JupyterKernel.ipynb @@ -0,0 +1,322 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# - Create your own Jupyter Kernel -" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n", + "## Building your own Jupyter kernel is a three step process\n", + "1. Create/Pimp new virtual Python environment\n", + " * venv\n", + "2. Create/Edit launch script for the Jupyter kernel\n", + " * kernel.sh\n", + "3. Create/Edit Jupyter kernel configuration\n", + " * kernel.json" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Settings" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Set new kernel name\n", + " - change if you like" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "export KERNEL_NAME=${USER}_kernel\n", + "echo ${KERNEL_NAME}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Set directory for kernels virtual environment\n", + " - change if you like" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "export KERNEL_VENVS_DIR=${PROJECT}/${USER}/jupyter/kernels/\n", + "mkdir -p ${KERNEL_VENVS_DIR}\n", + "echo ${KERNEL_VENVS_DIR}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* Set location of kernel spec\n", + " - select one:\n", + " - personal kernel = \"\\${HOME}/.local/\" \n", + " - project kernel = \"\\${PROJECT}/.local/\" " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "export KERNEL_SPECS_DIR=${HOME}/.local/\n", + "#export KERNEL_SPECS_DIR=${PROJECT}/.local/\n", + "echo ${KERNEL_SPECS_DIR}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. Create/Pimp new virual Python environment" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* 1.1 - Load required modules" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "module -q purge\n", + "module -q use $OTHERSTAGES \n", + "module -q load Stages/Devel-2019a 2> /dev/null\n", + "module -q load GCCcore/.8.3.0 2> /dev/null\n", + "module -q load Jupyter" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* 1.2 - Load extra modules you need for your kernel" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# module load <module you need>" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* 1.3 - Create and activate a virtual environment for the kernel \n", + "and ensure python packages installed in the virtual environment are always prefered" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "python -m venv --system-site-packages ${KERNEL_VENVS_DIR}/${KERNEL_NAME}\n", + "source ${KERNEL_VENVS_DIR}/${KERNEL_NAME}/bin/activate\n", + "export PYTHONPATH=${VIRTUAL_ENV}/lib/python3.6/site-packages:${PYTHONPATH}\n", + "echo ${VIRTUAL_ENV}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* 1.4 - Install Python libraries required for communication with Jupyter" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pip install --ignore-installed ipykernel" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* 1.5 - Install whatever else you need in your Python virtual environment (using pip)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#pip install <python-package you need>" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Create/Edit launch script for the Jupyter kernel" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* 2.1 - Create launch script, which loads your Python virtual environment and starts the ipykernel process inside:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "echo '#!/bin/bash\n", + "\n", + "# Load required modules\n", + "module purge\n", + "module load $OTHERSTAGES'\"\n", + "module load Stages/Devel-2019a\n", + "module load GCCcore/.8.3.0\n", + "module load Jupyter\n", + "\n", + "# Load extra modules you need for your kernel (as you did in step 1.2)\n", + "#module load <module you need>\n", + " \n", + "# Activate your Python virtual environment\n", + "source ${KERNEL_VENVS_DIR}/${KERNEL_NAME}/bin/activate\n", + " \n", + "# Ensure python packages installed in the virtual environment are always prefered\n", + "export PYTHONPATH=${VIRTUAL_ENV}/lib/python3.6/site-packages:\"'${PYTHONPATH}'\"\n", + " \n", + "exec python -m ipykernel \"'$@' > ${VIRTUAL_ENV}/kernel.sh\n", + "chmod +x ${VIRTUAL_ENV}/kernel.sh" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Create/Edit Jupyter kernel configuration" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* 3.1 - Create Jupyter kernel configuration directory and files" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "python -m ipykernel install --name=${KERNEL_NAME} --prefix ${KERNEL_SPECS_DIR}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "* 3.2 - Adjust kernel.json file" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "mv ${KERNEL_SPECS_DIR}/share/jupyter/kernels/${KERNEL_NAME}/kernel.json ${KERNEL_SPECS_DIR}/share/jupyter/kernels/${KERNEL_NAME}/kernel.json.orig\n", + "\n", + "echo '\n", + "{\n", + " \"argv\": [\n", + " \"'${KERNEL_VENVS_DIR}/${KERNEL_NAME}/kernel.sh'\",\n", + " \"-m\",\n", + " \"ipykernel_launcher\",\n", + " \"-f\",\n", + " \"{connection_file}\"\n", + " ],\n", + " \"display_name\": \"'${KERNEL_NAME}'\",\n", + " \"language\": \"python\"\n", + "}' > ${KERNEL_SPECS_DIR}/share/jupyter/kernels/${KERNEL_NAME}/kernel.json" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Bash", + "language": "bash", + "name": "bash" + }, + "language_info": { + "codemirror_mode": "shell", + "file_extension": ".sh", + "mimetype": "text/x-sh", + "name": "bash" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/PythonPackages.ipynb b/PythonPackages.ipynb index 1bc11d7f359314b53df372dcbcae27df245cf578..80128399a7a5f6b3d043c938c28581330f81de0e 100644 --- a/PythonPackages.ipynb +++ b/PythonPackages.ipynb @@ -14,7 +14,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -307,7 +307,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -316,153 +316,154 @@ "text": [ "PYPI NAME : IMPORT NAME REQ.VERS.|INST.VERS. IMPORT TIME\n", "=================================================================================\n", - "setuptools : setuptools 41.6.0 0.000092s\n", - "webencodings : webencodings 0.5.1 0.000071s\n", - "six : six 1.12.0 0.000067s\n", - "decorator : decorator 4.4.0 0.000055s\n", - "MarkupSafe : markupsafe 1.1.1 0.000061s\n", - "more-itertools : more_itertools 7.2.0 != \u001b[31m7.0.0 \u001b[0m 0.000046s\n", - "pickleshare : pickleshare 0.7.5 0.000057s\n", - "jedi : jedi 0.15.1 != \u001b[31m0.13.3 \u001b[0m 0.000048s\n", - "wcwidth : wcwidth 0.1.7 0.000045s\n", - "attr : attr 19.3.0 != \u001b[31m19.1.0 \u001b[0m 0.000060s\n", - "parso : parso 0.5.1 != \u001b[31m0.3.4 \u001b[0m 0.000064s\n", - "jinja2 : jinja2 2.10.1 != \u001b[31m2.10 \u001b[0m 0.000049s\n", - "pytz : pytz 2019.3 != \u001b[31m2019.1 \u001b[0m 0.000061s\n", - "pyparsing : pyparsing 2.2.0 != \u001b[31m2.3.1 \u001b[0m 0.000052s\n", - "packaging : packaging 19.2 != \u001b[31m19.0 \u001b[0m 0.000049s\n", - "urllib3 : urllib3 1.25.6 != \u001b[31m1.24.1 \u001b[0m 0.000047s\n", - "certifi : certifi 2019.9.11 != \u001b[31m2019.03.09\u001b[0m 0.000099s\n", - "requests : requests 2.22.0 != \u001b[31m2.21.0 \u001b[0m 0.000056s\n", - "python-dateutil : dateutil 2.8.1 != \u001b[31m2.8.0 \u001b[0m 0.000066s\n", - "Pillow : PIL 6.2.1 != \u001b[31m6.0.0 \u001b[0m 0.000054s\n", - "ply : ply 3.11 0.000041s\n", - "pyrsistent : pyrsistent 0.15.4 != \u001b[31m0.14.11 \u001b[0m 0.000038s\n", - "lxml : lxml 4.4.1 != \u001b[31m4.3.3 \u001b[0m 0.000054s\n", - "idna : idna 2.8 0.000048s\n", - "chardet : chardet 3.0.4 0.000054s\n", - "pycparser : pycparser 2.19 0.000040s\n", - "cffi : cffi 1.13.2 != \u001b[31m1.12.2 \u001b[0m 0.000061s\n", - "psutil : psutil 5.6.3 != \u001b[31m5.6.1 \u001b[0m 0.000046s\n", - "SQLAlchemy : sqlalchemy 1.3.10 != \u001b[31m1.3.1 \u001b[0m 0.000043s\n", - "certipy : certipy 0.1.3 0.000056s\n", - "python-editor : editor 1.0.4 0.000057s\n", - "Mako : mako 1.1.0 != \u001b[31m1.0.8 \u001b[0m 0.000039s\n", - "alembic : alembic 1.2.1 != \u001b[31m1.0.8 \u001b[0m 0.000037s\n", - "click : click 7.0 0.000034s\n", - "appdirs : appdirs 1.4.3 0.000034s\n", - "cloudpickle : cloudpickle 1.2.2 != \u001b[31m0.8.1 \u001b[0m 0.000037s\n", - "toolz : toolz 0.10.0 != \u001b[31m0.9.0 \u001b[0m 0.000048s\n", - "cryptography : cryptography 2.8 0.000037s\n", - "prompt-toolkit : prompt_toolkit 2.0.10 != \u001b[31m2.0.9 \u001b[0m 0.000045s\n", - "oauthlib : oauthlib 3.1.0 0.000035s\n", - "async-generator : async_generator 1.10 0.000036s\n", - "smmap : smmap 0.9.0 != \u001b[31m2.0.5 \u001b[0m 0.000032s\n", - "typed-ast : typed_ast 1.4.0 0.000046s\n", - "cycler : cycler 0.10.0 0.000033s\n", - "numpy : numpy 1.15.2 0.000033s\n", - "scipy : scipy 1.2.1 0.000032s\n", - "sympy : sympy 1.4 != \u001b[31m1.3 \u001b[0m 0.000034s\n", - "pandas : pandas 0.25.3 != \u001b[31m0.24.2 \u001b[0m 0.000034s\n", - "mpmath : mpmath 1.1.0 0.000033s\n", - "kiwisolver : kiwisolver 1.1.0 != \u001b[31m1.0.1 \u001b[0m 0.000051s\n", - "matplotlib : matplotlib 3.1.1 != \u001b[31m3.0.3 \u001b[0m 0.000037s\n", - "xarray : xarray 0.11.3 != \u001b[31m0.12.1 \u001b[0m 0.000033s\n", - "pyOpenSSL : OpenSSL 19.0.0 0.000033s\n", - "entrypoints : entrypoints 0.3 0.000031s\n", - "async_generator : async_generator 1.10 0.000043s\n", - "absl-py : absl 0.8.1 0.000055s\n", - "cryptography : cryptography 2.8 0.000048s\n", - "tornado : tornado 6.0.3 0.000033s\n", - "bokeh : bokeh 1.3.4 0.000038s\n", - "seaborn : seaborn 0.9.0 0.000033s\n", - "nbformat : nbformat 4.4.0 0.000043s\n", - "param : param 1.9.2 0.000034s\n", - "pyviz_comms : pyviz_comms 0.7.2 0.000032s\n", - "holoviews : holoviews 1.12.6 0.000031s\n", - "alabaster : alabaster 0.7.12 0.000032s\n", - "Babel : babel 2.7.0 0.000039s\n", - "snowballstemmer : snowballstemmer 2.0.0 0.000037s\n", - "docutils : docutils 0.15.2 0.000036s\n", - "imagesize : imagesize 1.1.0 0.000030s\n", - "sphinxcontrib-websupport : sphinxcontrib.websupport 1.1.2 0.000037s\n", - "Sphinx : sphinx 1.8.5 0.000032s\n", - "pexpect : pexpect 4.7.0 0.000038s\n", - "ipython : IPython 7.9.0 0.000031s\n", - "ipynb : ipynb 0.5.1 0.000029s\n", - "jupyter_core : jupyter_core 4.6.1 0.000035s\n", - "retrying : retrying 1.3.3 0.000032s\n", - "plotly : plotly 4.2.1 0.000035s\n", - "tikzplotlib : tikzplotlib 0.8.4 0.000037s\n", - "jupyter_client : jupyter_client 5.3.4 0.000029s\n", - "traitlets : traitlets 4.3.3 0.000028s\n", + "setuptools : setuptools 41.6.0 0.385978s\n", + "webencodings : webencodings 0.5.1 0.016903s\n", + "six : six 1.12.0 0.000052s\n", + "decorator : decorator 4.4.0 0.000052s\n", + "MarkupSafe : markupsafe 1.1.1 0.006108s\n", + "more-itertools : more_itertools 7.2.0 != \u001b[31m7.0.0 \u001b[0m 0.030407s\n", + "pickleshare : pickleshare 0.7.5 0.000044s\n", + "jedi : jedi 0.15.1 != \u001b[31m0.13.3 \u001b[0m 0.000032s\n", + "wcwidth : wcwidth 0.1.7 0.000029s\n", + "attr : attr 19.3.0 != \u001b[31m19.1.0 \u001b[0m 0.017762s\n", + "parso : parso 0.5.1 != \u001b[31m0.3.4 \u001b[0m 0.000041s\n", + "jinja2 : jinja2 2.10.1 != \u001b[31m2.10 \u001b[0m 0.028386s\n", + "pytz : pytz 2019.3 != \u001b[31m2019.1 \u001b[0m 0.093399s\n", + "pyparsing : pyparsing 2.2.0 != \u001b[31m2.3.1 \u001b[0m 0.049335s\n", + "packaging : packaging 19.2 != \u001b[31m19.0 \u001b[0m 0.027138s\n", + "urllib3 : urllib3 1.25.6 != \u001b[31m1.24.1 \u001b[0m 0.019931s\n", + "certifi : certifi 2019.9.11 != \u001b[31m2019.03.09\u001b[0m 0.002952s\n", + "requests : requests 2.22.0 != \u001b[31m2.21.0 \u001b[0m 0.288162s\n", + "python-dateutil : dateutil 2.8.1 != \u001b[31m2.8.0 \u001b[0m 0.000026s\n", + "Pillow : PIL 6.2.1 != \u001b[31m6.0.0 \u001b[0m 0.007693s\n", + "ply : ply 3.11 0.019242s\n", + "pyrsistent : pyrsistent 0.15.4 != \u001b[31m0.14.11 \u001b[0m 0.013004s\n", + "lxml : lxml 4.4.1 != \u001b[31m4.3.3 \u001b[0m 0.055928s\n", + "idna : idna 2.8 0.000051s\n", + "chardet : chardet 3.0.4 0.000036s\n", + "pycparser : pycparser 2.19 0.207475s\n", + "cffi : cffi 1.13.2 != \u001b[31m1.12.2 \u001b[0m 0.015289s\n", + "psutil : psutil 5.6.3 != \u001b[31m5.6.1 \u001b[0m 0.046984s\n", + "SQLAlchemy : sqlalchemy 1.3.10 != \u001b[31m1.3.1 \u001b[0m 0.994233s\n", + "certipy : certipy 0.1.3 0.037884s\n", + "python-editor : editor 1.0.4 0.007516s\n", + "Mako : mako 1.1.0 != \u001b[31m1.0.8 \u001b[0m 0.053407s\n", + "alembic : alembic 1.2.1 != \u001b[31m1.0.8 \u001b[0m 1.590335s\n", + "click : click 7.0 0.018214s\n", + "appdirs : appdirs 1.4.3 0.012561s\n", + "cloudpickle : cloudpickle 1.2.2 != \u001b[31m0.8.1 \u001b[0m 0.006038s\n", + "toolz : toolz 0.10.0 != \u001b[31m0.9.0 \u001b[0m 0.020046s\n", + "cryptography : cryptography 2.8 0.000043s\n", + "prompt-toolkit : prompt_toolkit 2.0.10 != \u001b[31m2.0.9 \u001b[0m 0.000035s\n", + "oauthlib : oauthlib 3.1.0 0.009413s\n", + "async-generator : async_generator 1.10 0.009577s\n", + "smmap : smmap 0.9.0 != \u001b[31m2.0.5 \u001b[0m 0.005029s\n", + "typed-ast : typed_ast 1.4.0 0.007294s\n", + "cycler : cycler 0.10.0 0.007537s\n", + "numpy : numpy 1.15.2 0.509992s\n", + "scipy : scipy 1.2.1 0.028397s\n", + "sympy : sympy 1.4 != \u001b[31m1.3 \u001b[0m 7.210424s\n", + "pandas : pandas 0.25.3 != \u001b[31m0.24.2 \u001b[0m 1.315975s\n", + "mpmath : mpmath 1.1.0 0.000075s\n", + "kiwisolver : kiwisolver 1.1.0 != \u001b[31m1.0.1 \u001b[0m 0.033678s\n", + "backports.functools_lru_cache : backports.functools_lru_cache \u001b[31mIMPORT FAILED\u001b[0m\n", + "matplotlib : matplotlib 3.1.1 != \u001b[31m3.0.3 \u001b[0m 0.000086s\n", + "xarray : xarray 0.11.3 != \u001b[31m0.12.1 \u001b[0m 1.172104s\n", + "pyOpenSSL : OpenSSL 19.0.0 0.000034s\n", + "entrypoints : entrypoints 0.3 0.002844s\n", + "async_generator : async_generator 1.10 0.000047s\n", + "absl-py : absl 0.8.1 0.012326s\n", + "cryptography : cryptography 2.8 0.000051s\n", + "tornado : tornado 6.0.3 0.000029s\n", + "bokeh : bokeh 1.3.4 0.089318s\n", + "seaborn : seaborn 0.9.0 11.679716s\n", + "nbformat : nbformat 4.4.0 0.195660s\n", + "param : param 1.9.2 0.209250s\n", + "pyviz_comms : pyviz_comms 0.7.2 0.092592s\n", + "holoviews : holoviews 1.12.6 1.424016s\n", + "alabaster : alabaster 0.7.12 0.014988s\n", + "Babel : babel 2.7.0 0.081024s\n", + "snowballstemmer : snowballstemmer 2.0.0 0.351891s\n", + "docutils : docutils 0.15.2 0.027402s\n", + "imagesize : imagesize 1.1.0 0.004413s\n", + "sphinxcontrib-websupport : sphinxcontrib.websupport 1.1.2 0.889744s\n", + "Sphinx : sphinx 1.8.5 0.000060s\n", + "pexpect : pexpect 4.7.0 0.000043s\n", + "ipython : IPython 7.9.0 0.000038s\n", + "ipynb : ipynb 0.5.1 0.014553s\n", + "jupyter_core : jupyter_core 4.6.1 0.000053s\n", + "retrying : retrying 1.3.3 0.020777s\n", + "plotly : plotly 4.2.1 6.939769s\n", + "tikzplotlib : tikzplotlib 0.8.4 0.114980s\n", + "jupyter_client : jupyter_client 5.3.4 0.000043s\n", + "traitlets : traitlets 4.3.3 0.000031s\n", "pyzmq : zmq 18.1.0 0.000028s\n", - "singledispatch : singledispatch 3.4.0.3 0.000030s\n", - "ipyparallel : ipyparallel 6.2.4 0.000035s\n", - "ipykernel : ipykernel 5.1.3 0.000036s\n", - "terminado : terminado 0.8.2 0.000032s\n", - "bleach : bleach 3.1.0 0.000028s\n", - "mistune : mistune 0.8.4 0.000027s\n", - "pandocfilters : pandocfilters 1.4.2 0.000037s\n", - "Pygments : pygments 2.4.2 0.000032s\n", - "testpath : testpath 0.4.4 0.000028s\n", - "nbconvert : nbconvert 5.6.1 0.000027s\n", - "ipython_genutils : ipython_genutils 0.2.0 0.000034s\n", - "Send2Trash : send2trash 1.5.0 0.000027s\n", - "notebook : notebook 6.0.2 0.000033s\n", - "version_information : version_information 1.0.3 0.000028s\n", - "lesscpy : lesscpy 0.13.0 0.000027s\n", - "prometheus-client : prometheus_client 0.7.1 0.000026s\n", - "jupyterthemes : jupyterthemes 0.20.0 0.000031s\n", - "zipp : zipp 0.6.0 0.000036s\n", - "importlib_metadata : importlib_metadata 0.23 0.000039s\n", - "jsonschema : jsonschema 3.1.1 0.000027s\n", - "jupyterlab_launcher : jupyterlab_launcher 0.13.1 0.000029s\n", - "sphinx_rtd_theme : sphinx_rtd_theme 0.4.3 0.000027s\n", - "future : future 0.18.1 0.000026s\n", - "commonmark : commonmark 0.9.1 0.000026s\n", - "recommonmark : recommonmark 0.6.0 0.000037s\n", - "jupyterlab : jupyterlab 1.2.1 0.000027s\n", - "json5 : json5 0.8.5 0.000027s\n", - "jupyterlab_server : jupyterlab_server 1.0.6 0.000031s\n", + "singledispatch : singledispatch 3.4.0.3 0.062908s\n", + "ipyparallel : ipyparallel 6.2.4 0.000068s\n", + "ipykernel : ipykernel 5.1.3 0.000048s\n", + "terminado : terminado 0.8.2 0.047164s\n", + "bleach : bleach 3.1.0 0.469373s\n", + "mistune : mistune 0.8.4 0.023354s\n", + "pandocfilters : pandocfilters 1.4.2 0.001329s\n", + "Pygments : pygments 2.4.2 0.000043s\n", + "testpath : testpath 0.4.4 0.003176s\n", + "nbconvert : nbconvert 5.6.1 0.042023s\n", + "ipython_genutils : ipython_genutils 0.2.0 0.000036s\n", + "Send2Trash : send2trash 1.5.0 0.010062s\n", + "notebook : notebook 6.0.2 0.000031s\n", + "version_information : version_information 1.0.3 0.047597s\n", + "lesscpy : lesscpy 0.13.0 0.005995s\n", + "prometheus-client : prometheus_client 0.7.1 0.025599s\n", + "jupyterthemes : jupyterthemes 0.20.0 0.052266s\n", + "zipp : zipp 0.6.0 0.000048s\n", + "importlib_metadata : importlib_metadata 0.23 0.000036s\n", + "jsonschema : jsonschema 3.1.1 0.000030s\n", + "jupyterlab_launcher : jupyterlab_launcher 0.13.1 0.109656s\n", + "sphinx_rtd_theme : sphinx_rtd_theme 0.4.3 0.008458s\n", + "future : future 0.18.1 0.006830s\n", + "commonmark : commonmark 0.9.1 0.095996s\n", + "recommonmark : recommonmark 0.6.0 0.002422s\n", + "jupyterlab : jupyterlab 1.2.1 0.002643s\n", + "json5 : json5 0.8.5 0.003840s\n", + "jupyterlab_server : jupyterlab_server 1.0.6 0.004840s\n", "ptyprocess : ptyprocess 0.6.0 0.000037s\n", - "defusedxml : defusedxml 0.6.0 0.000026s\n", - "widgetsnbextension : widgetsnbextension 3.5.1 0.000026s\n", - "ipywidgets : ipywidgets 7.5.1 0.000033s\n", - "ipydatawidgets : ipydatawidgets 4.0.1 0.000026s\n", - "traittypes : traittypes 0.2.1 0.000026s\n", - "bqplot : bqplot 0.11.9 0.000025s\n", - "jupyter_bokeh : jupyter_bokeh 1.1.1 != \u001b[31m\u001b[31mNO MATCH\u001b[0m\u001b[0m 0.000026s\n", - "pythreejs : pythreejs 2.1.1 0.000034s\n", - "PyWavelets : pywt 1.1.1 0.000035s\n", - "imageio : imageio 2.6.1 0.000032s\n", - "networkx : networkx 2.3 0.000026s\n", - "scikit-image : skimage 0.16.2 0.000026s\n", - "ipywebrtc : ipywebrtc 0.5.0 0.000026s\n", - "ipyvolume : ipyvolume 0.5.2 0.000025s\n", - "branca : branca 0.3.1 0.000036s\n", - "ipyleaflet : ipyleaflet 0.11.4 0.000027s\n", - "ipympl : ipympl 0.3.3 0.000024s\n", - "PyYAML : yaml 5.1.2 0.000024s\n", - "jupyter_nbextensions_configurator : jupyter_nbextensions_configurator 0.4.1 0.000023s\n", - "jupyter_latex_envs : latex_envs 1.4.6 != \u001b[31m1.4.0 \u001b[0m 0.000024s\n", - "jupyter_highlight_selected_word : jupyter_highlight_selected_word 0.2.0 0.000023s\n", - "jupyter_contrib_core : jupyter_contrib_core 0.3.3 0.000023s\n", - "jupyter_contrib_nbextensions : jupyter_contrib_nbextensions 0.5.1 0.000023s\n", - "rise : rise 5.5.1 0.000030s\n", - "typing-extensions : typing_extensions 3.7.4 0.000024s\n", - "idna-ssl : idna_ssl 1.1.0 0.000029s\n", - "multidict : multidict 4.5.2 0.000024s\n", - "yarl : yarl 1.3.0 0.000027s\n", - "async-timeout : async_timeout 3.0.1 0.000024s\n", - "aiohttp : aiohttp 3.6.2 0.000025s\n", - "simpervisor : simpervisor 0.3 0.000024s\n", - "jupyter_server : jupyter_server 0.1.1 0.000031s\n", - "jupyter-server-proxy : jupyter_server_proxy 1.1.0 0.000025s\n", - "jupyterlab_github : jupyterlab_github 1.0.1 != \u001b[31m1.0.0 \u001b[0m 0.000028s\n", - "jupyterlab-gitlab : jupyterlab_gitlab 0.3.0 != \u001b[31m0.2.0 \u001b[0m 0.000033s\n", - "jupyterlab-quickopen : jupyterlab_quickopen 0.3.0 0.000025s\n", - "zstandard : zstandard 0.12.0 0.000023s\n", + "defusedxml : defusedxml 0.6.0 0.000027s\n", + "widgetsnbextension : widgetsnbextension 3.5.1 0.016441s\n", + "ipywidgets : ipywidgets 7.5.1 0.000042s\n", + "ipydatawidgets : ipydatawidgets 4.0.1 0.134411s\n", + "traittypes : traittypes 0.2.1 0.000048s\n", + "bqplot : bqplot 0.11.9 0.271027s\n", + "jupyter_bokeh : jupyter_bokeh 1.1.1 != \u001b[31m\u001b[31mNO MATCH\u001b[0m\u001b[0m 1.545438s\n", + "pythreejs : pythreejs 2.1.1 1.858083s\n", + "PyWavelets : pywt 1.1.1 0.377231s\n", + "imageio : imageio 2.6.1 0.387762s\n", + "networkx : networkx 2.3 3.447984s\n", + "scikit-image : skimage 0.16.2 0.284224s\n", + "ipywebrtc : ipywebrtc 0.5.0 0.040460s\n", + "ipyvolume : ipyvolume 0.5.2 0.409094s\n", + "branca : branca 0.3.1 0.226449s\n", + "ipyleaflet : ipyleaflet 0.11.4 0.070324s\n", + "ipympl : ipympl 0.3.3 0.123354s\n", + "PyYAML : yaml 5.1.2 0.000082s\n", + "jupyter_nbextensions_configurator : jupyter_nbextensions_configurator 0.4.1 0.003318s\n", + "jupyter_latex_envs : latex_envs 1.4.6 != \u001b[31m1.4.0 \u001b[0m 0.005721s\n", + "jupyter_highlight_selected_word : jupyter_highlight_selected_word 0.2.0 0.020243s\n", + "jupyter_contrib_core : jupyter_contrib_core 0.3.3 0.002995s\n", + "jupyter_contrib_nbextensions : jupyter_contrib_nbextensions 0.5.1 0.002769s\n", + "rise : rise 5.5.1 0.188142s\n", + "typing-extensions : typing_extensions 3.7.4 0.037277s\n", + "idna-ssl : idna_ssl 1.1.0 0.002152s\n", + "multidict : multidict 4.5.2 0.004443s\n", + "yarl : yarl 1.3.0 0.003127s\n", + "async-timeout : async_timeout 3.0.1 0.003045s\n", + "aiohttp : aiohttp 3.6.2 0.077788s\n", + "simpervisor : simpervisor 0.3 0.003966s\n", + "jupyter_server : jupyter_server 0.1.1 0.001706s\n", + "jupyter-server-proxy : jupyter_server_proxy 1.1.0 != \u001b[31m1.2.0 \u001b[0m 0.004240s\n", + "jupyterlab_github : jupyterlab_github 1.0.1 != \u001b[31m1.0.0 \u001b[0m 0.000919s\n", + "jupyterlab-gitlab : jupyterlab_gitlab 0.3.0 != \u001b[31m0.2.0 \u001b[0m 0.001144s\n", + "jupyterlab-quickopen : jupyterlab_quickopen 0.3.0 0.002939s\n", + "zstandard : zstandard 0.12.0 0.000029s\n", "itk_core : itk_core \u001b[31mIMPORT FAILED\u001b[0m\n", "itk_filtering : itk_filtering \u001b[31mIMPORT FAILED\u001b[0m\n", "itk_segmentation : itk_segmentation \u001b[31mIMPORT FAILED\u001b[0m\n", @@ -470,104 +471,104 @@ "itk_registration : itk_registration \u001b[31mIMPORT FAILED\u001b[0m\n", "itk_io : itk_io \u001b[31mIMPORT FAILED\u001b[0m\n", "itk-meshtopolydata : itk-meshtopolydata \u001b[31mIMPORT FAILED\u001b[0m\n", - "pyct : pyct 0.4.6 0.000033s\n", - "colorcet : colorcet 2.0.2 != \u001b[31m1.0.0 \u001b[0m 0.000027s\n", - "itkwidgets : itkwidgets 0.22.0 0.000023s\n", - "ujson : ujson 1.35 0.000023s\n", - "jupyterlab_iframe : jupyterlab_iframe 0.2.1 0.000023s\n", - "python-dotenv : dotenv 0.10.3 0.000022s\n", - "jupyterlab_latex : jupyterlab_latex 1.0.0 0.000027s\n", - "jupyterlab_slurm : jupyterlab_slurm 1.0.5 0.000026s\n", - "jupyterlmod : jupyterlmod 1.7.5 0.000022s\n", - "nbresuse : nbresuse 0.3.2 0.000032s\n", - "colorama : colorama 0.4.1 0.000027s\n", - "nbdime : nbdime 1.1.0 0.000024s\n", - "smmap2 : smmap 2.0.5 0.000022s\n", - "gitdb2 : gitdb 2.0.6 0.000023s\n", - "GitPython : git 3.0.4 0.000022s\n", - "jupyterlab-git : jupyterlab_git 0.8.1 0.000022s\n", - "sidecar : sidecar 0.3.0 0.000029s\n", - "pycodestyle : pycodestyle 2.5.0 0.000030s\n", - "autopep8 : autopep8 1.4.4 0.000023s\n", - "yapf : yapf 0.28.0 0.000023s\n", - "toml : toml 0.10.0 0.000022s\n", - "pathspec : pathspec 0.6.0 0.000024s\n", - "typed_ast : typed_ast 1.4.0 0.000022s\n", - "regex : regex 2019.11.1 != \u001b[31m2.5.65 \u001b[0m 0.000022s\n", - "black : black 19.3b0 0.000022s\n", - "jupyterlab-code-formatter : jupyterlab_code_formatter 0.6.1 0.000022s\n", - "pamela : pamela 1.0.0 0.000031s\n", - "certipy : certipy 0.1.3 0.000023s\n", - "oauthlib : oauthlib 3.1.0 0.000026s\n", - "jupyterhub : jupyterhub 1.0.0 0.000024s\n", - "appmode : appmode 0.6.0 0.000022s\n", - "HeapDict : heapdict 1.0.1 0.000022s\n", - "zict : zict 1.0.0 0.000026s\n", - "tblib : tblib 1.5.0 0.000023s\n", - "sortedcontainers : sortedcontainers 2.1.0 0.000029s\n", - "msgpack : msgpack 0.6.2 0.000023s\n", - "dask : dask 2.6.0 0.000028s\n", - "distributed : distributed 2.6.0 0.000023s\n", + "pyct : pyct 0.4.6 0.076661s\n", + "colorcet : colorcet 2.0.2 != \u001b[31m1.0.0 \u001b[0m 1.035480s\n", + "itkwidgets : itkwidgets 0.22.0 13.082362s\n", + "ujson : ujson 1.35 0.037301s\n", + "jupyterlab_iframe : jupyterlab_iframe 0.2.1 0.004151s\n", + "python-dotenv : dotenv 0.10.3 0.056290s\n", + "jupyterlab_latex : jupyterlab_latex 1.0.0 0.004882s\n", + "jupyterlab_slurm : jupyterlab_slurm 1.0.5 0.002469s\n", + "jupyterlmod : jupyterlmod 1.7.5 0.003136s\n", + "nbresuse : nbresuse 0.3.2 0.001697s\n", + "colorama : colorama 0.4.1 0.000065s\n", + "nbdime : nbdime 1.1.0 0.020851s\n", + "smmap2 : smmap 2.0.5 0.000058s\n", + "gitdb2 : gitdb 2.0.6 0.025730s\n", + "GitPython : git 3.0.4 0.099233s\n", + "jupyterlab-git : jupyterlab_git 0.8.1 0.016555s\n", + "sidecar : sidecar 0.3.0 0.018072s\n", + "pycodestyle : pycodestyle 2.5.0 0.007567s\n", + "autopep8 : autopep8 1.4.4 0.004303s\n", + "yapf : yapf 0.28.0 0.025461s\n", + "toml : toml 0.10.0 0.003055s\n", + "pathspec : pathspec 0.6.0 0.077891s\n", + "typed_ast : typed_ast 1.4.0 0.000055s\n", + "regex : regex 2019.11.1 != \u001b[31m2.5.65 \u001b[0m 0.087107s\n", + "black : black 19.3b0 0.265862s\n", + "jupyterlab-code-formatter : jupyterlab_code_formatter 0.6.1 0.001970s\n", + "pamela : pamela 1.0.0 0.081929s\n", + "certipy : certipy 0.1.3 0.000066s\n", + "oauthlib : oauthlib 3.1.0 0.000042s\n", + "jupyterhub : jupyterhub 1.0.0 0.003949s\n", + "appmode : appmode 0.6.0 0.001285s\n", + "HeapDict : heapdict 1.0.1 0.000043s\n", + "zict : zict 1.0.0 0.000043s\n", + "tblib : tblib 1.5.0 0.000032s\n", + "sortedcontainers : sortedcontainers 2.1.0 0.000033s\n", + "msgpack : msgpack 0.6.2 0.000029s\n", + "dask : dask 2.6.0 0.000039s\n", + "distributed : distributed 2.6.0 0.000030s\n", "dask-jobqueue : dask-jobqueue \u001b[31mIMPORT FAILED\u001b[0m\n", - "dask_labextension : dask_labextension 1.0.3 0.000032s\n", - "Automat : automat 0.8.0 0.000025s\n", - "PyHamcrest : hamcrest 1.9.0 0.000028s\n", - "Twisted : twisted 19.7.0 0.000023s\n", - "autobahn : autobahn 19.10.1 0.000023s\n", - "constantly : constantly 15.1.0 0.000022s\n", - "hyperlink : hyperlink 19.0.0 0.000021s\n", - "incremental : incremental 17.5.0 0.000025s\n", - "txaio : txaio 18.8.1 0.000031s\n", - "zope.interface : zope.interface 4.6.0 0.000024s\n", - "backcall : backcall 0.1.0 0.000025s\n", - "wslink : wslink 0.1.11 0.000023s\n", - "jupyterlab_pygments : jupyterlab_pygments 0.1.0 0.000023s\n", - "ipyvue : ipyvue 1.0.0 0.000023s\n", - "ipyvuetify : ipyvuetify 1.1.1 0.000022s\n", - "voila : voila 0.1.14 0.000024s\n", - "voila-material : - 0.2.5 0.000000s\n", + "dask_labextension : dask_labextension 1.0.3 0.012876s\n", + "Automat : automat 0.8.0 0.056752s\n", + "PyHamcrest : hamcrest 1.9.0 0.317690s\n", + "Twisted : twisted 19.7.0 0.044753s\n", + "autobahn : autobahn 19.10.1 0.006888s\n", + "constantly : constantly 15.1.0 0.039913s\n", + "hyperlink : hyperlink 19.0.0 0.074022s\n", + "incremental : incremental 17.5.0 0.000064s\n", + "txaio : txaio 18.8.1 0.038220s\n", + "zope.interface : zope.interface 4.6.0 0.138110s\n", + "backcall : backcall 0.1.0 0.000064s\n", + "wslink : wslink 0.1.11 0.007843s\n", + "jupyterlab_pygments : jupyterlab_pygments 0.1.0 0.009341s\n", + "ipyvue : ipyvue 1.0.0 0.025899s\n", + "ipyvuetify : ipyvuetify 1.1.1 0.414047s\n", + "voila : voila 0.1.14 0.010617s\n", + "voila-material : - 0.2.5 0.000001s\n", "voila-gridstack : - 0.0.6 0.000000s\n", - "voila-vuetify : - 0.1.1 0.000001s\n", + "voila-vuetify : - 0.1.1 0.000000s\n", "dicom-upload : dicom-upload \u001b[31mIMPORT FAILED\u001b[0m\n", - "fileupload : fileupload master != \u001b[31m0.1.0.dev \u001b[0m 0.000032s\n", - "pvlink : pvlink 0.1.2 0.000025s\n", - "julia : julia 0.5.0 0.000023s\n", - "textwrap3 : textwrap3 0.9.2 0.000022s\n", - "ansiwrap : ansiwrap 0.8.4 0.000027s\n", - "backports.weakref : backports.weakref 1.0.post1 0.000022s\n", - "backports.tempfile : backports.tempfile 1.0 0.000027s\n", - "tqdm : tqdm 4.41.0 0.000026s\n", - "tenacity : tenacity 6.0.0 0.000037s\n", - "papermill : papermill 1.2.1 0.000027s\n", - "patsy : patsy 0.5.1 0.000023s\n", - "statsmodels : statsmodels 0.10.2 0.000023s\n", - "cftime : cftime 1.0.4.2 0.000022s\n", - "vega_datasets : vega_datasets 0.8.0 0.000022s\n", - "arviz : arviz 0.5.1 0.000022s\n", + "fileupload : fileupload master != \u001b[31m0.1.0.dev \u001b[0m 0.014791s\n", + "pvlink : pvlink 0.1.2 0.012866s\n", + "julia : julia 0.5.0 0.102546s\n", + "textwrap3 : textwrap3 0.9.2 0.023105s\n", + "ansiwrap : ansiwrap 0.8.4 0.039140s\n", + "backports.weakref : backports.weakref 1.0.post1 0.020673s\n", + "backports.tempfile : backports.tempfile 1.0 0.006095s\n", + "tqdm : tqdm 4.41.0 0.101886s\n", + "tenacity : tenacity 6.0.0 0.093667s\n", + "papermill : papermill 1.2.1 0.417333s\n", + "patsy : patsy 0.5.1 0.281202s\n", + "statsmodels : statsmodels 0.10.2 0.000063s\n", + "cftime : cftime 1.0.4.2 0.000048s\n", + "vega_datasets : vega_datasets 0.8.0 0.124947s\n", + "arviz : arviz 0.5.1 8.192571s\n", "Theano : Theano \u001b[31mIMPORT FAILED\u001b[0m\n", - "altair : altair 3.3.0 0.000031s\n", - "cssselect : cssselect 1.1.0 0.000025s\n", - "smopy : smopy 0.0.7 != \u001b[31m0.0.6 \u001b[0m 0.000022s\n", - "joblib : joblib 0.14.1 0.000023s\n", + "altair : altair 3.3.0 0.572322s\n", + "cssselect : cssselect 1.1.0 0.074927s\n", + "smopy : smopy 0.0.7 != \u001b[31m0.0.6 \u001b[0m 0.005187s\n", + "joblib : joblib 0.14.1 0.000062s\n", "scikit-learn : scikit-learn \u001b[31mIMPORT FAILED\u001b[0m\n", - "memory_profiler : memory_profiler 0.55.0 0.000032s\n", - "h5py : h5py 2.10.0 0.000025s\n", - "line_profiler : line_profiler 2.1.2 != \u001b[31m\u001b[31mNO MATCH\u001b[0m\u001b[0m 0.000023s\n", - "pymc3 : pymc3 3.8 0.000027s\n", - "llvmlite : llvmlite 0.30.0 0.000024s\n", - "numba : numba 0.46.0 0.000022s\n", - "numexpr : numexpr 2.7.0 0.000022s\n", - "ipythonblocks : ipythonblocks 1.9.0 0.000024s\n", - "pydub : pydub 0.23.1 0.000028s\n", - "multipledispatch : multipledispatch 0.6.0 0.000027s\n", - "partd : partd 1.1.0 0.000022s\n", - "locket : locket 0.2.0 0.000022s\n", - "fsspec : fsspec 0.6.2 0.000025s\n", - "datashape : datashape 0.5.2 0.000023s\n", - "datashader : datashader 0.9.0 0.000023s\n", - "selenium : selenium 3.141.0 0.000021s\n", - "graphviz : graphviz 0.13.2 0.000022s\n", - "vincent : vincent 0.4.4 0.000027s\n", + "memory_profiler : memory_profiler 0.55.0 0.048130s\n", + "h5py : h5py 2.10.0 1.163224s\n", + "line_profiler : line_profiler 2.1.2 != \u001b[31m\u001b[31mNO MATCH\u001b[0m\u001b[0m 0.041151s\n", + "pymc3 : pymc3 3.8 6.798788s\n", + "llvmlite : llvmlite 0.30.0 0.000073s\n", + "numba : numba 0.46.0 0.000051s\n", + "numexpr : numexpr 2.7.0 0.101310s\n", + "ipythonblocks : ipythonblocks 1.9.0 0.023981s\n", + "pydub : pydub 0.23.1 0.209780s\n", + "multipledispatch : multipledispatch 0.6.0 0.062537s\n", + "partd : partd 1.1.0 0.168488s\n", + "locket : locket 0.2.0 0.000052s\n", + "fsspec : fsspec 0.6.2 0.136985s\n", + "datashape : datashape 0.5.2 0.177264s\n", + "datashader : datashader 0.9.0 13.161141s\n", + "selenium : selenium 3.141.0 0.009461s\n", + "graphviz : graphviz 0.13.2 0.088085s\n", + "vincent : vincent 0.4.4 0.167066s\n", "Shapely : Shapely \u001b[31mIMPORT FAILED\u001b[0m\n", "pyshp : pyshp \u001b[31mIMPORT FAILED\u001b[0m\n", "Cartopy : Cartopy \u001b[31mIMPORT FAILED\u001b[0m\n", @@ -614,6 +615,13 @@ " #except:\n", " # print(\"\".ljust(24), f\"{Fore.RED}UNKNOWN{Style.RESET_ALL}\")" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": {