Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #85 from Ouranosinc/update-to-jupyterlab-v3
docker: update to JupyterLab v3 and fix broken jupyterlab-system-monitor plugin # Overview JupyterLab v3 was available since January 2021 but we had to pin to v2 since many of the plugins we use were broken at the time for v3. Fast forward 7 months later, only the Google Drive plugin still do not support JupyterLab v3 so we decided to drop it since it was only used by one single user (`ls -larth /data/jupyterhub_user_data/*/.home/.jupyter/lab/user-settings/@jupyterlab/google-drive /dev/null` shows who uses it). We have not enabled the system-wide Google Drive config due to security concern so each user had to configure it themselves separately. Staying on JupyterLab v2 caused us the reverse problem, some plugins stopped working with v2, example the jupyterlab-system-monitor one. That one is becoming more crucial as we have more and more users and we would like users to be aware of their resource consumptions on the system. This PR fixes #83, the jupyterlab-system-monitor problem. ## Changes - Update to JupyterLab v3 - Update install steps for all plugins to be compatible with JupyterLab v3 - Drop Google Drive plugin since not compatible with v3 - Fix jupyterlab-system-monitor plugin, was broken with v2 - Unpin pandas as xarray issue pydata/xarray/issues/5588 fixed - Picked up latest RavenPy 0.7.0 - Relevant packages changes: ```diff < - jupyterlab=2.2.9=pyhd8ed1ab_0 > - jupyterlab=3.1.0=pyhd8ed1ab_0 < - jupyterlab_server=1.2.0=py_0 > - jupyterlab_server=2.6.1=pyhd8ed1ab_0 < - jupyter-archive=2.2.0=pyhd8ed1ab_0 > - jupyter-archive=3.0.1=pyhd8ed1ab_0 < - jupyter_bokeh=2.0.4=pyhd8ed1ab_0 > - jupyter_bokeh=3.0.2=pyhd8ed1ab_0 < - jupyterlab-git=0.24.0=pyhd8ed1ab_0 > - jupyterlab-git=0.31.0=pyhd8ed1ab_0 < - nbdime=2.1.0=py_0 > - nbdime=3.1.0=pyhd8ed1ab_0 # Pip to Conda package < - nbresuse==0.4.0 > - nbresuse=0.4.0=pyhd8ed1ab_0 > - nbclassic=0.3.1=pyhd8ed1ab_1 > - jupyterlab-system-monitor=0.8.0=pyhd8ed1ab_1 > - jupyter-resource-usage=0.5.1=pyhd8ed1ab_0 > - jupyterlab-topbar=0.6.1=pyhd8ed1ab_2 > - jupyterlab-logout=0.5.0 < - jupyter_conda=5.1.1=hd8ed1ab_0 < - ravenpy=0.6.0=pyh1bb2064_2 > - ravenpy=0.7.0=pyh1bb2064_0 < - pandas=1.2.5=py37h219a48f_0 > - pandas=1.3.1=py37h219a48f_0 < - xarray=0.18.2=pyhd8ed1ab_0 > - xarray=0.19.0=pyhd8ed1ab_1 < - dask=2021.7.0=pyhd8ed1ab_0 > - dask=2021.7.1=pyhd8ed1ab_0 < - regionmask=0.6.2=pyhd8ed1ab_0 > - regionmask=0.7.0=pyhd8ed1ab_0 ``` ## Additional Information Screenshot showing differences between v2 vs v3 and the working jupyterlab-system-monitor plugin. ![Screenshot from 2021-07-28 14-10-33](https://user-images.githubusercontent.com/11966697/127380391-7f3a6ad4-25c6-4a8b-ac01-8c8d9633d09c.png) Bokeh and pyviz testing by running `ClimateDataAnalysis-5Visualization.ipynb` on the old and new Jupyter env and manually comparing the graphics generated. They look similar. Jenkins build all passed https://daccs-jenkins.crim.ca/job/PAVICS-e2e-workflow-tests/job/update-to-jupyterlab-v3/7/console (CRIM Jenkins) Notebooks fixes required for the above passing Jenkins build: * Ouranosinc/pavics-sdi#224 * bird-house/finch#196 * Ouranosinc/PAVICS-landing#30 Jenkins build for Raven nb, all passed: http://jenkins.ouranos.ca/job/PAVICS-e2e-workflow-tests/job/update-to-jupyterlab-v3/5/console Matching PR to deploy this new Jupyter env to PAVICS: bird-house/birdhouse-deploy#185 Full diff of `conda env export`: [210723-210728-conda-env-export.diff.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/6896271/210723-210728-conda-env-export.diff.txt) ```diff 20a21 > - babel=2.9.1=pyh44b312d_0 71c72 < - curl=7.77.0=hea6ffbf_0 --- > - curl=7.78.0=hea6ffbf_0 74,76c75,77 < - dash=1.20.0=pyhd8ed1ab_0 < - dash-core-components=1.16.0=pyhd8ed1ab_0 < - dash-html-components=1.1.3=pyhd8ed1ab_0 --- > - dash=1.21.0=pyhd8ed1ab_0 > - dash-core-components=1.17.1=pyhd8ed1ab_0 > - dash-html-components=1.1.4=pyhd8ed1ab_0 78,80c79,81 < - dash-table=4.11.3=pyhd8ed1ab_0 < - dask=2021.7.0=pyhd8ed1ab_0 < - dask-core=2021.7.0=pyhd8ed1ab_0 --- > - dash-table=4.12.0=pyhd8ed1ab_0 > - dask=2021.7.1=pyhd8ed1ab_0 > - dask-core=2021.7.1=pyhd8ed1ab_0 85c86 < - debugpy=1.4.0=py37hcd2ae1e_0 --- > - debugpy=1.4.1=py37hcd2ae1e_0 90c91 < - distributed=2021.7.0=py37h89c1867_0 --- > - distributed=2021.7.1=py37h89c1867_0 127c128 < - gitpython=3.1.19=pyhd8ed1ab_0 --- > - gitpython=3.1.20=pyhd8ed1ab_0 138a140 > - haversine=2.3.1=pyhd8ed1ab_0 173c175 < - jupyter-archive=2.2.0=pyhd8ed1ab_0 --- > - jupyter-archive=3.0.1=pyhd8ed1ab_0 175c177,179 < - jupyter_bokeh=2.0.4=pyhd8ed1ab_0 --- > - jupyter-resource-usage=0.5.1=pyhd8ed1ab_0 > - jupyter-server-mathjax=0.2.3=pyhd8ed1ab_0 > - jupyter_bokeh=3.0.2=pyhd8ed1ab_0 177d180 < - jupyter_conda=5.1.1=hd8ed1ab_0 184,185c187,190 < - jupyterlab=2.2.9=pyhd8ed1ab_0 < - jupyterlab-git=0.24.0=pyhd8ed1ab_0 --- > - jupyterlab=3.1.0=pyhd8ed1ab_0 > - jupyterlab-git=0.31.0=pyhd8ed1ab_0 > - jupyterlab-system-monitor=0.8.0=pyhd8ed1ab_1 > - jupyterlab-topbar=0.6.1=pyhd8ed1ab_2 187c192 < - jupyterlab_server=1.2.0=py_0 --- > - jupyterlab_server=2.6.1=pyhd8ed1ab_0 193c198 < - krb5=1.19.1=hcc1bbae_0 --- > - krb5=1.19.2=hcc1bbae_0 197c202 < - ld_impl_linux-64=2.36.1=hea4e1c9_1 --- > - ld_impl_linux-64=2.36.1=hea4e1c9_2 208c213 < - libcurl=7.77.0=h2574ce0_0 --- > - libcurl=7.78.0=h2574ce0_0 217c222 < - libgcc-ng=11.1.0=hc902ee8_0 --- > - libgcc-ng=11.1.0=hc902ee8_2 222c227 < - libgomp=11.1.0=hc902ee8_0 --- > - libgomp=11.1.0=hc902ee8_2 242c247 < - libstdcxx-ng=11.1.0=h56837e0_0 --- > - libstdcxx-ng=11.1.0=h56837e0_2 260c265 < - mapclassify=2.4.2=pyhd8ed1ab_0 --- > - mapclassify=2.4.3=pyhd8ed1ab_0 278a284 > - nbclassic=0.3.1=pyhd8ed1ab_1 281c287 < - nbdime=2.1.0=py_0 --- > - nbdime=3.1.0=pyhd8ed1ab_0 282a289 > - nbresuse=0.4.0=pyhd8ed1ab_0 308c315 < - pandas=1.2.5=py37h219a48f_0 --- > - pandas=1.3.1=py37h219a48f_0 321c328 < - pip=21.1.3=pyhd8ed1ab_0 --- > - pip=21.2.1=pyhd8ed1ab_0 380c387 < - ravenpy=0.6.0=pyh1bb2064_2 --- > - ravenpy=0.7.0=pyh1bb2064_0 382c389 < - regionmask=0.6.2=pyhd8ed1ab_0 --- > - regionmask=0.7.0=pyhd8ed1ab_0 444c451 < - xarray=0.18.2=pyhd8ed1ab_0 --- > - xarray=0.19.0=pyhd8ed1ab_1 481a489 > - jupyterlab-logout==0.5.0 483d490 < - nbresuse==0.4.0 ``` Full new `conda env export`: [210728-conda-env-export.yml.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/6896274/210728-conda-env-export.yml.txt) ``` name: birdy channels: - cdat - conda-forge - defaults dependencies: - _libgcc_mutex=0.1=conda_forge - _openmp_mutex=4.5=1_gnu - affine=2.3.0=py_0 - aiohttp=3.7.4.post0=py37h5e8e339_0 - alembic=1.6.5=pyhd8ed1ab_0 - alsa-lib=1.2.3=h516909a_0 - ansi2html=1.6.0=py37h89c1867_1 - anyio=3.3.0=py37h89c1867_0 - appdirs=1.4.4=pyh9f0ad1d_0 - argon2-cffi=20.1.0=py37h5e8e339_2 - asciitree=0.3.3=py_2 - async-timeout=3.0.1=py_1000 - async_generator=1.10=py_0 - attrs=21.2.0=pyhd8ed1ab_0 - babel=2.9.1=pyh44b312d_0 - backcall=0.2.0=pyh9f0ad1d_0 - backports=1.0=py_2 - backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0 - beautifulsoup4=4.9.3=pyhb0f4dca_0 - birdy=v0.8.0=pyh6c4a22f_1 - bleach=3.3.1=pyhd8ed1ab_0 - blinker=1.4=py_1 - blosc=1.21.0=h9c3ff4c_0 - bokeh=2.3.3=py37h89c1867_0 - boltons=21.0.0=pyhd8ed1ab_0 - boost-cpp=1.74.0=hc6e9bd1_3 - bottleneck=1.3.2=py37h902c9e0_3 - branca=0.4.2=pyhd8ed1ab_0 - brotli=1.0.9=h7f98852_5 - brotli-bin=1.0.9=h7f98852_5 - brotli-python=1.0.9=py37hcd2ae1e_5 - brotlipy=0.7.0=py37h5e8e339_1001 - brunsli=0.1=h9c3ff4c_0 - bzip2=1.0.8=h7f98852_4 - c-ares=1.17.1=h7f98852_1 - ca-certificates=2021.5.30=ha878542_0 - cached-property=1.5.2=hd8ed1ab_1 - cached_property=1.5.2=pyha770c72_1 - cachetools=4.2.2=pyhd8ed1ab_0 - cairo=1.16.0=h6cf1ce9_1008 - cartopy=0.19.0.post1=py37h0c48da3_0 - cdat_info=8.2.1=pyh9f0ad1d_1 - cdtime=3.1.4=py37h5ad02f4_2 - cdutil=8.2.1=pyh9f0ad1d_0 - certifi=2021.5.30=py37h89c1867_0 - certipy=0.1.3=py_0 - cf_xarray=0.6.0=pyh6c4a22f_0 - cffi=1.14.6=py37hc58025e_0 - cfgrib=0.9.9.0=pyhd8ed1ab_1 - cfitsio=3.470=hb418390_7 - cftime=1.5.0=py37h6f94858_0 - chardet=4.0.0=py37h89c1867_1 - charls=2.2.0=h9c3ff4c_0 - charset-normalizer=2.0.0=pyhd8ed1ab_0 - click=7.1.2=pyh9f0ad1d_0 - click-plugins=1.1.1=py_0 - cligj=0.7.2=pyhd8ed1ab_0 - climpred=2.1.4=pyhd8ed1ab_0 - clisops=0.6.5=pyh6c4a22f_0 - cloudpickle=1.6.0=py_0 - colorama=0.4.4=pyh9f0ad1d_0 - colorcet=2.0.6=pyhd8ed1ab_0 - configurable-http-proxy=4.5.0=node15_he6ea98c_0 - coverage=5.5=py37h5e8e339_0 - cryptography=3.4.7=py37h5d9358c_0 - curl=7.78.0=hea6ffbf_0 - cycler=0.10.0=py_2 - cytoolz=0.11.0=py37h5e8e339_3 - dash=1.21.0=pyhd8ed1ab_0 - dash-core-components=1.17.1=pyhd8ed1ab_0 - dash-html-components=1.1.4=pyhd8ed1ab_0 - dash-renderer=1.9.1=pyhd8ed1ab_0 - dash-table=4.12.0=pyhd8ed1ab_0 - dask=2021.7.1=pyhd8ed1ab_0 - dask-core=2021.7.1=pyhd8ed1ab_0 - dataclasses=0.8=pyhc8e2a94_1 - datashader=0.13.0=pyh6c4a22f_0 - datashape=0.5.4=py_1 - dbus=1.13.6=h48d8840_2 - debugpy=1.4.1=py37hcd2ae1e_0 - decorator=5.0.9=pyhd8ed1ab_0 - defusedxml=0.7.1=pyhd8ed1ab_0 - descartes=1.1.0=py_4 - distarray=2.12.2=pyhd8ed1ab_2 - distributed=2021.7.1=py37h89c1867_0 - docopt=0.6.2=py_1 - docrep=0.3.2=pyh44b312d_0 - dv3d=8.2.1=pyh9f0ad1d_0 - eccodes=2.21.0=ha0e6eb6_0 - entrypoints=0.3=pyhd8ed1ab_1003 - eofs=1.4.0=py_0 - esgf-compute-api=2.3.9=0_h1234567_ - esmf=8.1.0=nompi_hed08645_0 - esmpy=8.1.0=nompi_py37hff16fce_0 - expat=2.4.1=h9c3ff4c_0 - fasteners=0.16=pyhd8ed1ab_0 - fastprogress=1.0.0=py_0 - ffmpeg=4.2.3=h167e202_0 - fiona=1.8.18=py37h527b4ca_0 - flask=2.0.1=pyhd8ed1ab_0 - flask-compress=1.10.1=pyhd8ed1ab_0 - fontconfig=2.13.1=hba837de_1005 - freetype=2.10.4=h0708190_1 - freexl=1.0.6=h7f98852_0 - fsspec=2021.7.0=pyhd8ed1ab_0 - funcsigs=1.0.2=py_3 - future=0.18.2=py37h89c1867_3 - g2clib=1.6.3=hdfa6d74_0 - gcsfs=2021.7.0=pyhd8ed1ab_0 - gdal=3.1.4=py37h2ec2946_8 - genutil=8.2.1=py37h161383b_1 - geopandas=0.9.0=pyhd8ed1ab_1 - geopandas-base=0.9.0=pyhd8ed1ab_1 - geos=3.9.1=h9c3ff4c_2 - geotiff=1.6.0=h2b14fbe_4 - geoviews=1.9.1=pyhd8ed1ab_0 - geoviews-core=1.9.1=pyha770c72_0 - gettext=0.19.8.1=h0b5b191_1005 - ghostscript=9.54.0=h9c3ff4c_1 - giflib=5.2.1=h36c2ea0_2 - gitdb=4.0.7=pyhd8ed1ab_0 - gitpython=3.1.20=pyhd8ed1ab_0 - glib=2.68.3=h9c3ff4c_0 - glib-tools=2.68.3=h9c3ff4c_0 - gmp=6.2.1=h58526e2_0 - gnutls=3.6.13=h85f3911_1 - google-auth=1.33.1=pyh6c4a22f_0 - google-auth-oauthlib=0.4.4=pyhd8ed1ab_0 - greenlet=1.1.0=py37hcd2ae1e_0 - gst-plugins-base=1.18.4=hf529b03_2 - gstreamer=1.18.4=h76c114f_2 - h5netcdf=0.11.0=pyhd8ed1ab_0 - h5py=3.3.0=nompi_py37ha3df211_100 - haversine=2.3.1=pyhd8ed1ab_0 - hdf4=4.2.15=h10796ff_3 - hdf5=1.10.6=nompi_h6a2412b_1114 - heapdict=1.0.1=py_0 - holoviews=1.14.5=pyhd8ed1ab_0 - hvplot=0.7.3=pyh6c4a22f_0 - icu=68.1=h58526e2_0 - idna=3.1=pyhd3deb0d_0 - imagecodecs=2021.3.31=py37haf4b6ec_0 - imageio=2.9.0=py_0 - importlib-metadata=4.6.1=py37h89c1867_0 - importlib_metadata=4.6.1=hd8ed1ab_0 - importlib_resources=5.2.0=pyhd8ed1ab_0 - iniconfig=1.1.1=pyh9f0ad1d_0 - intake=0.6.2=pyhd8ed1ab_0 - intake-esm=2021.1.15=pyhd8ed1ab_0 - intake-geopandas=0.2.4=pyhd8ed1ab_0 - intake-thredds=2021.6.16=pyhd8ed1ab_0 - intake-xarray=0.5.0=pyhd8ed1ab_0 - ipykernel=5.5.5=py37h085eea5_0 - ipyleaflet=0.14.0=pyhd8ed1ab_1 - ipython=7.25.0=py37h085eea5_1 - ipython_genutils=0.2.0=py_1 - ipywidgets=7.6.3=pyhd3deb0d_0 - itsdangerous=2.0.1=pyhd8ed1ab_0 - jasper=1.900.1=h07fcdf6_1006 - jedi=0.18.0=py37h89c1867_2 - jinja2=3.0.1=pyhd8ed1ab_0 - joblib=1.0.1=pyhd8ed1ab_0 - jpeg=9d=h36c2ea0_0 - json-c=0.15=h98cffda_0 - json5=0.9.5=pyh9f0ad1d_0 - jsonpickle=2.0.0=pyhd8ed1ab_0 - jsonschema=3.2.0=pyhd8ed1ab_3 - jupyter=1.0.0=py37h89c1867_6 - jupyter-archive=3.0.1=pyhd8ed1ab_0 - jupyter-dash=0.4.0=pyhd8ed1ab_0 - jupyter-resource-usage=0.5.1=pyhd8ed1ab_0 - jupyter-server-mathjax=0.2.3=pyhd8ed1ab_0 - jupyter_bokeh=3.0.2=pyhd8ed1ab_0 - jupyter_client=6.1.12=pyhd8ed1ab_0 - jupyter_console=6.4.0=pyhd8ed1ab_0 - jupyter_core=4.7.1=py37h89c1867_0 - jupyter_server=1.10.1=pyhd8ed1ab_0 - jupyter_telemetry=0.1.0=pyhd8ed1ab_1 - jupyterhub=1.4.2=py37h89c1867_0 - jupyterhub-base=1.4.2=py37h89c1867_0 - jupyterlab=3.1.0=pyhd8ed1ab_0 - jupyterlab-git=0.31.0=pyhd8ed1ab_0 - jupyterlab-system-monitor=0.8.0=pyhd8ed1ab_1 - jupyterlab-topbar=0.6.1=pyhd8ed1ab_2 - jupyterlab_pygments=0.1.2=pyh9f0ad1d_0 - jupyterlab_server=2.6.1=pyhd8ed1ab_0 - jupyterlab_widgets=1.0.0=pyhd8ed1ab_1 - jupytext=1.11.4=pyhd0ecf6b_0 - jxrlib=1.1=h7f98852_2 - kealib=1.4.14=hcc255d8_2 - kiwisolver=1.3.1=py37h2527ec5_1 - krb5=1.19.2=hcc1bbae_0 - lame=3.100=h7f98852_1001 - lazy-object-proxy=1.6.0=py37h5e8e339_0 - lcms2=2.12=hddcbb42_0 - ld_impl_linux-64=2.36.1=hea4e1c9_2 - lerc=2.2.1=h9c3ff4c_0 - libaec=1.0.5=h9c3ff4c_0 - libblas=3.8.0=17_openblas - libbrotlicommon=1.0.9=h7f98852_5 - libbrotlidec=1.0.9=h7f98852_5 - libbrotlienc=1.0.9=h7f98852_5 - libcblas=3.8.0=17_openblas - libcdms=3.1.2=h981a4fd_113 - libcf=1.0.3=py37heda41dd_109 - libclang=11.1.0=default_ha53f305_1 - libcurl=7.78.0=h2574ce0_0 - libdap4=3.20.6=hd7c4107_2 - libdeflate=1.7=h7f98852_5 - libdrs=3.1.2=h7918d09_113 - libdrs_f=3.1.2=h5026c31_111 - libedit=3.1.20191231=he28a2e2_2 - libev=4.33=h516909a_1 - libevent=2.1.10=hcdb4288_3 - libffi=3.3=h58526e2_2 - libgcc-ng=11.1.0=hc902ee8_2 - libgdal=3.1.4=h38ff51b_8 - libgfortran-ng=11.1.0=h69a702a_0 - libgfortran5=11.1.0=h6c583b3_0 - libglib=2.68.3=h3e27bee_0 - libgomp=11.1.0=hc902ee8_2 - libiconv=1.16=h516909a_0 - libidn2=2.3.2=h7f98852_0 - libkml=1.3.0=h238a007_1014 - liblapack=3.8.0=17_openblas - libllvm10=10.0.1=he513fc3_3 - libllvm11=11.1.0=hf817b99_2 - libnetcdf=4.7.4=nompi_h56d31a8_107 - libnghttp2=1.43.0=h812cca2_0 - libogg=1.3.4=h7f98852_1 - libopenblas=0.3.10=pthreads_h4812303_5 - libopus=1.3.1=h7f98852_1 - libpng=1.6.37=h21135ba_2 - libpq=13.3=hd57d9b9_0 - libprotobuf=3.17.2=h780b84a_1 - librttopo=1.1.0=h1185371_6 - libsodium=1.0.18=h36c2ea0_1 - libspatialindex=1.9.3=h9c3ff4c_4 - libspatialite=5.0.1=he52d314_3 - libssh2=1.9.0=ha56f1ee_6 - libstdcxx-ng=11.1.0=h56837e0_2 - libtiff=4.2.0=hbd63e13_2 - libunistring=0.9.10=h7f98852_0 - libuuid=2.32.1=h7f98852_1000 - libuv=1.41.1=h7f98852_0 - libvorbis=1.3.7=h9c3ff4c_0 - libwebp-base=1.2.0=h7f98852_2 - libxcb=1.13=h7f98852_1003 - libxkbcommon=1.0.3=he3ba5ed_0 - libxml2=2.9.12=h72842e0_0 - libxslt=1.1.33=h15afd5d_2 - libzopfli=1.0.3=h9c3ff4c_0 - llvmlite=0.36.0=py37h9d7f4d0_0 - locket=0.2.0=py_2 - lxml=4.6.3=py37h77fd288_0 - lz4-c=1.9.3=h9c3ff4c_0 - mako=1.1.4=pyh44b312d_0 - mamba_gator=5.1.1=pyhd8ed1ab_0 - mapclassify=2.4.3=pyhd8ed1ab_0 - markdown=3.3.4=pyhd8ed1ab_0 - markdown-it-py=1.1.0=pyhd8ed1ab_0 - markupsafe=2.0.1=py37h5e8e339_0 - matplotlib=3.4.2=py37h89c1867_0 - matplotlib-base=3.4.2=py37hdd32ed1_0 - matplotlib-inline=0.1.2=pyhd8ed1ab_2 - mdit-py-plugins=0.2.8=pyhd8ed1ab_0 - memory_profiler=0.58.0=py_0 - mesalib=18.3.1=h590aaf7_0 - mistune=0.8.4=py37h5e8e339_1004 - monotonic=1.5=py_0 - more-itertools=8.8.0=pyhd8ed1ab_0 - msgpack-python=1.0.2=py37h2527ec5_1 - multidict=5.1.0=py37h5e8e339_1 - multipledispatch=0.6.0=py_0 - munch=2.5.0=py_0 - mysql-common=8.0.25=ha770c72_0 - mysql-libs=8.0.25=h935591d_0 - nbclassic=0.3.1=pyhd8ed1ab_1 - nbclient=0.5.3=pyhd8ed1ab_0 - nbconvert=6.1.0=py37h89c1867_0 - nbdime=3.1.0=pyhd8ed1ab_0 - nbformat=5.1.3=pyhd8ed1ab_0 - nbresuse=0.4.0=pyhd8ed1ab_0 - nbval=0.9.6=pyh9f0ad1d_0 - nc-time-axis=1.3.1=pyhd8ed1ab_2 - ncurses=6.2=h58526e2_4 - nest-asyncio=1.5.1=pyhd8ed1ab_0 - netcdf-fortran=4.5.3=nompi_h996563d_103 - netcdf4=1.5.6=nompi_py37hf7b6e46_102 - nettle=3.6=he412f7d_0 - networkx=2.5=py_0 - nodejs=15.14.0=h92b4a50_0 - notebook=6.4.0=pyha770c72_0 - nspr=4.30=h9c3ff4c_0 - nss=3.67=hb5efdd6_0 - numba=0.53.1=py37hb11d6e1_1 - numcodecs=0.8.0=py37hcd2ae1e_0 - numpy=1.21.1=py37h038b26d_0 - oauthlib=3.1.1=pyhd8ed1ab_0 - olefile=0.46=pyh9f0ad1d_1 - openblas=0.3.10=pthreads_h04b7a96_5 - openh264=2.1.1=h780b84a_0 - openjpeg=2.4.0=hb52868f_1 - openssl=1.1.1k=h7f98852_0 - ostrich=21.03.16=h4bd325d_1 - owslib=0.24.1=pyhd8ed1ab_0 - packaging=21.0=pyhd8ed1ab_0 - pamela=1.0.0=py_0 - pandas=1.3.1=py37h219a48f_0 - pandoc=2.14.1=h7f98852_0 - pandocfilters=1.4.2=py_1 - panel=0.12.0=pyhd8ed1ab_0 - param=1.11.1=pyh6c4a22f_0 - parso=0.8.2=pyhd8ed1ab_0 - partd=1.2.0=pyhd8ed1ab_0 - patsy=0.5.1=py_0 - pcre=8.45=h9c3ff4c_0 - pexpect=4.8.0=pyh9f0ad1d_2 - pickleshare=0.7.5=py_1003 - pillow=8.2.0=py37h4600e1f_1 - pint=0.17=pyhd8ed1ab_0 - pip=21.2.1=pyhd8ed1ab_0 - pixman=0.40.0=h36c2ea0_0 - plotly=5.1.0=pyhd8ed1ab_1 - pluggy=0.13.1=py37h89c1867_4 - pooch=1.4.0=pyhd8ed1ab_0 - poppler=0.89.0=h2de54a5_5 - poppler-data=0.4.10=0 - postgresql=13.3=h2510834_0 - proj=7.2.0=h277dcde_2 - prometheus_client=0.11.0=pyhd8ed1ab_0 - prompt-toolkit=3.0.19=pyha770c72_0 - prompt_toolkit=3.0.19=hd8ed1ab_0 - properscoring=0.1=py_0 - protobuf=3.17.2=py37hcd2ae1e_0 - pscript=0.7.5=pyhd3deb0d_0 - psutil=5.8.0=py37h5e8e339_1 - pthread-stubs=0.4=h36c2ea0_1001 - ptyprocess=0.7.0=pyhd3deb0d_0 - py=1.10.0=pyhd3deb0d_0 - pyasn1=0.4.8=py_0 - pyasn1-modules=0.2.7=py_0 - pycparser=2.20=pyh9f0ad1d_2 - pyct=0.4.6=py_0 - pyct-core=0.4.6=py_0 - pycurl=7.43.0.6=py37h88a64d2_1 - pydantic=1.8.2=py37h5e8e339_0 - pydap=3.2.2=pyh9f0ad1d_1001 - pygeos=0.10.1=py37h2d1e849_0 - pygments=2.9.0=pyhd8ed1ab_0 - pyjwt=2.1.0=pyhd8ed1ab_0 - pyopenssl=20.0.1=pyhd8ed1ab_0 - pyparsing=2.4.7=pyh9f0ad1d_0 - pyproj=3.1.0=py37h20b8899_3 - pyqt=5.12.3=py37h89c1867_7 - pyqt-impl=5.12.3=py37he336c9b_7 - pyqt5-sip=4.19.18=py37hcd2ae1e_7 - pyqtchart=5.12=py37he336c9b_7 - pyqtwebengine=5.12.1=py37he336c9b_7 - pyrsistent=0.17.3=py37h5e8e339_2 - pyshp=2.1.3=pyh44b312d_0 - pysocks=1.7.1=py37h89c1867_3 - pytest=6.2.4=py37h89c1867_0 - python=3.7.10=hffdb5ce_100_cpython - python-dateutil=2.8.2=pyhd8ed1ab_0 - python-eccodes=2021.03.0=py37h6f94858_1 - python-editor=1.0.4=py_0 - python-json-logger=2.0.1=pyh9f0ad1d_0 - python_abi=3.7=2_cp37m - pytz=2021.1=pyhd8ed1ab_0 - pyu2f=0.1.5=pyhd8ed1ab_0 - pyviz_comms=2.1.0=pyhd8ed1ab_0 - pywavelets=1.1.1=py37h902c9e0_3 - pyyaml=5.4.1=py37h5e8e339_0 - pyzmq=22.1.0=py37h336d617_0 - qt=5.12.9=hda022c4_4 - qtconsole=5.1.1=pyhd8ed1ab_0 - qtpy=1.9.0=py_0 - rasterio=1.2.1=py37ha549118_0 - raven-hydro=3.0.4.322=h516393e_0 - ravenpy=0.7.0=pyh1bb2064_0 - readline=8.1=h46c0cb4_0 - regionmask=0.7.0=pyhd8ed1ab_0 - requests=2.26.0=pyhd8ed1ab_0 - requests-oauthlib=1.3.0=pyh9f0ad1d_0 - requests-unixsocket=0.2.0=py_0 - retrying=1.3.3=py_2 - rioxarray=0.5.0=pyhd8ed1ab_0 - roocs-utils=0.4.2=pyh6c4a22f_0 - rsa=4.7.2=pyh44b312d_0 - rtree=0.9.7=py37h0b55af0_2 - ruamel.yaml=0.17.10=py37h5e8e339_0 - ruamel.yaml.clib=0.2.2=py37h5e8e339_2 - scikit-image=0.18.2=py37h219a48f_0 - scikit-learn=0.24.2=py37h18a542f_0 - scipy=1.7.0=py37h29e03ee_1 - send2trash=1.7.1=pyhd8ed1ab_0 - setuptools=49.6.0=py37h89c1867_3 - shapely=1.7.1=py37h2d1e849_5 - siphon=0.9=py37h89c1867_0 - six=1.16.0=pyh6c4a22f_0 - smmap=3.0.5=pyh44b312d_0 - snappy=1.1.8=he1b5a44_3 - sniffio=1.2.0=py37h89c1867_1 - snuggs=1.4.7=py_0 - sortedcontainers=2.4.0=pyhd8ed1ab_0 - soupsieve=2.0.1=py_1 - sqlalchemy=1.4.22=py37h5e8e339_0 - sqlite=3.36.0=h9cd32fc_0 - statsmodels=0.12.2=py37h902c9e0_0 - tblib=1.7.0=pyhd8ed1ab_0 - tenacity=8.0.1=pyhd8ed1ab_0 - terminado=0.10.1=py37h89c1867_0 - testpath=0.5.0=pyhd8ed1ab_0 - threadpoolctl=2.2.0=pyh8a188c0_0 - threddsclient=0.4.2=py_0 - tifffile=2021.4.8=pyhd8ed1ab_0 - tiledb=2.2.9=h91fcb0e_0 - tk=8.6.10=h21135ba_1 - toml=0.10.2=pyhd8ed1ab_0 - toolz=0.11.1=py_0 - tornado=6.1=py37h5e8e339_1 - tqdm=4.61.2=pyhd8ed1ab_1 - traitlets=5.0.5=py_0 - traittypes=0.2.1=pyh9f0ad1d_2 - typing-extensions=3.10.0.0=hd8ed1ab_0 - typing_extensions=3.10.0.0=pyha770c72_0 - tzcode=2021a=h7f98852_2 - tzdata=2021a=he74cb21_1 - udunits2=2.2.27.27=h975c496_1 - urllib3=1.26.6=pyhd8ed1ab_0 - vcs=8.2.1=pyh9f0ad1d_0 - voila=0.2.10=pyhd8ed1ab_0 - vtk-cdat=8.2.0.8.2=py37_mesalibhead77ed_0 - wcwidth=0.2.5=pyh9f0ad1d_2 - webencodings=0.5.1=py_1 - webob=1.8.7=pyhd8ed1ab_0 - websocket-client=0.57.0=py37h89c1867_4 - werkzeug=2.0.1=pyhd8ed1ab_0 - wget=1.20.3=ha56f1ee_0 - wheel=0.36.2=pyhd3deb0d_0 - widgetsnbextension=3.5.1=py37h89c1867_4 - wrapt=1.12.1=py37h5e8e339_3 - x264=1!152.20180806=h14c3975_0 - xarray=0.19.0=pyhd8ed1ab_1 - xclim=0.28.0=pyhd8ed1ab_0 - xerces-c=3.2.3=h9d8b166_2 - xesmf=0.6.0=pyhd8ed1ab_0 - xeus=1.0.4=h7d0c39e_0 - xeus-python=0.12.5=py37h4b46df4_2 - xhistogram=0.3.0=pyhd8ed1ab_0 - xorg-kbproto=1.0.7=h7f98852_1002 - xorg-libice=1.0.10=h7f98852_0 - xorg-libsm=1.2.3=hd9c2040_1000 - xorg-libx11=1.7.2=h7f98852_0 - xorg-libxau=1.0.9=h7f98852_0 - xorg-libxdmcp=1.1.3=h7f98852_0 - xorg-libxext=1.3.4=h7f98852_1 - xorg-libxrender=0.9.10=h7f98852_1003 - xorg-renderproto=0.11.1=h7f98852_1002 - xorg-xextproto=7.3.0=h7f98852_1002 - xorg-xproto=7.0.31=h7f98852_1007 - xrft=0.3.0=pyhd8ed1ab_0 - xskillscore=0.0.22=pyhd8ed1ab_0 - xz=5.2.5=h516909a_1 - yaml=0.2.5=h516909a_0 - yarl=1.6.3=py37h5e8e339_2 - zarr=2.8.3=pyhd8ed1ab_0 - zeromq=4.3.4=h9c3ff4c_0 - zfp=0.5.5=h9c3ff4c_5 - zict=2.0.0=py_0 - zipp=3.5.0=pyhd8ed1ab_0 - zlib=1.2.11=h516909a_1010 - zstd=1.4.9=ha95c52a_0 - pip: - astunparse==1.6.3 - cdms2==3.1.5 - colour==0.1.5 - geojson==2.5.0 - handcalcs==1.4.1 - innerscope==0.5.0 - ipython-blocking==0.2.1 - jupyterlab-logout==0.5.0 - jupyternotify==0.1.15 - pixiedust==1.1.19 - pymetalink==6.2 - pytest-tornasync==0.6.0.post2 - regrid2==3.1.5 - requests-magpie==0.1.1 prefix: /opt/conda/envs/birdy ```
- Loading branch information