From c4949eb8bfa6ac663dd0cebd9d47b60d1215fddb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jens=20Henrik=20G=C3=B6bbert?= <j.goebbert@fz-juelich.de>
Date: Mon, 6 Jan 2020 16:31:21 +0100
Subject: [PATCH] list pypackages

---
 PythonPackages.ipynb | 640 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 640 insertions(+)
 create mode 100644 PythonPackages.ipynb

diff --git a/PythonPackages.ipynb b/PythonPackages.ipynb
new file mode 100644
index 0000000..1bc11d7
--- /dev/null
+++ b/PythonPackages.ipynb
@@ -0,0 +1,640 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## List of included Python packages\n",
+    "\n",
+    "This lists the python packages available and installed by the install script for Python, SciPy-Stack and Jupyter:\n",
+    " - `$EBROOTPYTHON/easybuild/*.eb`\n",
+    " - `$EBROOTSCIPYMINSTACK/easybuild/*.eb`\n",
+    " - `$EBROOTJUPYTER/easybuild/*.eb`\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "pkg_list = [\n",
+    "        # Python module\n",
+    "                (\"setuptools\",      \"41.6.0\",    \"\"),\n",
+    "                (\"webencodings\",    \"0.5.1\",     \"\"),\n",
+    "                (\"six\",             \"1.12.0\",    \"\"),\n",
+    "                (\"decorator\",       \"4.4.0\",     \"\"),\n",
+    "                (\"MarkupSafe\",      \"1.1.1\",     \"markupsafe\"),\n",
+    "                (\"more-itertools\",  \"7.2.0\",     \"more_itertools\"),\n",
+    "                (\"pickleshare\",     \"0.7.5\",     \"\"),\n",
+    "                (\"jedi\",            \"0.15.1\",    \"\"),\n",
+    "                (\"wcwidth\",         \"0.1.7\",     \"\"),\n",
+    "                (\"attr\",            \"19.3.0\",    \"\"),\n",
+    "                (\"parso\",           \"0.5.1\",     \"\"),\n",
+    "                (\"jinja2\",          \"2.10.1\",    \"\"),\n",
+    "                (\"pytz\",            \"2019.3\",    \"\"),\n",
+    "                (\"pyparsing\",       \"2.2.0\",     \"\"),\n",
+    "                (\"packaging\",       \"19.2\",      \"\"),\n",
+    "                (\"urllib3\",         \"1.25.6\",    \"\"),\n",
+    "                (\"certifi\",         \"2019.9.11\", \"\"),\n",
+    "                (\"requests\",        \"2.22.0\",    \"\"),\n",
+    "                (\"python-dateutil\", \"2.8.1\",     \"dateutil\"),\n",
+    "                (\"Pillow\",          \"6.2.1\",     \"PIL\"),\n",
+    "                (\"ply\",             \"3.11\",      \"\"),\n",
+    "                (\"pyrsistent\",      \"0.15.4\",    \"\"),\n",
+    "                (\"lxml\",            \"4.4.1\",     \"\"),\n",
+    "                (\"idna\",            \"2.8\",       \"\"),\n",
+    "                (\"chardet\",         \"3.0.4\",     \"\"),\n",
+    "                (\"pycparser\",       \"2.19\",      \"\"),\n",
+    "                (\"cffi\",            \"1.13.2\",    \"\"),\n",
+    "                (\"psutil\",          \"5.6.3\",     \"\"),\n",
+    "                (\"SQLAlchemy\",      \"1.3.10\",    \"sqlalchemy\"),\n",
+    "                (\"certipy\",         \"0.1.3\",     \"\"),\n",
+    "                (\"python-editor\",   \"1.0.4\",     \"editor\"),\n",
+    "                (\"Mako\",            \"1.1.0\",     \"mako\"),\n",
+    "                (\"alembic\",         \"1.2.1\",     \"\"),\n",
+    "                (\"click\",           \"7.0\",       \"\"),\n",
+    "                (\"appdirs\",         \"1.4.3\",     \"\"),\n",
+    "                (\"cloudpickle\",     \"1.2.2\",     \"\"),\n",
+    "                (\"toolz\",           \"0.10.0\",    \"\"),\n",
+    "                (\"cryptography\",    \"2.8\",       \"\"),\n",
+    "    \n",
+    "                (\"prompt-toolkit\",  \"2.0.10\",    \"prompt_toolkit\"),\n",
+    "                (\"oauthlib\",        \"3.1.0\",     \"\"),\n",
+    "                (\"async-generator\", \"1.10\",      \"async_generator\"),\n",
+    "                (\"smmap\",           \"0.9.0\",     \"\"),\n",
+    "                (\"typed-ast\",       \"1.4.0\",     \"typed_ast\"),\n",
+    "\n",
+    "        # SciPy-Stack module\n",
+    "                (\"cycler\",          \"0.10.0\",    \"\"),\n",
+    "                (\"numpy\",           \"1.15.2\",    \"\"),\n",
+    "                (\"scipy\",           \"1.2.1\",     \"\"),\n",
+    "                (\"sympy\",           \"1.4\",       \"\"),\n",
+    "                (\"pandas\",          \"0.25.3\",    \"\"),\n",
+    "                (\"mpmath\",          \"1.1.0\",     \"\"),\n",
+    "                (\"kiwisolver\",      \"1.1.0\",     \"\"),\n",
+    "                (\"backports.functools_lru_cache\", \"1.5\", \"\"),\n",
+    "                (\"matplotlib\",      \"3.1.1\",     \"\"),\n",
+    "                (\"xarray\",          \"0.11.3\",    \"\"),\n",
+    "    \n",
+    "        # Jupyter module\n",
+    "                (\"pyOpenSSL\",       \"19.0.0\",    \"OpenSSL\"),\n",
+    "                (\"entrypoints\",     \"0.3\",       \"\"),\n",
+    "                (\"async_generator\", \"1.10\",      \"\"),\n",
+    "                (\"absl-py\",         \"0.8.1\",     \"absl\"),\n",
+    "                (\"cryptography\",    \"2.8\",       \"\"),\n",
+    "                (\"tornado\",         \"6.0.3\",     \"\"),\n",
+    "                (\"bokeh\",           \"1.3.4\",     \"\"),\n",
+    "                (\"seaborn\",         \"0.9.0\",     \"\"),\n",
+    "                (\"nbformat\",        \"4.4.0\",     \"\"),\n",
+    "                (\"param\",           \"1.9.2\",     \"\"),\n",
+    "                (\"pyviz_comms\",     \"0.7.2\",     \"\"),\n",
+    "                (\"holoviews\",       \"1.12.6\",    \"\"),\n",
+    "                (\"alabaster\",       \"0.7.12\",    \"\"),\n",
+    "                (\"Babel\",           \"2.7.0\",     \"babel\"),\n",
+    "                (\"snowballstemmer\", \"2.0.0\",     \"\"),\n",
+    "                (\"docutils\",        \"0.15.2\",    \"\"),\n",
+    "                (\"imagesize\",       \"1.1.0\",     \"\"),\n",
+    "                (\"sphinxcontrib-websupport\", \"1.1.2\", \"sphinxcontrib.websupport\"),\n",
+    "                (\"Sphinx\",          \"1.8.5\",     \"sphinx\"),\n",
+    "                (\"pexpect\",         \"4.7.0\",     \"\"),\n",
+    "                (\"ipython\",         \"7.9.0\",     \"IPython\"),\n",
+    "                (\"ipynb\",           \"0.5.1\",     \"\"),\n",
+    "                (\"jupyter_core\",    \"4.6.1\",     \"\"),\n",
+    "                (\"retrying\",        \"1.3.3\",     \"\"),\n",
+    "                (\"plotly\",          \"4.2.1\",     \"\"),\n",
+    "                (\"tikzplotlib\",     \"0.8.4\",     \"\"),\n",
+    "                (\"jupyter_client\",  \"5.3.4\",     \"\"),\n",
+    "                (\"traitlets\",       \"4.3.3\",     \"\"),\n",
+    "                (\"pyzmq\",           \"18.1.0\",    \"zmq\"),\n",
+    "                (\"singledispatch\",  \"3.4.0.3\",   \"\"),\n",
+    "                (\"ipyparallel\",     \"6.2.4\",     \"\"),\n",
+    "                (\"ipykernel\",       \"5.1.3\",     \"\"),\n",
+    "                (\"terminado\",       \"0.8.2\",     \"\"),\n",
+    "                (\"bleach\",          \"3.1.0\",     \"\"),\n",
+    "                (\"mistune\",         \"0.8.4\",     \"\"),\n",
+    "                (\"pandocfilters\",   \"1.4.2\",     \"\"),\n",
+    "                (\"Pygments\",        \"2.4.2\",     \"pygments\"),\n",
+    "                (\"testpath\",        \"0.4.4\",     \"\"),\n",
+    "                (\"nbconvert\",       \"5.6.1\",     \"\"),\n",
+    "                (\"ipython_genutils\",\"0.2.0\",     \"\"),\n",
+    "                (\"Send2Trash\",      \"1.5.0\",     \"send2trash\"),\n",
+    "                (\"notebook\",        \"6.0.2\",     \"\"),\n",
+    "                (\"version_information\", \"1.0.3\", \"\"),\n",
+    "                (\"lesscpy\",         \"0.13.0\",    \"\"),\n",
+    "                (\"prometheus-client\", \"0.7.1\",   \"prometheus_client\"),\n",
+    "                (\"jupyterthemes\",   \"0.20.0\",    \"\"),\n",
+    "                (\"zipp\",            \"0.6.0\",     \"\"),\n",
+    "                (\"importlib_metadata\", \"0.23\",   \"\"),\n",
+    "                (\"jsonschema\",      \"3.1.1\",     \"\"),\n",
+    "                (\"jupyterlab_launcher\", \"0.13.1\",\"\"),\n",
+    "                (\"sphinx_rtd_theme\",\"0.4.3\",     \"\"),\n",
+    "                (\"future\",          \"0.18.1\",    \"\"),\n",
+    "                (\"commonmark\",      \"0.9.1\",     \"\"),\n",
+    "                (\"recommonmark\",    \"0.6.0\",     \"\"),\n",
+    "                (\"jupyterlab\",      \"1.2.1\",     \"\"),\n",
+    "                (\"json5\",           \"0.8.5\",     \"\"),\n",
+    "                (\"jupyterlab_server\", \"1.0.6\",   \"\"),\n",
+    "                (\"ptyprocess\",      \"0.6.0\",     \"\"),\n",
+    "                (\"defusedxml\",      \"0.6.0\",     \"\"),\n",
+    "                (\"widgetsnbextension\", \"3.5.1\",  \"\"),\n",
+    "                (\"ipywidgets\",      \"7.5.1\",     \"\"),\n",
+    "                (\"ipydatawidgets\",  \"4.0.1\",     \"\"),\n",
+    "                (\"traittypes\",      \"0.2.1\",     \"\"),\n",
+    "                (\"bqplot\",          \"0.11.9\",    \"\"),\n",
+    "                (\"jupyter_bokeh\",   \"1.1.1\",     \"\"),\n",
+    "                (\"pythreejs\",       \"2.1.1\",     \"\"),\n",
+    "                (\"PyWavelets\",      \"1.1.1\",     \"pywt\"),\n",
+    "                (\"imageio\",         \"2.6.1\",     \"\"),\n",
+    "                (\"networkx\",        \"2.3\",       \"\"),\n",
+    "                (\"scikit-image\",    \"0.16.2\",    \"skimage\"),\n",
+    "                (\"ipywebrtc\",       \"0.5.0\",     \"\"),\n",
+    "                (\"ipyvolume\",       \"0.5.2\",     \"\"),\n",
+    "                (\"branca\",          \"0.3.1\",     \"\"),\n",
+    "                (\"ipyleaflet\",      \"0.11.4\",    \"\"),\n",
+    "                (\"ipympl\",          \"0.3.3\",     \"\"),\n",
+    "                (\"PyYAML\",          \"5.1.2\",     \"yaml\"),\n",
+    "                (\"jupyter_nbextensions_configurator\", \"0.4.1\", \"\"),\n",
+    "                (\"jupyter_latex_envs\", \"1.4.6\",  \"latex_envs\"),\n",
+    "                (\"jupyter_highlight_selected_word\", \"0.2.0\", \"\"),\n",
+    "                (\"jupyter_contrib_core\", \"0.3.3\",\"\"),\n",
+    "                (\"jupyter_contrib_nbextensions\", \"0.5.1\", \"\"),\n",
+    "                (\"rise\",            \"5.5.1\",    \"\"),\n",
+    "                (\"typing-extensions\", \"3.7.4\",  \"typing_extensions\"),\n",
+    "                (\"idna-ssl\",        \"1.1.0\",    \"idna_ssl\"),\n",
+    "                (\"multidict\",       \"4.5.2\",    \"\"),\n",
+    "                (\"yarl\",            \"1.3.0\",    \"\"),\n",
+    "                (\"async-timeout\",   \"3.0.1\",    \"async_timeout\"),\n",
+    "                (\"aiohttp\",         \"3.6.2\",    \"\"),\n",
+    "                (\"simpervisor\",     \"0.3\",      \"\"),\n",
+    "                (\"jupyter_server\",  \"0.1.1\",    \"\"),\n",
+    "                (\"jupyter-server-proxy\", \"1.1.0\", \"jupyter_server_proxy\"),\n",
+    "                (\"jupyterlab_github\", \"1.0.1\",  \"\"),\n",
+    "                (\"jupyterlab-gitlab\", \"0.3.0\",  \"jupyterlab_gitlab\"),\n",
+    "                (\"jupyterlab-quickopen\", \"0.3.0\", \"jupyterlab_quickopen\"),\n",
+    "                (\"zstandard\",       \"0.12.0\",   \"\"),\n",
+    "                (\"itk_core\",        \"5.0.1\",    \"\"),\n",
+    "                (\"itk_filtering\",   \"5.0.1\",    \"\"),\n",
+    "                (\"itk_segmentation\",\"5.0.1\",    \"\"),\n",
+    "                (\"itk_numerics\",    \"5.0.1\",    \"\"),\n",
+    "                (\"itk_registration\",\"5.0.1\",    \"\"),\n",
+    "                (\"itk_io\",          \"5.0.1\",    \"\"),\n",
+    "                (\"itk-meshtopolydata\", \"0.5.1\", \"\"),\n",
+    "                (\"pyct\",            \"0.4.6\",    \"\"),\n",
+    "                (\"colorcet\",        \"2.0.2\",    \"\"),\n",
+    "                (\"itkwidgets\",      \"0.22.0\",   \"\"),\n",
+    "                (\"ujson\",           \"1.35\",     \"\"),\n",
+    "                (\"jupyterlab_iframe\", \"0.2.1\",  \"\"),\n",
+    "                (\"python-dotenv\",   \"0.10.3\",   \"dotenv\"),\n",
+    "                (\"jupyterlab_latex\",\"1.0.0\",    \"\"),\n",
+    "                (\"jupyterlab_slurm\",\"1.0.5\",    \"\"),\n",
+    "                (\"jupyterlmod\",     \"1.7.5\",    \"\"),\n",
+    "                (\"nbresuse\",        \"0.3.2\",    \"\"),\n",
+    "                (\"colorama\",        \"0.4.1\",    \"\"),\n",
+    "                (\"nbdime\",          \"1.1.0\",    \"\"),\n",
+    "                (\"smmap2\",          \"2.0.5\",    \"smmap\"),\n",
+    "                (\"gitdb2\",          \"2.0.6\",    \"gitdb\"),\n",
+    "                (\"GitPython\",       \"3.0.4\",    \"git\"),\n",
+    "                (\"jupyterlab-git\",  \"0.8.1\",    \"jupyterlab_git\"),\n",
+    "                (\"sidecar\",         \"0.3.0\",    \"\"),\n",
+    "                (\"pycodestyle\",     \"2.5.0\",    \"\"),\n",
+    "                (\"autopep8\",        \"1.4.4\",    \"\"),\n",
+    "                (\"yapf\",            \"0.28.0\",   \"\"),\n",
+    "                (\"toml\",            \"0.10.0\",   \"\"),\n",
+    "                (\"pathspec\",        \"0.6.0\",    \"\"),\n",
+    "                (\"typed_ast\",       \"1.4.0\",    \"\"),\n",
+    "                (\"regex\",           \"2019.11.1\",\"\"),\n",
+    "                (\"black\",           \"19.3b0\",  \"\"),\n",
+    "                (\"jupyterlab-code-formatter\", \"0.6.1\", \"jupyterlab_code_formatter\"),\n",
+    "                (\"pamela\",          \"1.0.0\",    \"\"),\n",
+    "                (\"certipy\",         \"0.1.3\",    \"\"),\n",
+    "                (\"oauthlib\",        \"3.1.0\",    \"\"),\n",
+    "                (\"jupyterhub\",      \"1.0.0\",    \"\"),\n",
+    "                (\"appmode\",         \"0.6.0\",    \"\"),\n",
+    "                (\"HeapDict\",        \"1.0.1\",    \"heapdict\"),\n",
+    "                (\"zict\",            \"1.0.0\",    \"\"),\n",
+    "                (\"tblib\",           \"1.5.0\",    \"\"),\n",
+    "                (\"sortedcontainers\",\"2.1.0\",    \"\"),\n",
+    "                (\"msgpack\",         \"0.6.2\",    \"\"),\n",
+    "                (\"dask\",            \"2.6.0\",    \"\"),\n",
+    "                (\"distributed\",     \"2.6.0\",    \"\"),\n",
+    "                (\"dask-jobqueue\",   \"0.7.0\",    \"\"),\n",
+    "                (\"dask_labextension\", \"1.0.3\",  \"\"),\n",
+    "                (\"Automat\",         \"0.8.0\",    \"automat\"),\n",
+    "                (\"PyHamcrest\",      \"1.9.0\",    \"hamcrest\"),\n",
+    "                (\"Twisted\",         \"19.7.0\",   \"twisted\"),\n",
+    "                (\"autobahn\",        \"19.10.1\",  \"\"),\n",
+    "                (\"constantly\",      \"15.1.0\",   \"\"),\n",
+    "                (\"hyperlink\",       \"19.0.0\",   \"\"),\n",
+    "                (\"incremental\",     \"17.5.0\",   \"\"),\n",
+    "                (\"txaio\",           \"18.8.1\",   \"\"),\n",
+    "                (\"zope.interface\",  \"4.6.0\",    \"\"),\n",
+    "                (\"backcall\",        \"0.1.0\",    \"\"),\n",
+    "                (\"wslink\",          \"0.1.11\",   \"\"),\n",
+    "                (\"jupyterlab_pygments\", \"0.1.0\",\"\"),\n",
+    "                (\"ipyvue\",          \"1.0.0\",    \"\"),\n",
+    "                (\"ipyvuetify\",      \"1.1.1\",    \"\"),\n",
+    "                (\"voila\",           \"0.1.14\",   \"\"),\n",
+    "                (\"voila-material\",  \"0.2.5\",    \"-\"),\n",
+    "                (\"voila-gridstack\", \"0.0.6\",    \"-\"),\n",
+    "                (\"voila-vuetify\",   \"0.1.1\",    \"-\"),   \n",
+    "                (\"dicom-upload\",    \"v0.1.0\",   \"\"),\n",
+    "                (\"fileupload\",      \"master\",   \"\"),\n",
+    "                (\"pvlink\",          \"0.1.2\",    \"\"),\n",
+    "                (\"julia\",           \"0.5.0\",    \"\"),\n",
+    "                (\"textwrap3\",       \"0.9.2\",    \"\"),\n",
+    "                (\"ansiwrap\",        \"0.8.4\",    \"\"),\n",
+    "                (\"backports.weakref\",\"1.0.post1\",\"\"),\n",
+    "                (\"backports.tempfile\",\"1.0\",    \"\"),\n",
+    "                (\"tqdm\",            \"4.41.0\",   \"\"),\n",
+    "                (\"tenacity\",        \"6.0.0\",    \"\"),\n",
+    "                (\"papermill\",       \"1.2.1\",    \"\"),\n",
+    "        \n",
+    "   # PythonPackages for Tutorials\n",
+    "                (\"patsy\",           \"0.5.1\",    \"\"),\n",
+    "                (\"statsmodels\",     \"0.10.2\",   \"\"),\n",
+    "                (\"cftime\",          \"1.0.4.2\",  \"\"),\n",
+    "                (\"vega_datasets\",   \"0.8.0\",    \"\"),\n",
+    "                (\"arviz\",           \"0.5.1\",    \"\"),\n",
+    "                (\"Theano\",          \"1.0.4\",    \"\"),\n",
+    "                (\"altair\",          \"3.3.0\",    \"\"),\n",
+    "                (\"cssselect\",       \"1.1.0\",    \"\"),\n",
+    "                (\"smopy\",           \"0.0.7\",    \"\"),\n",
+    "                (\"joblib\",          \"0.14.1\",   \"\"),\n",
+    "                (\"scikit-learn\",    \"0.22\",     \"\"),\n",
+    "                (\"memory_profiler\", \"0.55.0\",   \"\"),\n",
+    "                (\"h5py\",            \"2.10.0\",   \"\"),\n",
+    "                (\"line_profiler\",   \"2.1.2\",    \"\"),\n",
+    "                (\"pymc3\",           \"3.8\",      \"\"),\n",
+    "                (\"llvmlite\",        \"0.30.0\",   \"\"),\n",
+    "                (\"numba\",           \"0.46.0\",   \"\"),\n",
+    "                (\"numexpr\",         \"2.7.0\",    \"\"),\n",
+    "                (\"ipythonblocks\",   \"1.9.0\",    \"\"),\n",
+    "                (\"pydub\",           \"0.23.1\",   \"\"),\n",
+    "                (\"multipledispatch\",\"0.6.0\",    \"\"),\n",
+    "                (\"partd\",           \"1.1.0\",    \"\"),\n",
+    "                (\"locket\",          \"0.2.0\",    \"\"),\n",
+    "                (\"fsspec\",          \"0.6.2\",    \"\"),\n",
+    "                (\"datashape\",       \"0.5.2\",    \"\"),\n",
+    "                (\"datashader\",      \"0.9.0\",    \"\"),\n",
+    "                (\"selenium\",        \"3.141.0\",  \"\"),\n",
+    "                (\"graphviz\",        \"0.13.2\",   \"\"),\n",
+    "                (\"vincent\",         \"0.4.4\",    \"\"),\n",
+    "                (\"Shapely\",         \"1.6.4.post2\",\"\"),\n",
+    "                (\"pyshp\",           \"2.1.0\",    \"\"),\n",
+    "                (\"Cartopy\",         \"0.17.0\",   \"\"),\n",
+    "                (\"pandas-datareader\",\"0.8.1\",   \"\"),\n",
+    "]\n",
+    "\n",
+    "from pip._vendor import pkg_resources\n",
+    "def get_version(package):\n",
+    "    package = package.lower()\n",
+    "    return next((p.version for p in pkg_resources.working_set if p.project_name.lower() == package), f\"{Fore.RED}NO MATCH{Style.RESET_ALL}\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Run a Sanity Check\n",
+    "A test of the Python packages follows here.  \n",
+    "\n",
+    "Attention:\n",
+    " - Slight changes in the version numbers are due to compatibility problems we encountered and therefore had to make adjustments.\n",
+    " - \"NO MATCH\" - Not all package versions can be automatically found by this script\n",
+    " - \"IMPORT FAILED\" - Import failures are possible if python packages are not ment to be importable by the developer."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "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",
+      "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",
+      "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",
+      "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",
+      "itk_numerics         :   itk_numerics         \u001b[31mIMPORT FAILED\u001b[0m\n",
+      "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",
+      "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",
+      "voila-gridstack      :   -                    0.0.6                    0.000000s\n",
+      "voila-vuetify        :   -                    0.1.1                    0.000001s\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",
+      "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",
+      "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",
+      "Shapely              :   Shapely              \u001b[31mIMPORT FAILED\u001b[0m\n",
+      "pyshp                :   pyshp                \u001b[31mIMPORT FAILED\u001b[0m\n",
+      "Cartopy              :   Cartopy              \u001b[31mIMPORT FAILED\u001b[0m\n",
+      "pandas-datareader    :   pandas-datareader    \u001b[31mIMPORT FAILED\u001b[0m\n"
+     ]
+    }
+   ],
+   "source": [
+    "import importlib\n",
+    "from colorama import Fore, Style\n",
+    "from timeit import default_timer as timer\n",
+    "\n",
+    "print(\"PYPI NAME\".ljust(20), \":  \", \"IMPORT NAME\".ljust(20) + \"REQ.VERS.|INST.VERS.\".ljust(25) + \"IMPORT TIME\")\n",
+    "print(\"=================================================================================\")\n",
+    "for pkg_name, pkg_version, pkg_importname in pkg_list:\n",
+    "    if not pkg_importname:\n",
+    "        pkg_importname = pkg_name\n",
+    "    pkg = None\n",
+    "       \n",
+    "    try:\n",
+    "        # import package\n",
+    "        start_time = timer()\n",
+    "        if pkg_importname != \"-\":\n",
+    "            pkg = importlib.import_module(pkg_importname)\n",
+    "        import_time = timer() - start_time\n",
+    "            \n",
+    "        # get version\n",
+    "        try:\n",
+    "            version = pkg.__version__\n",
+    "            if not isinstance(pkg.__version__, str):\n",
+    "                raise\n",
+    "        except:\n",
+    "            version = get_version(pkg_name)\n",
+    "            \n",
+    "        if version != pkg_version:\n",
+    "            version = pkg_version.ljust(10) + \" != \" + f\"{Fore.RED}\" + version.ljust(10) + f\"{Style.RESET_ALL}\"\n",
+    "\n",
+    "        print(pkg_name.ljust(20), \":  \", pkg_importname.ljust(20), version.ljust(24), f\"{import_time:.6f}\"+\"s\")\n",
+    "    except:\n",
+    "        print(pkg_name.ljust(20), \":  \", pkg_importname.ljust(20), f\"{Fore.RED}IMPORT FAILED{Style.RESET_ALL}\")  \n",
+    "    \n",
+    "    #try:\n",
+    "    #    print(\"\".ljust(24), pkg.__file__)\n",
+    "    #except:\n",
+    "    #    print(\"\".ljust(24), f\"{Fore.RED}UNKNOWN{Style.RESET_ALL}\")"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.6.8"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
-- 
GitLab