Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

jupyterlab-system-monitor do not work in Jupyter env #83

Closed
tlvu opened this issue Jul 19, 2021 · 0 comments · Fixed by #85
Closed

jupyterlab-system-monitor do not work in Jupyter env #83

tlvu opened this issue Jul 19, 2021 · 0 comments · Fixed by #85
Assignees
Labels

Comments

@tlvu
Copy link
Contributor

tlvu commented Jul 19, 2021

We pinned JupyterLab v2 for another plugin that broken with v3 but this one looks like it do not work anymore with the old v2.

@tlvu tlvu added the DACCS label Jul 24, 2021
@tlvu tlvu self-assigned this Jul 26, 2021
@tlvu tlvu closed this as completed in #85 Jul 29, 2021
tlvu added a commit that referenced this issue Jul 29, 2021
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
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
1 participant