diff --git a/SanityCheck.ipynb b/SanityCheck.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..07d19547e2e213284e0b1ad8a944f083f5320537 --- /dev/null +++ b/SanityCheck.ipynb @@ -0,0 +1,508 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Sanity Check of included Python packages" + ] + }, + { + "cell_type": "code", + "execution_count": 245, + "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", + " (\"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.2\", \"\"),\n", + " (\"nbconvert\", \"5.6.1\", \"\"),\n", + " (\"ipython_genutils\",\"0.2.0\", \"\"),\n", + " (\"Send2Trash\", \"1.5.0\", \"send2trash\"),\n", + " (\"notebook\", \"6.0.1\", \"\"),\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", + " (\"pythreejs\", \"2.1.1\", \"\"),\n", + " (\"PyWavelets\", \"1.1.1\", \"pywt\"),\n", + " (\"imageio\", \"2.6.1\", \"\"),\n", + " (\"networkx\", \"2.4\", \"\"),\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.0\", \"\"),\n", + " (\"jupyterlab-gitlab\", \"0.2.0\", \"jupyterlab_gitlab\"),\n", + " (\"jupyterlab-quickopen\", \"0.3.0\", \"jupyterlab_quickopen\"),\n", + " (\"zstandard\", \"0.12.0\", \"\"),\n", + " (\"pyct\", \"0.4.6\", \"\"),\n", + " (\"colorcet\", \"2.0.2\", \"\"),\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.10b0\", \"\"),\n", + " (\"jupyterlab-code-formatter\", \"0.6.1\", \"jupyterlab_code_formatter\"),\n", + " (\"pamela\", \"1.0.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_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", + "]\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": "code", + "execution_count": 247, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "PYPI NAME : IMPORT NAME REQ.VERSION | INST.VERSION\n", + "=======================================================================\n", + "setuptools : setuptools 41.6.0 \n", + "webencodings : webencodings 0.5.1 \n", + "six : six 1.12.0 \n", + "decorator : decorator 4.4.0 \n", + "MarkupSafe : markupsafe 1.1.1 \n", + "more-itertools : more_itertools 7.2.0 != \u001b[31m7.0.0\u001b[0m\n", + "pickleshare : pickleshare 0.7.5 \n", + "jedi : jedi 0.15.1 != \u001b[31m0.13.3\u001b[0m\n", + "wcwidth : wcwidth 0.1.7 \n", + "attr : attr 19.3.0 != \u001b[31m19.1.0\u001b[0m\n", + "parso : parso 0.5.1 != \u001b[31m0.3.4\u001b[0m\n", + "jinja2 : jinja2 2.10.1 != \u001b[31m2.10\u001b[0m\n", + "pytz : pytz 2019.3 != \u001b[31m2019.1\u001b[0m\n", + "pyparsing : pyparsing 2.2.0 != \u001b[31m2.3.1\u001b[0m\n", + "packaging : packaging 19.2 != \u001b[31m19.0\u001b[0m\n", + "urllib3 : urllib3 1.25.6 != \u001b[31m1.24.1\u001b[0m\n", + "certifi : certifi 2019.9.11 != \u001b[31m2019.03.09\u001b[0m\n", + "requests : requests 2.22.0 != \u001b[31m2.21.0\u001b[0m\n", + "python-dateutil : dateutil 2.8.1 != \u001b[31m2.8.0\u001b[0m\n", + "Pillow : PIL 6.2.1 != \u001b[31m6.0.0\u001b[0m\n", + "ply : ply 3.11 \n", + "pyrsistent : pyrsistent 0.15.4 != \u001b[31m0.14.11\u001b[0m\n", + "lxml : lxml 4.4.1 != \u001b[31m4.3.3\u001b[0m\n", + "idna : idna 2.8 \n", + "chardet : chardet 3.0.4 \n", + "pycparser : pycparser 2.19 \n", + "cffi : cffi 1.13.2 != \u001b[31m1.12.2\u001b[0m\n", + "psutil : psutil 5.6.3 != \u001b[31m5.6.1\u001b[0m\n", + "SQLAlchemy : sqlalchemy 1.3.10 != \u001b[31m1.3.1\u001b[0m\n", + "certipy : certipy \u001b[31mIMPORT FAILED\u001b[0m\n", + "python-editor : editor 1.0.4 \n", + "Mako : mako 1.1.0 != \u001b[31m1.0.8\u001b[0m\n", + "alembic : alembic 1.2.1 != \u001b[31m1.0.8\u001b[0m\n", + "click : click 7.0 \n", + "appdirs : appdirs 1.4.3 \n", + "cloudpickle : cloudpickle 1.2.2 != \u001b[31m0.8.1\u001b[0m\n", + "toolz : toolz 0.10.0 != \u001b[31m0.9.0\u001b[0m\n", + "cryptography : cryptography 2.8 != \u001b[31m2.6.1\u001b[0m\n", + "prompt-toolkit : prompt_toolkit 2.0.10 != \u001b[31m2.0.9\u001b[0m\n", + "oauthlib : oauthlib \u001b[31mIMPORT FAILED\u001b[0m\n", + "async-generator : async_generator 1.10 \n", + "smmap : smmap 0.9.0 != \u001b[31m2.0.5\u001b[0m\n", + "typed-ast : typed_ast 1.4.0 \n", + "cycler : cycler 0.10.0 \n", + "numpy : numpy 1.15.2 \n", + "scipy : scipy 1.2.1 \n", + "sympy : sympy 1.4 != \u001b[31m1.3\u001b[0m\n", + "pandas : pandas 0.25.3 != \u001b[31m0.24.2\u001b[0m\n", + "mpmath : mpmath 1.1.0 \n", + "kiwisolver : kiwisolver 1.1.0 != \u001b[31m1.0.1\u001b[0m\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\n", + "xarray : xarray 0.11.3 != \u001b[31m0.12.1\u001b[0m\n", + "pyOpenSSL : OpenSSL 19.0.0 \n", + "entrypoints : entrypoints 0.3 \n", + "async_generator : async_generator 1.10 \n", + "absl-py : absl 0.8.1 \n", + "tornado : tornado 6.0.3 \n", + "bokeh : bokeh 1.3.4 \n", + "seaborn : seaborn 0.9.0 \n", + "nbformat : nbformat 4.4.0 \n", + "param : param 1.9.2 \n", + "pyviz_comms : pyviz_comms 0.7.2 \n", + "holoviews : holoviews 1.12.6 \n", + "alabaster : alabaster 0.7.12 \n", + "Babel : babel 2.7.0 \n", + "snowballstemmer : snowballstemmer 2.0.0 \n", + "docutils : docutils 0.15.2 \n", + "imagesize : imagesize 1.1.0 \n", + "sphinxcontrib-websupport : sphinxcontrib.websupport 1.1.2 \n", + "Sphinx : sphinx 1.8.5 \n", + "pexpect : pexpect 4.7.0 \n", + "ipython : IPython 7.9.0 \n", + "ipynb : ipynb 0.5.1 \n", + "jupyter_core : jupyter_core 4.6.1 \n", + "retrying : retrying 1.3.3 \n", + "plotly : plotly 4.2.1 \n", + "tikzplotlib : tikzplotlib 0.8.4 \n", + "jupyter_client : jupyter_client 5.3.4 \n", + "traitlets : traitlets 4.3.3 \n", + "pyzmq : zmq 18.1.0 \n", + "singledispatch : singledispatch 3.4.0.3 \n", + "ipyparallel : ipyparallel 6.2.4 \n", + "ipykernel : ipykernel 5.1.3 \n", + "terminado : terminado 0.8.2 \n", + "bleach : bleach 3.1.0 \n", + "mistune : mistune 0.8.4 \n", + "pandocfilters : pandocfilters 1.4.2 \n", + "Pygments : pygments 2.4.2 \n", + "testpath : testpath 0.4.2 != \u001b[31m0.4.4\u001b[0m\n", + "nbconvert : nbconvert 5.6.1 \n", + "ipython_genutils : ipython_genutils 0.2.0 \n", + "Send2Trash : send2trash 1.5.0 \n", + "notebook : notebook 6.0.1 != \u001b[31m6.0.2\u001b[0m\n", + "version_information : version_information 1.0.3 \n", + "lesscpy : lesscpy 0.13.0 \n", + "prometheus-client : prometheus_client 0.7.1 \n", + "jupyterthemes : jupyterthemes 0.20.0 \n", + "zipp : zipp 0.6.0 \n", + "importlib_metadata : importlib_metadata 0.23 \n", + "jsonschema : jsonschema 3.1.1 \n", + "jupyterlab_launcher : jupyterlab_launcher 0.13.1 \n", + "sphinx_rtd_theme : sphinx_rtd_theme 0.4.3 \n", + "future : future 0.18.1 \n", + "commonmark : commonmark 0.9.1 \n", + "recommonmark : recommonmark 0.6.0 \n", + "jupyterlab : jupyterlab 1.2.1 \n", + "json5 : json5 0.8.5 \n", + "jupyterlab_server : jupyterlab_server 1.0.6 \n", + "ptyprocess : ptyprocess 0.6.0 \n", + "defusedxml : defusedxml 0.6.0 \n", + "widgetsnbextension : widgetsnbextension 3.5.1 \n", + "ipywidgets : ipywidgets 7.5.1 \n", + "ipydatawidgets : ipydatawidgets 4.0.1 \n", + "traittypes : traittypes 0.2.1 \n", + "bqplot : bqplot 0.11.9 \n", + "pythreejs : pythreejs 2.1.1 \n", + "PyWavelets : pywt 1.1.1 \n", + "imageio : imageio 2.6.1 \n", + "networkx : networkx 2.4 \n", + "scikit-image : skimage 0.16.2 \n", + "ipywebrtc : ipywebrtc 0.5.0 \n", + "ipyvolume : ipyvolume 0.5.2 \n", + "branca : branca 0.3.1 \n", + "ipyleaflet : ipyleaflet 0.11.4 \n", + "ipympl : ipympl 0.3.3 \n", + "PyYAML : yaml 5.1.2 \n", + "jupyter_nbextensions_configurator : jupyter_nbextensions_configurator 0.4.1 \n", + "jupyter_latex_envs : latex_envs 1.4.6 != \u001b[31m1.4.0\u001b[0m\n", + "jupyter_highlight_selected_word : jupyter_highlight_selected_word 0.2.0 \n", + "jupyter_contrib_core : jupyter_contrib_core 0.3.3 \n", + "jupyter_contrib_nbextensions : jupyter_contrib_nbextensions 0.5.1 \n", + "rise : rise 5.5.1 \n", + "typing-extensions : typing_extensions 3.7.4 \n", + "idna-ssl : idna_ssl 1.1.0 \n", + "multidict : multidict 4.5.2 \n", + "yarl : yarl 1.3.0 \n", + "async-timeout : async_timeout 3.0.1 \n", + "aiohttp : aiohttp 3.6.2 \n", + "simpervisor : simpervisor 0.3 \n", + "jupyter_server : jupyter_server 0.1.1 \n", + "jupyter-server-proxy : jupyter_server_proxy 1.1.0 \n", + "jupyterlab_github : jupyterlab_github 1.0.0 \n", + "jupyterlab-gitlab : jupyterlab_gitlab 0.2.0 \n", + "jupyterlab-quickopen : jupyterlab_quickopen 0.3.0 \n", + "zstandard : zstandard 0.12.0 \n", + "pyct : pyct 0.4.6 \n", + "colorcet : colorcet 2.0.2 != \u001b[31m1.0.0\u001b[0m\n", + "ujson : ujson 1.35 \n", + "jupyterlab_iframe : jupyterlab_iframe 0.2.1 \n", + "python-dotenv : dotenv 0.10.3 \n", + "jupyterlab_latex : jupyterlab_latex 1.0.0 \n", + "jupyterlab_slurm : jupyterlab_slurm 1.0.5 \n", + "jupyterlmod : jupyterlmod 1.7.5 \n", + "nbresuse : nbresuse 0.3.2 \n", + "colorama : colorama 0.4.1 \n", + "nbdime : nbdime 1.1.0 \n", + "smmap2 : smmap 2.0.5 \n", + "gitdb2 : gitdb 2.0.6 \n", + "GitPython : git 3.0.4 \n", + "jupyterlab-git : jupyterlab_git 0.8.1 \n", + "sidecar : sidecar 0.3.0 \n", + "pycodestyle : pycodestyle 2.5.0 \n", + "autopep8 : autopep8 1.4.4 \n", + "yapf : yapf 0.28.0 \n", + "toml : toml 0.10.0 \n", + "pathspec : pathspec 0.6.0 \n", + "typed_ast : typed_ast 1.4.0 \n", + "regex : regex 2019.11.1 != \u001b[31m2.5.65\u001b[0m\n", + "black : black 19.10b0 != \u001b[31m19.3b0\u001b[0m\n", + "jupyterlab-code-formatter : jupyterlab_code_formatter 0.6.1 \n", + "pamela : pamela 1.0.0 \n", + "jupyterhub : jupyterhub 1.0.0 \n", + "appmode : appmode 0.6.0 \n", + "HeapDict : heapdict 1.0.1 \n", + "zict : zict 1.0.0 \n", + "tblib : tblib 1.5.0 \n", + "sortedcontainers : sortedcontainers 2.1.0 \n", + "msgpack : msgpack 0.6.2 \n", + "dask : dask 2.6.0 \n", + "distributed : distributed 2.6.0 \n", + "dask_labextension : dask_labextension 1.0.3 \n", + "Automat : automat 0.8.0 \n", + "PyHamcrest : hamcrest 1.9.0 \n", + "Twisted : twisted 19.7.0 \n", + "autobahn : autobahn 19.10.1 \n", + "constantly : constantly 15.1.0 \n", + "hyperlink : hyperlink 19.0.0 \n", + "incremental : incremental 17.5.0 \n", + "txaio : txaio 18.8.1 \n", + "zope.interface : zope.interface 4.6.0 \n", + "backcall : backcall 0.1.0 \n", + "wslink : wslink 0.1.11 \n", + "jupyterlab_pygments : jupyterlab_pygments 0.1.0 \n", + "ipyvue : ipyvue 1.0.0 \n", + "ipyvuetify : ipyvuetify 1.1.1 \n", + "voila : voila 0.1.14 \n", + "voila-material : - 0.2.5 \n", + "voila-gridstack : - 0.0.6 \n", + "voila-vuetify : - 0.1.1 \n" + ] + } + ], + "source": [ + "import importlib\n", + "from colorama import Fore, Style\n", + "\n", + "print(\"PYPI NAME\".ljust(20), \": \", \"IMPORT NAME\".ljust(20) + \"REQ.VERSION | INST.VERSION\")\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", + " if pkg_importname != \"-\":\n", + " pkg = importlib.import_module(pkg_importname)\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 + f\"{Style.RESET_ALL}\"\n", + "\n", + " print(pkg_name.ljust(20), \": \", pkg_importname.ljust(20), version.ljust(10))\n", + " except:\n", + " print(pkg_name.ljust(20), \": \", pkg_importname.ljust(20), f\"{Fore.RED}IMPORT FAILED{Style.RESET_ALL}\") \n", + " \n", + " #print(\"\".ljust(24), pkg.__file__)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "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 +}