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

Define data model for catalog attributes using pydantic #46

Open
wants to merge 23 commits into
base: master
Choose a base branch
from

Conversation

huard
Copy link
Contributor

@huard huard commented Mar 11, 2022

This adds support for attribute validation against controlled vocabularies.
Add logging and tests.

Non-compliant catalog entries are skipped.

…ts validation against controlled vocabularies. Add logging and tests.

Each catalog type (e.g. reanalysis) defines a _data model_, a representation of the attributes that make up a catalog entry. This data model is defined using pydantic, which makes it easy to impose rules and restrictions to the values entered in the catalog. It is possible, for example, to constrain an attribute to a type, a list of possibilities or a regular expression.

The definition of CVs for attributes uses `pyessv`, the library underlying metadata validation in ES-DOC. The `pyessv-archive` repository is cloned locally and loaded by pyessv at import time. pyessv defines a naming hierarchy: authority, scope, collection, term. Within a data model, each attribute bound by a CV is typed as an `Enum`, with a list of _terms_ taken from a pyessv _collection_, for example:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this cloning performed by pyessv or by the user? Is there a helper function for this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

by the user.
not that I know of.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fair enough. For my purposes, I added a git clone command to my tox configuration to better automate setup testing. Do you think the pyessv maintainers would appreciate a PR with helper function to do just that?

tlvu added a commit to Ouranosinc/PAVICS-e2e-workflow-tests that referenced this pull request Feb 9, 2023
tlvu added a commit to Ouranosinc/PAVICS-e2e-workflow-tests that referenced this pull request Apr 3, 2023
…l) to production faster

Full build pulls newer RavenPy which requires more testing and a new RavenWPS to match.  This requires more time for testing.

esgf-pyclient for pavics-sdi esgf-dap.ipynb, PR Ouranosinc/pavics-sdi#269

xncml for gen_catalog refactoring, PR Ouranosinc/pavics-vdb#46

```
Step 4/5 : RUN umask 0000     && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyston -c pyviz/label/dev -c defaults -n birdy esgf-pyclient     && pip install xncml
 ---> Running in 11f0bd71b9ff
Transaction

  Prefix: /opt/conda/envs/birdy

  Updating specs:

   - esgf-pyclient
   - ca-certificates
   - certifi
   - openssl

  Package                  Version  Build                 Channel                    Size
───────────────────────────────────────────────────────────────────────────────────────────
  Install:
───────────────────────────────────────────────────────────────────────────────────────────

  + astor                    0.8.1  pyh9f0ad1d_0          conda-forge/noarch         26kB
  + aws-c-auth              0.6.26  hf365957_1            conda-forge/linux-64       96kB
  + aws-c-compression       0.2.16  h03acc5a_5            conda-forge/linux-64       19kB
  + aws-c-http               0.7.6  hf342b9f_0            conda-forge/linux-64      192kB
  + aws-c-mqtt               0.8.6  hc4349f7_12           conda-forge/linux-64      144kB
  + aws-c-s3                 0.2.7  h909e904_1            conda-forge/linux-64       76kB
  + aws-c-sdkutils           0.1.8  h03acc5a_0            conda-forge/linux-64       54kB
  + aws-crt-cpp             0.19.8  hf7fbfca_12           conda-forge/linux-64      318kB
  + base58                   2.1.1  pyhd8ed1ab_0          conda-forge/noarch          9kB
  + boto3                  1.24.59  pyhd8ed1ab_0          conda-forge/noarch         74kB
  + cattrs                  22.2.0  pyhd8ed1ab_0          conda-forge/noarch         31kB
  + esgf-pyclient            0.3.1  pyh1a96a4e_2          conda-forge/noarch         23kB
  + libarrow                11.0.0  h33598ff_9_cpu        conda-forge/linux-64       27MB
  + libgrpc                 1.51.1  hcf146ea_3            conda-forge/linux-64        5MB
  + myproxyclient            2.1.0  pyhd8ed1ab_2          conda-forge/noarch         27kB
  + qhull                   2020.2  h4bd325d_2            conda-forge/linux-64        2MB
  + requests-cache           1.0.1  pyhd8ed1ab_0          conda-forge/noarch         49kB
  + s3transfer               0.6.0  pyhd8ed1ab_0          conda-forge/noarch         57kB
  + ujson                    5.7.0  py38h8dc9893_0        conda-forge/linux-64       51kB
  + url-normalize            1.4.3  pyhd8ed1ab_0          conda-forge/noarch         10kB
  + xeus-zmq                 1.0.2  h0541b36_2            conda-forge/linux-64      347kB

  Change:
───────────────────────────────────────────────────────────────────────────────────────────

  - fiona                   1.8.22  py38hc72d8cd_2        conda-forge
  + fiona                   1.8.22  py38h85a5e0f_5        conda-forge/linux-64      801kB
  - hdf5                    1.12.2  mpi_mpich_h08b82f9_0  conda-forge
  + hdf5                    1.12.2  mpi_mpich_h5d83325_1  conda-forge/linux-64        3MB
  - libarchive               3.5.2  hb890918_3            conda-forge
  + libarchive               3.5.2  hada088e_3            conda-forge/linux-64        2MB
  - libcups                  2.3.3  h3e49a29_2            conda-forge
  + libcups                  2.3.3  h36d4200_3            conda-forge/linux-64        5MB
  - libevent                2.1.10  h9b69904_4            conda-forge
  + libevent                2.1.10  h28343ad_4            conda-forge/linux-64        1MB
  - libssh2                 1.10.0  haa6b8db_3            conda-forge
  + libssh2                 1.10.0  hf14f497_3            conda-forge/linux-64     Cached
  - libzip                   1.9.2  hc869a4a_1            conda-forge
  + libzip                   1.9.2  hc929e4a_1            conda-forge/linux-64     Cached
  - pulseaudio                16.1  h4a94279_0            conda-forge
  + pulseaudio                16.1  h126f2b6_0            conda-forge/linux-64        2MB
  - pycurl                  7.45.1  py38h61f0cdf_3        conda-forge
  + pycurl                  7.45.1  py38he9e1d38_3        conda-forge/linux-64       77kB
  - qt-main                 5.15.6  h7acdfc8_2            conda-forge
  + qt-main                 5.15.6  hf6cd601_5            conda-forge/linux-64       55MB
  - wget                    1.20.3  ha56f1ee_1            conda-forge
  + wget                    1.20.3  ha35d2d1_1            conda-forge/linux-64      835kB

  Upgrade:
───────────────────────────────────────────────────────────────────────────────────────────

  - arrow-cpp                9.0.0  py38he270906_2_cpu    conda-forge
  + arrow-cpp               11.0.0  ha770c72_9_cpu        conda-forge/linux-64       31kB
  - aws-c-cal               0.5.11  h95a6274_0            conda-forge
  + aws-c-cal               0.5.21  h48707d8_2            conda-forge/linux-64       44kB
  - aws-c-common             0.6.2  h7f98852_0            conda-forge
  + aws-c-common            0.8.14  h0b41bf4_0            conda-forge/linux-64      200kB
  - aws-c-event-stream       0.2.7  h3541f99_13           conda-forge
  + aws-c-event-stream      0.2.20  h00877a2_4            conda-forge/linux-64       54kB
  - aws-c-io                0.10.5  hfb6a706_0            conda-forge
  + aws-c-io               0.13.19  h5b20300_3            conda-forge/linux-64      144kB
  - aws-checksums           0.1.11  ha31a3da_7            conda-forge
  + aws-checksums           0.1.14  h03acc5a_5            conda-forge/linux-64       50kB
  - aws-sdk-cpp            1.8.186  hecaee15_4            conda-forge
  + aws-sdk-cpp            1.10.57  h17c43bd_8            conda-forge/linux-64        4MB
  - blosc                   1.21.1  h83bc5f7_3            conda-forge
  + blosc                   1.21.3  hafa529b_0            conda-forge/linux-64       40kB
  - ca-certificates      2022.9.24  ha878542_0            conda-forge
  + ca-certificates      2022.12.7  ha878542_0            conda-forge/linux-64      146kB
  - certifi              2022.9.24  pyhd8ed1ab_0          conda-forge
  + certifi              2022.12.7  pyhd8ed1ab_0          conda-forge/noarch        151kB
  - cryptography            38.0.4  py38h2b5fc30_0        conda-forge
  + cryptography            40.0.1  py38h3d167d9_0        conda-forge/linux-64        1MB
  - curl                    7.86.0  h7bff187_1            conda-forge
  + curl                    7.88.1  hdc1c0ab_1            conda-forge/linux-64       88kB
  - gdal                     3.5.3  py38h1f15b03_4        conda-forge
  + gdal                     3.6.0  py38h58634bd_13       conda-forge/linux-64        1MB
  - grpc-cpp                1.47.1  hbad87ad_6            conda-forge
  + grpc-cpp                1.51.1  h27aab58_3            conda-forge/linux-64       22kB
  - grpcio                  1.47.1  py38h5b6373e_6        conda-forge
  + grpcio                  1.51.1  py38h8dc9893_3        conda-forge/linux-64      769kB
  - kealib                  1.4.15  ha7026e8_1            conda-forge
  + kealib                   1.5.0  ha7026e8_0            conda-forge/linux-64     Cached
  - krb5                    1.19.3  h3790be6_0            conda-forge
  + krb5                    1.20.1  h81ceb04_0            conda-forge/linux-64        1MB
  - libabseil           20220623.0  cxx17_h48a1fff_5      conda-forge
  + libabseil           20230125.0  cxx17_hcb278e6_1      conda-forge/linux-64        1MB
  - libcurl                 7.86.0  h7bff187_1            conda-forge
  + libcurl                 7.88.1  hdc1c0ab_1            conda-forge/linux-64      359kB
  - libgdal                  3.5.3  hcb70f40_4            conda-forge
  + libgdal                  3.6.0  h2f87c3e_13           conda-forge/linux-64       10MB
  - libgoogle-cloud          2.1.0  h9ebe8e8_2            conda-forge
  + libgoogle-cloud          2.8.0  h3c06191_0            conda-forge/linux-64       38MB
  - libnghttp2              1.47.0  hdcd2b5c_1            conda-forge
  + libnghttp2              1.52.0  h61bc06f_0            conda-forge/linux-64      622kB
  - libpq                     14.5  hd77ab85_1            conda-forge
  + libpq                     15.2  hb675445_0            conda-forge/linux-64        2MB
  - libprotobuf             3.20.2  h6239696_0            conda-forge
  + libprotobuf            3.21.12  h3eb15da_0            conda-forge/linux-64        2MB
  - libthrift               0.16.0  h491838f_2            conda-forge
  + libthrift               0.18.0  h5e4af38_0            conda-forge/linux-64        4MB
  - mysql-common            8.0.31  haf5c9bc_0            conda-forge
  + mysql-common            8.0.32  ha901b37_1            conda-forge/linux-64      760kB
  - mysql-libs              8.0.31  h28c427c_0            conda-forge
  + mysql-libs              8.0.32  hd7da12d_1            conda-forge/linux-64        2MB
  - nodejs                 18.12.1  h96d913c_0            conda-forge
  + nodejs                 18.15.0  h8d033a5_0            conda-forge/linux-64       15MB
  - openssl                 1.1.1s  h166bdaf_0            conda-forge
  + openssl                  3.1.0  h0b41bf4_0            conda-forge/linux-64        3MB
  - orc                      1.7.6  h6c59b99_0            conda-forge
  + orc                      1.8.2  hfdbbad2_2            conda-forge/linux-64      907kB
  - postgresql                14.5  hdeef612_1            conda-forge
  + postgresql                15.2  h3248436_0            conda-forge/linux-64        5MB
  - protobuf                3.20.2  py38hfa26641_1        conda-forge
  + protobuf               4.21.12  py38h8dc9893_0        conda-forge/linux-64      323kB
  - pyarrow                  9.0.0  py38h097c49a_2_cpu    conda-forge
  + pyarrow                 11.0.0  py38hf05218d_9_cpu    conda-forge/linux-64        4MB
  - pyopenssl               22.1.0  pyhd8ed1ab_0          conda-forge
  + pyopenssl               23.1.1  pyhd8ed1ab_0          conda-forge/noarch        128kB
  - python                  3.8.15  h257c98d_0_cpython    conda-forge
  + python                  3.8.16  he550d4f_1_cpython    conda-forge/linux-64       23MB
  - rasterio                 1.3.3  py38hb7ee17c_3        conda-forge
  + rasterio                 1.3.4  py38h485b76c_0        conda-forge/linux-64        9MB
  - re2                 2022.06.01  h27087fc_1            conda-forge
  + re2                 2023.02.02  hcb278e6_0            conda-forge/linux-64      201kB
  - s2n                     1.0.10  h9b69904_0            conda-forge
  + s2n                     1.3.41  h3358134_0            conda-forge/linux-64      362kB
  - tiledb                  2.11.3  h1e4a385_1            conda-forge
  + tiledb                  2.13.2  hd532e3d_0            conda-forge/linux-64        5MB
  - xeus                     2.4.1  h70bab47_0            conda-forge
  + xeus                     3.0.5  hac2b420_1            conda-forge/linux-64      343kB
  - xeus-python             0.14.3  py38h9f61dbb_1        conda-forge
  + xeus-python             0.15.8  py38hfbd4bf9_1        conda-forge/linux-64      769kB

  Downgrade:
───────────────────────────────────────────────────────────────────────────────────────────

  - streamlit               1.15.1  pyhd8ed1ab_0          conda-forge
  + streamlit                1.8.0  pyhd8ed1ab_0          conda-forge/noarch          8MB

  Summary:

  Install: 21 packages
  Change: 11 packages
  Upgrade: 41 packages
  Downgrade: 1 packages

  Total download: 251MB

───────────────────────────────────────────────────────────────────────────────────────────

Confirm changes: [Y/n]
Looking for: ['esgf-pyclient']

Pinned packages:
  - python 3.8.*

Preparing transaction: ...working... done
Verifying transaction: ...working... done
  Downloading xncml-0.2-py2.py3-none-any.whl (869 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 869.2/869.2 kB 8.3 MB/s eta 0:00:00
Requirement already satisfied: xarray in /opt/conda/envs/birdy/lib/python3.8/site-packages (from xncml) (2022.10.0)
Collecting xmltodict
  Downloading xmltodict-0.13.0-py2.py3-none-any.whl (10.0 kB)
Collecting xsdata
  Downloading xsdata-22.12-py3-none-any.whl (185 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 185.7/185.7 kB 18.0 MB/s eta 0:00:00
Requirement already satisfied: cftime in /opt/conda/envs/birdy/lib/python3.8/site-packages (from xncml) (1.6.2)
Requirement already satisfied: netCDF4 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from xncml) (1.6.2)
Requirement already satisfied: dask in /opt/conda/envs/birdy/lib/python3.8/site-packages (from xncml) (2022.11.1)
Requirement already satisfied: numpy>1.13.3 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from cftime->xncml) (1.23.5)
Requirement already satisfied: pyyaml>=5.3.1 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from dask->xncml) (6.0)
Requirement already satisfied: fsspec>=0.6.0 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from dask->xncml) (2022.11.0)
Requirement already satisfied: click>=7.0 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from dask->xncml) (8.1.3)
Requirement already satisfied: partd>=0.3.10 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from dask->xncml) (1.3.0)
Requirement already satisfied: packaging>=20.0 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from dask->xncml) (21.3)
Requirement already satisfied: toolz>=0.8.2 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from dask->xncml) (0.12.0)
Requirement already satisfied: cloudpickle>=1.1.1 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from dask->xncml) (2.2.0)
Requirement already satisfied: pandas>=1.3 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from xarray->xncml) (1.3.5)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from packaging>=20.0->dask->xncml) (3.0.9)
Requirement already satisfied: python-dateutil>=2.7.3 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from pandas>=1.3->xarray->xncml) (2.8.2)
Requirement already satisfied: pytz>=2017.3 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from pandas>=1.3->xarray->xncml) (2022.6)
Requirement already satisfied: locket in /opt/conda/envs/birdy/lib/python3.8/site-packages (from partd>=0.3.10->dask->xncml) (1.0.0)
Requirement already satisfied: six>=1.5 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from python-dateutil>=2.7.3->pandas>=1.3->xarray->xncml) (1.16.0)
Installing collected packages: xsdata, xmltodict, xncml
Successfully installed xmltodict-0.13.0 xncml-0.2 xsdata-22.12
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

Removing intermediate container 11f0bd71b9ff
 ---> 00cd0ac38b2b
Step 5/5 : USER jenkins
 ---> Running in 9b00ba912ac4

```
tlvu added a commit to Ouranosinc/PAVICS-e2e-workflow-tests that referenced this pull request Apr 3, 2023
…l) to production faster

Full build pulls newer RavenPy which requires more testing and a new RavenWPS to match.  This requires more time for testing.

esgf-pyclient for pavics-sdi esgf-dap.ipynb, PR Ouranosinc/pavics-sdi#269

xncml for gen_catalog refactoring, PR Ouranosinc/pavics-vdb#46

```
Step 4/5 : RUN umask 0000     && mamba install -c conda-forge -c cdat -c bokeh -c plotly -c pyston -c pyviz/label/dev -c defaults -n birdy esgf-pyclient     && pip install xncml
 ---> Running in 11f0bd71b9ff
Transaction

  Prefix: /opt/conda/envs/birdy

  Updating specs:

   - esgf-pyclient
   - ca-certificates
   - certifi
   - openssl

  Package                  Version  Build                 Channel                    Size
───────────────────────────────────────────────────────────────────────────────────────────
  Install:
───────────────────────────────────────────────────────────────────────────────────────────

  + astor                    0.8.1  pyh9f0ad1d_0          conda-forge/noarch         26kB
  + aws-c-auth              0.6.26  hf365957_1            conda-forge/linux-64       96kB
  + aws-c-compression       0.2.16  h03acc5a_5            conda-forge/linux-64       19kB
  + aws-c-http               0.7.6  hf342b9f_0            conda-forge/linux-64      192kB
  + aws-c-mqtt               0.8.6  hc4349f7_12           conda-forge/linux-64      144kB
  + aws-c-s3                 0.2.7  h909e904_1            conda-forge/linux-64       76kB
  + aws-c-sdkutils           0.1.8  h03acc5a_0            conda-forge/linux-64       54kB
  + aws-crt-cpp             0.19.8  hf7fbfca_12           conda-forge/linux-64      318kB
  + base58                   2.1.1  pyhd8ed1ab_0          conda-forge/noarch          9kB
  + boto3                  1.24.59  pyhd8ed1ab_0          conda-forge/noarch         74kB
  + cattrs                  22.2.0  pyhd8ed1ab_0          conda-forge/noarch         31kB
  + esgf-pyclient            0.3.1  pyh1a96a4e_2          conda-forge/noarch         23kB
  + libarrow                11.0.0  h33598ff_9_cpu        conda-forge/linux-64       27MB
  + libgrpc                 1.51.1  hcf146ea_3            conda-forge/linux-64        5MB
  + myproxyclient            2.1.0  pyhd8ed1ab_2          conda-forge/noarch         27kB
  + qhull                   2020.2  h4bd325d_2            conda-forge/linux-64        2MB
  + requests-cache           1.0.1  pyhd8ed1ab_0          conda-forge/noarch         49kB
  + s3transfer               0.6.0  pyhd8ed1ab_0          conda-forge/noarch         57kB
  + ujson                    5.7.0  py38h8dc9893_0        conda-forge/linux-64       51kB
  + url-normalize            1.4.3  pyhd8ed1ab_0          conda-forge/noarch         10kB
  + xeus-zmq                 1.0.2  h0541b36_2            conda-forge/linux-64      347kB

  Change:
───────────────────────────────────────────────────────────────────────────────────────────

  - fiona                   1.8.22  py38hc72d8cd_2        conda-forge
  + fiona                   1.8.22  py38h85a5e0f_5        conda-forge/linux-64      801kB
  - hdf5                    1.12.2  mpi_mpich_h08b82f9_0  conda-forge
  + hdf5                    1.12.2  mpi_mpich_h5d83325_1  conda-forge/linux-64        3MB
  - libarchive               3.5.2  hb890918_3            conda-forge
  + libarchive               3.5.2  hada088e_3            conda-forge/linux-64        2MB
  - libcups                  2.3.3  h3e49a29_2            conda-forge
  + libcups                  2.3.3  h36d4200_3            conda-forge/linux-64        5MB
  - libevent                2.1.10  h9b69904_4            conda-forge
  + libevent                2.1.10  h28343ad_4            conda-forge/linux-64        1MB
  - libssh2                 1.10.0  haa6b8db_3            conda-forge
  + libssh2                 1.10.0  hf14f497_3            conda-forge/linux-64     Cached
  - libzip                   1.9.2  hc869a4a_1            conda-forge
  + libzip                   1.9.2  hc929e4a_1            conda-forge/linux-64     Cached
  - pulseaudio                16.1  h4a94279_0            conda-forge
  + pulseaudio                16.1  h126f2b6_0            conda-forge/linux-64        2MB
  - pycurl                  7.45.1  py38h61f0cdf_3        conda-forge
  + pycurl                  7.45.1  py38he9e1d38_3        conda-forge/linux-64       77kB
  - qt-main                 5.15.6  h7acdfc8_2            conda-forge
  + qt-main                 5.15.6  hf6cd601_5            conda-forge/linux-64       55MB
  - wget                    1.20.3  ha56f1ee_1            conda-forge
  + wget                    1.20.3  ha35d2d1_1            conda-forge/linux-64      835kB

  Upgrade:
───────────────────────────────────────────────────────────────────────────────────────────

  - arrow-cpp                9.0.0  py38he270906_2_cpu    conda-forge
  + arrow-cpp               11.0.0  ha770c72_9_cpu        conda-forge/linux-64       31kB
  - aws-c-cal               0.5.11  h95a6274_0            conda-forge
  + aws-c-cal               0.5.21  h48707d8_2            conda-forge/linux-64       44kB
  - aws-c-common             0.6.2  h7f98852_0            conda-forge
  + aws-c-common            0.8.14  h0b41bf4_0            conda-forge/linux-64      200kB
  - aws-c-event-stream       0.2.7  h3541f99_13           conda-forge
  + aws-c-event-stream      0.2.20  h00877a2_4            conda-forge/linux-64       54kB
  - aws-c-io                0.10.5  hfb6a706_0            conda-forge
  + aws-c-io               0.13.19  h5b20300_3            conda-forge/linux-64      144kB
  - aws-checksums           0.1.11  ha31a3da_7            conda-forge
  + aws-checksums           0.1.14  h03acc5a_5            conda-forge/linux-64       50kB
  - aws-sdk-cpp            1.8.186  hecaee15_4            conda-forge
  + aws-sdk-cpp            1.10.57  h17c43bd_8            conda-forge/linux-64        4MB
  - blosc                   1.21.1  h83bc5f7_3            conda-forge
  + blosc                   1.21.3  hafa529b_0            conda-forge/linux-64       40kB
  - ca-certificates      2022.9.24  ha878542_0            conda-forge
  + ca-certificates      2022.12.7  ha878542_0            conda-forge/linux-64      146kB
  - certifi              2022.9.24  pyhd8ed1ab_0          conda-forge
  + certifi              2022.12.7  pyhd8ed1ab_0          conda-forge/noarch        151kB
  - cryptography            38.0.4  py38h2b5fc30_0        conda-forge
  + cryptography            40.0.1  py38h3d167d9_0        conda-forge/linux-64        1MB
  - curl                    7.86.0  h7bff187_1            conda-forge
  + curl                    7.88.1  hdc1c0ab_1            conda-forge/linux-64       88kB
  - gdal                     3.5.3  py38h1f15b03_4        conda-forge
  + gdal                     3.6.0  py38h58634bd_13       conda-forge/linux-64        1MB
  - grpc-cpp                1.47.1  hbad87ad_6            conda-forge
  + grpc-cpp                1.51.1  h27aab58_3            conda-forge/linux-64       22kB
  - grpcio                  1.47.1  py38h5b6373e_6        conda-forge
  + grpcio                  1.51.1  py38h8dc9893_3        conda-forge/linux-64      769kB
  - kealib                  1.4.15  ha7026e8_1            conda-forge
  + kealib                   1.5.0  ha7026e8_0            conda-forge/linux-64     Cached
  - krb5                    1.19.3  h3790be6_0            conda-forge
  + krb5                    1.20.1  h81ceb04_0            conda-forge/linux-64        1MB
  - libabseil           20220623.0  cxx17_h48a1fff_5      conda-forge
  + libabseil           20230125.0  cxx17_hcb278e6_1      conda-forge/linux-64        1MB
  - libcurl                 7.86.0  h7bff187_1            conda-forge
  + libcurl                 7.88.1  hdc1c0ab_1            conda-forge/linux-64      359kB
  - libgdal                  3.5.3  hcb70f40_4            conda-forge
  + libgdal                  3.6.0  h2f87c3e_13           conda-forge/linux-64       10MB
  - libgoogle-cloud          2.1.0  h9ebe8e8_2            conda-forge
  + libgoogle-cloud          2.8.0  h3c06191_0            conda-forge/linux-64       38MB
  - libnghttp2              1.47.0  hdcd2b5c_1            conda-forge
  + libnghttp2              1.52.0  h61bc06f_0            conda-forge/linux-64      622kB
  - libpq                     14.5  hd77ab85_1            conda-forge
  + libpq                     15.2  hb675445_0            conda-forge/linux-64        2MB
  - libprotobuf             3.20.2  h6239696_0            conda-forge
  + libprotobuf            3.21.12  h3eb15da_0            conda-forge/linux-64        2MB
  - libthrift               0.16.0  h491838f_2            conda-forge
  + libthrift               0.18.0  h5e4af38_0            conda-forge/linux-64        4MB
  - mysql-common            8.0.31  haf5c9bc_0            conda-forge
  + mysql-common            8.0.32  ha901b37_1            conda-forge/linux-64      760kB
  - mysql-libs              8.0.31  h28c427c_0            conda-forge
  + mysql-libs              8.0.32  hd7da12d_1            conda-forge/linux-64        2MB
  - nodejs                 18.12.1  h96d913c_0            conda-forge
  + nodejs                 18.15.0  h8d033a5_0            conda-forge/linux-64       15MB
  - openssl                 1.1.1s  h166bdaf_0            conda-forge
  + openssl                  3.1.0  h0b41bf4_0            conda-forge/linux-64        3MB
  - orc                      1.7.6  h6c59b99_0            conda-forge
  + orc                      1.8.2  hfdbbad2_2            conda-forge/linux-64      907kB
  - postgresql                14.5  hdeef612_1            conda-forge
  + postgresql                15.2  h3248436_0            conda-forge/linux-64        5MB
  - protobuf                3.20.2  py38hfa26641_1        conda-forge
  + protobuf               4.21.12  py38h8dc9893_0        conda-forge/linux-64      323kB
  - pyarrow                  9.0.0  py38h097c49a_2_cpu    conda-forge
  + pyarrow                 11.0.0  py38hf05218d_9_cpu    conda-forge/linux-64        4MB
  - pyopenssl               22.1.0  pyhd8ed1ab_0          conda-forge
  + pyopenssl               23.1.1  pyhd8ed1ab_0          conda-forge/noarch        128kB
  - python                  3.8.15  h257c98d_0_cpython    conda-forge
  + python                  3.8.16  he550d4f_1_cpython    conda-forge/linux-64       23MB
  - rasterio                 1.3.3  py38hb7ee17c_3        conda-forge
  + rasterio                 1.3.4  py38h485b76c_0        conda-forge/linux-64        9MB
  - re2                 2022.06.01  h27087fc_1            conda-forge
  + re2                 2023.02.02  hcb278e6_0            conda-forge/linux-64      201kB
  - s2n                     1.0.10  h9b69904_0            conda-forge
  + s2n                     1.3.41  h3358134_0            conda-forge/linux-64      362kB
  - tiledb                  2.11.3  h1e4a385_1            conda-forge
  + tiledb                  2.13.2  hd532e3d_0            conda-forge/linux-64        5MB
  - xeus                     2.4.1  h70bab47_0            conda-forge
  + xeus                     3.0.5  hac2b420_1            conda-forge/linux-64      343kB
  - xeus-python             0.14.3  py38h9f61dbb_1        conda-forge
  + xeus-python             0.15.8  py38hfbd4bf9_1        conda-forge/linux-64      769kB

  Downgrade:
───────────────────────────────────────────────────────────────────────────────────────────

  - streamlit               1.15.1  pyhd8ed1ab_0          conda-forge
  + streamlit                1.8.0  pyhd8ed1ab_0          conda-forge/noarch          8MB

  Summary:

  Install: 21 packages
  Change: 11 packages
  Upgrade: 41 packages
  Downgrade: 1 packages

  Total download: 251MB

───────────────────────────────────────────────────────────────────────────────────────────

Confirm changes: [Y/n]
Looking for: ['esgf-pyclient']

Pinned packages:
  - python 3.8.*

Preparing transaction: ...working... done
Verifying transaction: ...working... done
  Downloading xncml-0.2-py2.py3-none-any.whl (869 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 869.2/869.2 kB 8.3 MB/s eta 0:00:00
Requirement already satisfied: xarray in /opt/conda/envs/birdy/lib/python3.8/site-packages (from xncml) (2022.10.0)
Collecting xmltodict
  Downloading xmltodict-0.13.0-py2.py3-none-any.whl (10.0 kB)
Collecting xsdata
  Downloading xsdata-22.12-py3-none-any.whl (185 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 185.7/185.7 kB 18.0 MB/s eta 0:00:00
Requirement already satisfied: cftime in /opt/conda/envs/birdy/lib/python3.8/site-packages (from xncml) (1.6.2)
Requirement already satisfied: netCDF4 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from xncml) (1.6.2)
Requirement already satisfied: dask in /opt/conda/envs/birdy/lib/python3.8/site-packages (from xncml) (2022.11.1)
Requirement already satisfied: numpy>1.13.3 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from cftime->xncml) (1.23.5)
Requirement already satisfied: pyyaml>=5.3.1 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from dask->xncml) (6.0)
Requirement already satisfied: fsspec>=0.6.0 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from dask->xncml) (2022.11.0)
Requirement already satisfied: click>=7.0 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from dask->xncml) (8.1.3)
Requirement already satisfied: partd>=0.3.10 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from dask->xncml) (1.3.0)
Requirement already satisfied: packaging>=20.0 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from dask->xncml) (21.3)
Requirement already satisfied: toolz>=0.8.2 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from dask->xncml) (0.12.0)
Requirement already satisfied: cloudpickle>=1.1.1 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from dask->xncml) (2.2.0)
Requirement already satisfied: pandas>=1.3 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from xarray->xncml) (1.3.5)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from packaging>=20.0->dask->xncml) (3.0.9)
Requirement already satisfied: python-dateutil>=2.7.3 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from pandas>=1.3->xarray->xncml) (2.8.2)
Requirement already satisfied: pytz>=2017.3 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from pandas>=1.3->xarray->xncml) (2022.6)
Requirement already satisfied: locket in /opt/conda/envs/birdy/lib/python3.8/site-packages (from partd>=0.3.10->dask->xncml) (1.0.0)
Requirement already satisfied: six>=1.5 in /opt/conda/envs/birdy/lib/python3.8/site-packages (from python-dateutil>=2.7.3->pandas>=1.3->xarray->xncml) (1.16.0)
Installing collected packages: xsdata, xmltodict, xncml
Successfully installed xmltodict-0.13.0 xncml-0.2 xsdata-22.12
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

Removing intermediate container 11f0bd71b9ff
 ---> 00cd0ac38b2b
Step 5/5 : USER jenkins
 ---> Running in 9b00ba912ac4

```
tlvu added a commit to Ouranosinc/PAVICS-e2e-workflow-tests that referenced this pull request Apr 5, 2023
…ix Jenkins failure (#118)

# Overview

This is a build on top of an existing build. A fresh full build because
it would pull a newer RavenPy which would requires a newer RavenWPS,
which do not start at this moment.

This incremental build is faster to test and will fix our failing
Jenkins due to missing package `esgf-pyclient`.

It is annoying to have Jenkins failing since a while just for a missing
package.

## Changes

- Adds `esgf-pyclient` for esgf-dap.ipynb
(Ouranosinc/pavics-sdi#269)
- Adds `xncml` for gen_catalog refactoring
(Ouranosinc/pavics-vdb#46)
- Fixes annoying harmless error `ERROR 1: PROJ:
proj_create_from_database: Open of /opt/conda/envs/birdy/share/proj
failed`
- Jenkins: lower job retention duration since we now have separated jobs
for nightly trigger and manual trigger
- Existing `intake-esm` pin:
#109
- Relevant changes (alphabetical order):
```diff
>   - esgf-pyclient=0.3.1=pyh1a96a4e_2

<   - gdal=3.5.3=py38h1f15b03_4
>   - gdal=3.6.0=py38h58634bd_13

>     - xncml==0.2
```

## Test

- Deployed as "beta" image in production for bokeh visualization
performance regression testing.
- Manual test notebook
https://github.com/Ouranosinc/PAVICS-landing/blob/master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-5Visualization.ipynb
for bokeh visualization performance and it looks fine.
- Jenkins build: one known intermittent error

[job-PAVICS-e2e-workflow-tests-quick-fix-production-image-3-consoleText.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/11151086/job-PAVICS-e2e-workflow-tests-quick-fix-production-image-3-consoleText.txt)

## Related Issue / Discussion

- Matching notebook fixes:
  - Pavics-sdi: Ouranosinc/pavics-sdi#285

- Deployment to PAVICS:
bird-house/birdhouse-deploy#308

## Additional Information

Full diff conda env export:

[221130-221130-update230403-conda-env-export.diff.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/11151115/221130-221130-update230403-conda-env-export.diff.txt)


Full new conda env export:

[221130-update230403-conda-env-export.yml.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/11151116/221130-update230403-conda-env-export.yml.txt)


DockerHub build logs:

[Dockerhub-buildlogs-pavics-workflow-tests-221130-update230403.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/11151131/Dockerhub-buildlogs-pavics-workflow-tests-221130-update230403.txt)
tlvu added a commit to bird-house/birdhouse-deploy that referenced this pull request Apr 12, 2023
…ure (#308)

Jupyter: new image to add esgf-pyclient and xncml to fix Jenkins failure

See PR Ouranosinc/PAVICS-e2e-workflow-tests#118
for more details.

- Adds `esgf-pyclient` for esgf-dap.ipynb
(Ouranosinc/pavics-sdi#269)
- Adds `xncml` for gen_catalog refactoring
(Ouranosinc/pavics-vdb#46)
- Fixes annoying harmless error `ERROR 1: PROJ:
proj_create_from_database: Open of /opt/conda/envs/birdy/share/proj
failed`
- Relevant changes (alphabetical order):
```diff
>   - esgf-pyclient=0.3.1=pyh1a96a4e_2

<   - gdal=3.5.3=py38h1f15b03_4
>   - gdal=3.6.0=py38h58634bd_13

>     - xncml==0.2
```
tlvu added a commit to Ouranosinc/PAVICS-e2e-workflow-tests that referenced this pull request Jun 1, 2023
… and latest of everything else (#115)

## Changes
- Jenkins: add RavenPy repo
- Re-organize tutorial notebooks on PAVICS: dropped `esgf-compute-api`
examples and group all Raven notebooks (RavenWPS and RavenPy) into one
folder `raven`.
- Jupyter env changes:
  - Update to python `3.9`, from `3.8`
- Adds `esgf-pyclient` for esgf-dap.ipynb
(https://github.com/Ouranosinc/pavics-sdi/pull/269)
- Adds `xncml` for gen_catalog refactoring
(https://github.com/Ouranosinc/pavics-vdb/pull/46)
- Adds Globus Personnal Connect to be able to transfer big files in and
out of the Jupyter env
- Fixes annoying harmless error `ERROR 1: PROJ:
proj_create_from_database: Open of /opt/conda/envs/birdy/share/proj
failed`
- Existing `intake-esm` pin:
https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/issues/109
  - Shrink image by almost 2G
  - Relevant changes (alphabetical order):
```diff
<   - birdy=0.8.1=pyh6c4a22f_1
>   - birdy=0.8.4=pyh1a96a4e_0

<   - cf_xarray=0.7.5=pyhd8ed1ab_0
>   - cf_xarray=0.8.0=pyhd8ed1ab_0

<   - clisops=0.9.3=pyh1a96a4e_0
>   - clisops=0.9.6=pyh1a96a4e_0

<   - dask=2022.11.1=pyhd8ed1ab_0
>   - dask=2023.5.1=pyhd8ed1ab_0

<   - esmf=8.2.0=mpi_mpich_h5a1934d_102
<   - esmpy=8.2.0=mpi_mpich_py38h9147699_101
>   - esmf=8.4.0=mpi_mpich_hc592774_104
>   - esmpy=8.4.0=mpi_mpich_py39h3088dd8_102

<   - fiona=1.8.22=py38h85a5e0f_5
>   - fiona=1.9.1=py39hbc5ff6d_0

<   - flox=0.6.4=pyhd8ed1ab_0
>   - flox=0.7.2=pyhd8ed1ab_0

<   - gdal=3.6.0=py38h58634bd_13
>   - gdal=3.6.2=py39hc6cd174_6

<   - owslib=0.27.2=pyhd8ed1ab_1
>   - owslib=0.28.1=pyhd8ed1ab_0

# new
>   - pyogrio=0.5.1=py39hbc5ff6d_0

<   - python=3.8.16=he550d4f_1_cpython
>   - python=3.9.16=h2782a2a_0_cpython

<   - raven-hydro=3.0.4.322=ha46ed4c_2
<   - ravenpy=0.9.0=pyha21a80b_0
>   - raven-hydro=0.2.1=py39h8e2dbb5_1
>   - ravenpy=0.12.0=py39hf3d152e_2

<   - rioxarray=0.13.1=pyhd8ed1ab_0
>   - rioxarray=0.14.1=pyhd8ed1ab_0

<   - roocs-utils=0.6.3=pyh1a96a4e_0
>   - roocs-utils=0.6.4=pyh1a96a4e_0

# new
>   - seaborn=0.12.2=hd8ed1ab_0

<   - xarray=2022.10.0=pyhd8ed1ab_0
>   - xarray=2023.1.0=pyhd8ed1ab_0

<   - xclim=0.39.0=pyhd8ed1ab_0
>   - xclim=0.43.0=py39hf3d152e_1

<   - xesmf=0.6.3=pyhd8ed1ab_1
>   - xesmf=0.7.1=pyhd8ed1ab_0

# new 
>  - hsclient==0.3.3

```

## Test

- Deployed as "beta" image in production for bokeh visualization
performance regression testing.
- Manual test notebook
https://github.com/Ouranosinc/PAVICS-landing/blob/master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-5Visualization.ipynb
for bokeh visualization performance and it looks fine.
- Jenkins build, all passed:

[job-PAVICS-e2e-workflow-tests-new-docker-build-198-consoleText.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/11621190/job-PAVICS-e2e-workflow-tests-new-docker-build-198-consoleText.txt)

[ravenpy-job-PAVICS-e2e-workflow-tests-new-docker-build-200-consoleText.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/11621191/ravenpy-job-PAVICS-e2e-workflow-tests-new-docker-build-200-consoleText.txt)




## Related Issue / Discussion

- Matching notebook fixes:
  - Pavics-sdi: https://github.com/Ouranosinc/pavics-sdi/pull/281
  - Finch: https://github.com/bird-house/finch/pull/275
  - PAVICS-landing: https://github.com/Ouranosinc/PAVICS-landing/pull/64
  - RavenPy: https://github.com/CSHS-CWRA/RavenPy/pull/287

- Deployment to PAVICS:
https://github.com/bird-house/birdhouse-deploy/pull/332

- Jenkins-config changes for new RavenPy notebooks:
https://github.com/Ouranosinc/jenkins-config/pull/15

- Other issues found while working on this one
  - https://github.com/Ouranosinc/PAVICS-landing/issues/66
  - https://github.com/Ouranosinc/PAVICS-landing/issues/65

## Additional Information

Full diff conda env export:

[221130-update230403-230530-1-conda-env-export.diff.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/11621128/221130-update230403-230530-1-conda-env-export.diff.txt)
```diff
9,11c9,12
<   - affine=2.3.1=pyhd8ed1ab_0
<   - aiobotocore=2.4.0=pyhd8ed1ab_0
<   - aiohttp=3.8.3=py38h0a891b7_1
---
>   - affine=2.4.0=pyhd8ed1ab_0
>   - aiobotocore=2.5.0=pyhd8ed1ab_0
>   - aiofiles=22.1.0=pyhd8ed1ab_0
>   - aiohttp=3.8.4=py39h72bdee0_0
14c15,16
<   - alembic=1.8.1=pyhd8ed1ab_0
---
>   - aiosqlite=0.19.0=pyhd8ed1ab_0
>   - alembic=1.11.1=pyhd8ed1ab_0
16,18c18,20
<   - altair=4.2.0=pyhd8ed1ab_1
<   - ansi2html=1.8.0=py38h578d9bd_1
<   - anyio=3.6.2=pyhd8ed1ab_0
---
>   - altair=5.0.1=pyhd8ed1ab_0
>   - ansi2html=1.8.0=py39hf3d152e_1
>   - anyio=3.6.1=pyhd8ed1ab_1
22,23c24
<   - argon2-cffi-bindings=21.2.0=py38h0a891b7_3
<   - arrow-cpp=11.0.0=ha770c72_9_cpu
---
>   - argon2-cffi-bindings=21.2.0=py39hb9d737c_3
26c27
<   - asttokens=2.2.0=pyhd8ed1ab_0
---
>   - asttokens=2.2.1=pyhd8ed1ab_0
30,44c31,45
<   - attrs=22.1.0=pyh71513ae_1
<   - aws-c-auth=0.6.26=hf365957_1
<   - aws-c-cal=0.5.21=h48707d8_2
<   - aws-c-common=0.8.14=h0b41bf4_0
<   - aws-c-compression=0.2.16=h03acc5a_5
<   - aws-c-event-stream=0.2.20=h00877a2_4
<   - aws-c-http=0.7.6=hf342b9f_0
<   - aws-c-io=0.13.19=h5b20300_3
<   - aws-c-mqtt=0.8.6=hc4349f7_12
<   - aws-c-s3=0.2.7=h909e904_1
<   - aws-c-sdkutils=0.1.8=h03acc5a_0
<   - aws-checksums=0.1.14=h03acc5a_5
<   - aws-crt-cpp=0.19.8=hf7fbfca_12
<   - aws-sdk-cpp=1.10.57=h17c43bd_8
<   - babel=2.11.0=pyhd8ed1ab_0
---
>   - attrs=23.1.0=pyh71513ae_1
>   - aws-c-auth=0.6.27=he072965_1
>   - aws-c-cal=0.5.26=hf677bf3_1
>   - aws-c-common=0.8.19=hd590300_0
>   - aws-c-compression=0.2.16=hbad4bc6_7
>   - aws-c-event-stream=0.2.20=hb4b372c_7
>   - aws-c-http=0.7.7=h2632f9a_4
>   - aws-c-io=0.13.21=h9fef7b8_5
>   - aws-c-mqtt=0.8.11=h2282364_1
>   - aws-c-s3=0.3.0=hcb5a9b2_2
>   - aws-c-sdkutils=0.1.9=hbad4bc6_2
>   - aws-checksums=0.1.14=hbad4bc6_7
>   - aws-crt-cpp=0.20.2=he0fdcb3_0
>   - aws-sdk-cpp=1.10.57=h059227d_13
>   - babel=2.12.1=pyhd8ed1ab_1
48d48
<   - backports.zoneinfo=0.2.1=py38h0a891b7_7
50,51c50,51
<   - bcrypt=3.2.2=py38h0a891b7_1
<   - beautifulsoup4=4.11.1=pyha770c72_0
---
>   - bcrypt=3.2.2=py39hb9d737c_1
>   - beautifulsoup4=4.12.2=pyha770c72_0
53,56c53,56
<   - birdy=0.8.1=pyh6c4a22f_1
<   - bleach=5.0.1=pyhd8ed1ab_0
<   - blinker=1.5=pyhd8ed1ab_0
<   - blosc=1.21.3=hafa529b_0
---
>   - birdy=0.8.4=pyh1a96a4e_0
>   - bleach=6.0.0=pyhd8ed1ab_0
>   - blinker=1.6.2=pyhd8ed1ab_0
>   - blosc=1.21.4=h0f2a231_0
58,62c58,62
<   - boltons=21.0.0=pyhd8ed1ab_0
<   - boost-cpp=1.78.0=h75c5d50_1
<   - boto3=1.24.59=pyhd8ed1ab_0
<   - botocore=1.27.59=pyhd8ed1ab_0
<   - bottleneck=1.3.5=py38h26c90d9_1
---
>   - boltons=23.0.0=pyhd8ed1ab_0
>   - boost-cpp=1.78.0=h5adbc97_2
>   - boto3=1.26.76=pyhd8ed1ab_0
>   - botocore=1.29.76=pyhd8ed1ab_0
>   - bottleneck=1.3.7=py39h389d5f1_0
66,67c66
<   - brotli-python=1.0.9=py38hfa26641_8
<   - brotlipy=0.7.0=py38h0a891b7_1005
---
>   - brotlipy=0.7.0=py39hb9d737c_1005
70,72c69,71
<   - c-ares=1.18.1=h7f98852_0
<   - c-blosc2=2.5.0=h7a311fb_0
<   - ca-certificates=2022.12.7=ha878542_0
---
>   - c-ares=1.19.1=hd590300_0
>   - c-blosc2=2.9.2=hb4ffafa_0
>   - ca-certificates=2023.5.7=hbcca054_0
75c74
<   - cachetools=5.2.0=pyhd8ed1ab_0
---
>   - cachetools=5.3.0=pyhd8ed1ab_0
77c76
<   - cartopy=0.21.0=py38hf6c3373_3
---
>   - cartopy=0.21.1=py39h6e7ad6e_0
80,82c79,81
<   - cdms2=3.1.5=py38hc1ef740_14
<   - cdtime=3.1.4=py38hc54c017_7
<   - certifi=2022.12.7=pyhd8ed1ab_0
---
>   - cdms2=3.1.5=py39h36de48d_15
>   - cdtime=3.1.4=py39he83c29a_7
>   - certifi=2023.5.7=pyhd8ed1ab_0
84,86c83,85
<   - cf_xarray=0.7.5=pyhd8ed1ab_0
<   - cffi=1.15.1=py38h4a40e3a_2
<   - cfgrib=0.9.10.3=pyhd8ed1ab_0
---
>   - cf_xarray=0.8.0=pyhd8ed1ab_0
>   - cffi=1.15.1=py39he91dace_3
>   - cfgrib=0.9.10.4=pyhd8ed1ab_0
89,90c88,89
<   - cftime=1.6.2=py38h26c90d9_1
<   - charls=2.3.4=h9c3ff4c_0
---
>   - cftime=1.6.2=py39h2ae25f5_1
>   - charls=2.4.2=h59595ed_0
96,97c95,96
<   - clisops=0.9.3=pyh1a96a4e_0
<   - cloudpickle=2.2.0=pyhd8ed1ab_0
---
>   - clisops=0.9.6=pyh1a96a4e_0
>   - cloudpickle=2.2.1=pyhd8ed1ab_0
100,105c99,104
<   - commonmark=0.9.1=py_0
<   - configurable-http-proxy=4.5.3=he2f69ee_3
<   - contourpy=1.0.6=py38h43d8883_0
<   - coverage=6.5.0=py38h0a891b7_1
<   - cryptography=40.0.1=py38h3d167d9_0
<   - curl=7.88.1=hdc1c0ab_1
---
>   - comm=0.1.3=pyhd8ed1ab_0
>   - configurable-http-proxy=4.5.4=he2f69ee_2
>   - contourpy=1.0.7=py39h4b4f3f3_0
>   - coverage=7.2.7=py39hd1e30aa_0
>   - cryptography=40.0.2=py39h079d5ae_0
>   - curl=8.1.2=h409715c_0
107,111c106,110
<   - cytoolz=0.12.0=py38h0a891b7_1
<   - dash=2.7.0=pyhd8ed1ab_0
<   - dask=2022.11.1=pyhd8ed1ab_0
<   - dask-core=2022.11.1=pyhd8ed1ab_0
<   - dask-labextension=6.0.0=pyhd8ed1ab_0
---
>   - cytoolz=0.12.0=py39hb9d737c_1
>   - dash=2.9.3=pyhd8ed1ab_2
>   - dask=2023.5.1=pyhd8ed1ab_0
>   - dask-core=2023.5.1=pyhd8ed1ab_0
>   - dask-labextension=6.1.0=pyhd8ed1ab_0
113c112
<   - datashader=0.14.3=pyh1a96a4e_0
---
>   - datashader=0.14.4=pyh1a96a4e_0
115c114
<   - dav1d=1.0.0=h166bdaf_1
---
>   - dav1d=1.2.0=hd590300_0
117c116
<   - debugpy=1.6.4=py38hfa26641_0
---
>   - debugpy=1.6.7=py39h227be39_0
122c121
<   - distarray=2.12.2=pyhd8ed1ab_2
---
>   - distarray=2.12.2=pyh050c7b8_4
124c123
<   - distributed=2022.11.1=pyhd8ed1ab_0
---
>   - distributed=2023.5.1=pyhd8ed1ab_0
127,128c126,127
<   - eccodes=2.27.0=h164a9dd_0
<   - elfutils=0.186=he364ef2_0
---
>   - eccodes=2.28.0=h7513371_1
>   - elfutils=0.189=hde5d1a3_0
133,135c132,135
<   - esmf=8.2.0=mpi_mpich_h5a1934d_102
<   - esmpy=8.2.0=mpi_mpich_py38h9147699_101
<   - exceptiongroup=1.0.4=pyhd8ed1ab_0
---
>   - esmf=8.4.0=mpi_mpich_hc592774_104
>   - esmpy=8.4.0=mpi_mpich_py39h3088dd8_102
>   - exceptiongroup=1.1.1=pyhd8ed1ab_0
>   - execnet=1.9.0=pyhd8ed1ab_0
137c137
<   - expat=2.5.0=h27087fc_0
---
>   - expat=2.5.0=hcb278e6_1
140,148c140,147
<   - fftw=3.3.10=nompi_hf0379b8_105
<   - filelock=3.8.0=pyhd8ed1ab_0
<   - findlibs=0.0.2=pyhd8ed1ab_0
<   - fiona=1.8.22=py38h85a5e0f_5
<   - flask=2.2.2=pyhd8ed1ab_0
<   - flask-compress=1.13=pyhd8ed1ab_0
<   - flit-core=3.8.0=pyhd8ed1ab_0
<   - flox=0.6.4=pyhd8ed1ab_0
<   - folium=0.13.0=pyhd8ed1ab_0
---
>   - fftw=3.3.10=nompi_hc118613_107
>   - filelock=3.12.0=pyhd8ed1ab_0
>   - findlibs=0.0.5=pyhd8ed1ab_0
>   - fiona=1.9.1=py39hbc5ff6d_0
>   - flask=2.3.2=pyhd8ed1ab_0
>   - flit-core=3.9.0=pyhd8ed1ab_0
>   - flox=0.7.2=pyhd8ed1ab_0
>   - folium=0.14.0=pyhd8ed1ab_0
153c152
<   - fontconfig=2.14.1=hc2a2eb6_0
---
>   - fontconfig=2.14.2=h14ed4e7_0
156c155
<   - fonttools=4.38.0=py38h0a891b7_1
---
>   - fonttools=4.39.4=py39hd1e30aa_0
160,161c159,160
<   - frozenlist=1.3.3=py38h0a891b7_0
<   - fsspec=2022.11.0=pyhd8ed1ab_0
---
>   - frozenlist=1.3.3=py39hb9d737c_0
>   - fsspec=2023.5.0=pyh1a96a4e_0
163c162
<   - future=0.18.2=pyhd8ed1ab_6
---
>   - future=0.18.3=pyhd8ed1ab_0
165,167c164,166
<   - gcsfs=2022.11.0=pyhd8ed1ab_0
<   - gdal=3.6.0=py38h58634bd_13
<   - geckodriver=0.32.0=h4b87306_0
---
>   - gcsfs=2023.5.0=pyhd8ed1ab_0
>   - gdal=3.6.2=py39hc6cd174_6
>   - geckodriver=0.33.0=hd2f7af9_0
169,170c168,169
<   - geopandas=0.12.1=pyhd8ed1ab_1
<   - geopandas-base=0.12.1=pyha770c72_1
---
>   - geopandas=0.13.0=pyhd8ed1ab_0
>   - geopandas-base=0.13.0=pyha770c72_0
173,175c172,174
<   - geotiff=1.7.1=ha76d385_4
<   - geoviews=1.9.5=pyhd8ed1ab_0
<   - geoviews-core=1.9.5=pyha770c72_0
---
>   - geotiff=1.7.1=h7a142b4_6
>   - geoviews=1.9.6=pyhd8ed1ab_0
>   - geoviews-core=1.9.6=pyha770c72_0
178c177
<   - giflib=5.2.1=h36c2ea0_2
---
>   - giflib=5.2.1=h0b41bf4_3
180,182c179,181
<   - gitpython=3.1.29=pyhd8ed1ab_0
<   - glib=2.74.1=h6239696_1
<   - glib-tools=2.74.1=h6239696_1
---
>   - gitpython=3.1.31=pyhd8ed1ab_0
>   - glib=2.76.3=hfc55251_0
>   - glib-tools=2.76.3=hfc55251_0
185,187c184,186
<   - google-api-core=2.10.2=pyhd8ed1ab_0
<   - google-auth=2.14.1=pyh1a96a4e_0
<   - google-auth-oauthlib=0.7.1=pyhd8ed1ab_0
---
>   - google-api-core=2.11.0=pyhd8ed1ab_0
>   - google-auth=2.19.0=pyh1a96a4e_0
>   - google-auth-oauthlib=1.0.0=pyhd8ed1ab_0
189,198c188,197
<   - google-cloud-storage=2.6.0=pyh1a96a4e_0
<   - google-crc32c=1.1.2=py38h57c428a_4
<   - google-resumable-media=2.4.0=pyhd8ed1ab_0
<   - googleapis-common-protos=1.57.0=pyhd8ed1ab_3
<   - greenlet=2.0.1=py38hfa26641_0
<   - grpc-cpp=1.51.1=h27aab58_3
<   - grpcio=1.51.1=py38h8dc9893_3
<   - gst-plugins-base=1.21.2=h3e40eee_0
<   - gstreamer=1.21.2=hd4edc92_0
<   - gstreamer-orc=0.4.33=h166bdaf_0
---
>   - google-cloud-storage=2.9.0=pyh1a96a4e_0
>   - google-crc32c=1.1.2=py39h8db88ab_4
>   - google-resumable-media=2.5.0=pyhd8ed1ab_0
>   - googleapis-common-protos=1.57.1=pyhd8ed1ab_0
>   - graphite2=1.3.13=h58526e2_1001
>   - greenlet=2.0.2=py39h3d6467e_1
>   - grpcio=1.54.2=py39h227be39_2
>   - gst-plugins-base=1.22.0=h4243ec0_2
>   - gstreamer=1.22.0=h25f0c4b_2
>   - gstreamer-orc=0.4.34=hd590300_0
200,202c199,202
<   - h5netcdf=1.1.0=pyhd8ed1ab_0
<   - h5py=3.7.0=nompi_py38h7927eab_102
<   - haversine=2.7.0=pyhd8ed1ab_0
---
>   - h5netcdf=1.1.0=pyhd8ed1ab_1
>   - h5py=3.8.0=mpi_mpich_py39hadaddcd_0
>   - harfbuzz=6.0.0=h8e241bc_0
>   - haversine=2.8.0=pyhd8ed1ab_0
205,207c205,206
<   - heapdict=1.0.1=py_0
<   - holoviews=1.15.2=pyhd8ed1ab_0
<   - hvplot=0.8.2=pyhd8ed1ab_0
---
>   - holoviews=1.16.0=pyhd8ed1ab_0
>   - hvplot=0.8.3=pyhd8ed1ab_0
209c208
<   - identify=2.5.9=pyhd8ed1ab_0
---
>   - identify=2.5.24=pyhd8ed1ab_0
211,217c210,217
<   - imagecodecs=2022.9.26=py38hf74bd01_4
<   - imageio=2.22.4=pyhfa7a67d_1
<   - importlib-metadata=5.1.0=pyha770c72_0
<   - importlib_metadata=5.1.0=hd8ed1ab_0
<   - importlib_resources=5.10.0=pyhd8ed1ab_0
<   - iniconfig=1.1.1=pyh9f0ad1d_0
<   - intake=0.6.6=pyhd8ed1ab_0
---
>   - imagecodecs=2023.1.23=py39hd061359_0
>   - imageio=2.28.1=pyh24c5eb1_0
>   - importlib-metadata=6.6.0=pyha770c72_0
>   - importlib-resources=5.12.0=pyhd8ed1ab_0
>   - importlib_metadata=6.6.0=hd8ed1ab_0
>   - importlib_resources=5.12.0=pyhd8ed1ab_0
>   - iniconfig=2.0.0=pyhd8ed1ab_0
>   - intake=0.7.0=pyhd8ed1ab_0
221,222c221,222
<   - intake-xarray=0.6.1=pyhd8ed1ab_0
<   - ipykernel=6.17.1=pyh210e3f2_0
---
>   - intake-xarray=0.7.0=pyhd8ed1ab_0
>   - ipykernel=6.23.1=pyh210e3f2_0
224c224
<   - ipython=8.6.0=pyh41d4057_1
---
>   - ipython=8.13.2=pyh41d4057_0
226c226
<   - ipywidgets=8.0.2=pyhd8ed1ab_1
---
>   - ipywidgets=8.0.6=pyhd8ed1ab_0
228,229c228,229
<   - jack=1.9.21=he978b8e_1
<   - jasper=2.0.33=ha77e612_0
---
>   - jack=1.9.22=h11f4161_0
>   - jasper=2.0.33=h0ff4b12_1
234c234
<   - jpeg=9e=h166bdaf_2
---
>   - jpeg=9e=h0b41bf4_3
239,240c239,240
<   - jupyter=1.0.0=py38h578d9bd_7
<   - jupyter-archive=3.3.3=pyhd8ed1ab_0
---
>   - jupyter=1.0.0=py39hf3d152e_8
>   - jupyter-archive=3.3.4=pyhd8ed1ab_1
242,244c242,244
<   - jupyter-resource-usage=0.6.4=pyhd8ed1ab_0
<   - jupyter-server-mathjax=0.2.6=pyhc268e32_0
<   - jupyter-server-proxy=3.2.2=pyhd8ed1ab_0
---
>   - jupyter-resource-usage=0.7.1=pyhd8ed1ab_0
>   - jupyter-server-mathjax=0.2.6=pyh5bfe37b_1
>   - jupyter-server-proxy=4.0.0=pyhd8ed1ab_0
246,249c246,252
<   - jupyter_client=7.3.4=pyhd8ed1ab_0
<   - jupyter_console=6.4.4=pyhd8ed1ab_0
<   - jupyter_core=5.1.0=py38h578d9bd_0
<   - jupyter_server=1.23.3=pyhd8ed1ab_0
---
>   - jupyter_client=7.4.1=pyhd8ed1ab_0
>   - jupyter_console=6.6.3=pyhd8ed1ab_0
>   - jupyter_core=5.3.0=py39hf3d152e_0
>   - jupyter_events=0.6.3=pyhd8ed1ab_0
>   - jupyter_server=1.23.6=pyhd8ed1ab_0
>   - jupyter_server_fileid=0.9.0=pyhd8ed1ab_0
>   - jupyter_server_ydoc=0.8.0=pyhd8ed1ab_0
251,254c254,258
<   - jupyterhub=3.0.0=pyh2a2186d_1
<   - jupyterhub-base=3.0.0=pyh2a2186d_1
<   - jupyterlab=3.5.0=pyhd8ed1ab_0
<   - jupyterlab-git=0.40.1=pyhd8ed1ab_0
---
>   - jupyter_ydoc=0.2.3=pyhd8ed1ab_0
>   - jupyterhub=4.0.0=pyh2a2186d_0
>   - jupyterhub-base=4.0.0=pyh2a2186d_0
>   - jupyterlab=3.6.3=pyhd8ed1ab_0
>   - jupyterlab-git=0.41.0=pyhd8ed1ab_1
258,260c262,264
<   - jupyterlab_server=2.16.3=pyhd8ed1ab_0
<   - jupyterlab_widgets=3.0.3=pyhd8ed1ab_0
<   - jupytext=1.14.1=pyhd0ecf6b_0
---
>   - jupyterlab_server=2.22.1=pyhd8ed1ab_0
>   - jupyterlab_widgets=3.0.7=pyhd8ed1ab_1
>   - jupytext=1.14.5=pyhcff175f_0
264c268
<   - kiwisolver=1.4.4=py38h43d8883_1
---
>   - kiwisolver=1.4.4=py39hf939315_1
267,269c271,274
<   - lazy-object-proxy=1.8.0=py38h0a891b7_0
<   - lcms2=2.14=h6ed2654_0
<   - ld_impl_linux-64=2.39=hcc3a1bd_1
---
>   - lazy-object-proxy=1.9.0=py39h72bdee0_0
>   - lazy_loader=0.2=pyhd8ed1ab_0
>   - lcms2=2.15=hfd0df8a_0
>   - ld_impl_linux-64=2.40=h41732ed_0
271,275c276,280
<   - libabseil=20230125.0=cxx17_hcb278e6_1
<   - libaec=1.0.6=h9c3ff4c_0
<   - libarchive=3.5.2=hada088e_3
<   - libarrow=11.0.0=h33598ff_9_cpu
<   - libavif=0.11.1=h5cdd6b5_0
---
>   - libabseil=20230125.2=cxx17_h59595ed_2
>   - libaec=1.0.6=hcb278e6_1
>   - libarchive=3.6.2=h3d51595_0
>   - libarrow=10.0.1=hf815326_25_cpu
>   - libavif=0.11.1=hff004cb_1
280c285
<   - libcap=2.66=ha37c62d_0
---
>   - libcap=2.67=he9d0100_0
282,285c287,290
<   - libcdms=3.1.2=h2973bc7_118
<   - libcf=1.0.3=py38h0c3d773_115
<   - libclang=15.0.6=default_h2e3cab8_0
<   - libclang13=15.0.6=default_h3a83d3e_0
---
>   - libcdms=3.1.2=hf94f14b_119
>   - libcf=1.0.3=py39h6c807ef_115
>   - libclang=15.0.7=default_h7634d5b_2
>   - libclang13=15.0.7=default_h9986a30_2
288,289c293
<   - libcurl=7.88.1=hdc1c0ab_1
<   - libdap4=3.20.6=hd7c4107_2
---
>   - libcurl=8.1.2=h409715c_0
291c295
<   - libdeflate=1.14=h166bdaf_0
---
>   - libdeflate=1.17=h0b41bf4_0
297a302
>   - libexpat=2.5.0=hcb278e6_1
302c307
<   - libgdal=3.6.0=h2f87c3e_13
---
>   - libgdal=3.6.2=h8c90c07_6
305c310
<   - libglib=2.74.1=h606061b_1
---
>   - libglib=2.76.3=hebfc3b9_0
308,310c313,315
<   - libgoogle-cloud=2.8.0=h3c06191_0
<   - libgpg-error=1.45=hc0c96e0_0
<   - libgrpc=1.51.1=hcf146ea_3
---
>   - libgoogle-cloud=2.10.1=hac9eb74_1
>   - libgpg-error=1.46=h620e276_0
>   - libgrpc=1.54.2=hb20ce57_2
315,317c320,323
<   - libllvm11=11.1.0=he0ac6c6_5
<   - libllvm15=15.0.6=h63197d8_0
<   - libmicrohttpd=0.9.75=h2603550_1
---
>   - libllvm14=14.0.6=hcd5def8_2
>   - libllvm15=15.0.7=hadd5161_1
>   - libllvm16=16.0.1=hadd5161_0
>   - libmicrohttpd=0.9.76=h87ba234_0
320a327
>   - libnuma=2.0.16=h0b41bf4_1
329c336
<   - libsndfile=1.1.0=h27087fc_0
---
>   - libsndfile=1.2.0=hb75c966_0
332,333c339,340
<   - libspatialite=5.0.1=h7c8129e_22
<   - libsqlite=3.40.0=h753d276_0
---
>   - libspatialite=5.0.1=h221c8f1_23
>   - libsqlite=3.42.0=h2797004_0
336c343
<   - libsystemd0=252=h2a991cd_0
---
>   - libsystemd0=253=h8c4010b_1
338,341c345,348
<   - libthrift=0.18.0=h5e4af38_0
<   - libtiff=4.4.0=h55922b4_4
<   - libtool=2.4.6=h9c3ff4c_1008
<   - libudev1=252=h166bdaf_0
---
>   - libthrift=0.18.1=h5e4af38_0
>   - libtiff=4.5.0=h6adf6a1_2
>   - libtool=2.4.7=h27087fc_0
>   - libudev1=253=h0b41bf4_1
344c351
<   - libuuid=2.32.1=h7f98852_1000
---
>   - libuuid=2.38.1=h0b41bf4_0
347c354
<   - libwebp-base=1.2.4=h166bdaf_0
---
>   - libwebp-base=1.3.0=h0b41bf4_0
349,350c356,357
<   - libxkbcommon=1.0.3=he3ba5ed_0
<   - libxml2=2.10.3=h7463322_0
---
>   - libxkbcommon=1.5.0=h79f4944_1
>   - libxml2=2.10.3=hca2bb57_4
355c362,363
<   - llvmlite=0.39.1=py38h38d86a4_1
---
>   - llvmlite=0.40.0=py39h174d805_0
>   - lmoments3=1.0.5=pyhd8ed1ab_0
357,360c365,368
<   - loguru=0.6.0=py38h578d9bd_2
<   - lxml=4.9.1=py38ha9ef780_1
<   - lz4=4.0.2=py38h1bf946c_0
<   - lz4-c=1.9.3=h9c3ff4c_1
---
>   - loguru=0.7.0=py39hf3d152e_0
>   - lxml=4.9.2=py39h14694de_0
>   - lz4=4.3.2=py39h724f13c_0
>   - lz4-c=1.9.4=hcb278e6_0
363,369c371,377
<   - mamba_gator=5.2.0=pyhd8ed1ab_0
<   - mapclassify=2.4.3=pyhd8ed1ab_0
<   - markdown=3.4.1=pyhd8ed1ab_0
<   - markdown-it-py=2.1.0=pyhd8ed1ab_0
<   - markupsafe=2.1.1=py38h0a891b7_2
<   - matplotlib=3.6.2=py38h578d9bd_0
<   - matplotlib-base=3.6.2=py38hb021067_0
---
>   - mamba_gator=5.2.1=pyhd8ed1ab_0
>   - mapclassify=2.5.0=pyhd8ed1ab_1
>   - markdown=3.4.3=pyhd8ed1ab_0
>   - markdown-it-py=2.2.0=pyhd8ed1ab_0
>   - markupsafe=2.1.2=py39h72bdee0_0
>   - matplotlib=3.7.1=py39hf3d152e_0
>   - matplotlib-base=3.7.1=py39he190548_0
371c379
<   - mdit-py-plugins=0.3.1=pyhd8ed1ab_0
---
>   - mdit-py-plugins=0.3.5=pyhd8ed1ab_0
374,376c382,384
<   - mesalib=21.2.5=h0e4506f_3
<   - mistune=2.0.4=pyhd8ed1ab_0
<   - mpg123=1.30.2=h27087fc_1
---
>   - mesalib=23.0.2=h3855f93_0
>   - mistune=2.0.5=pyhd8ed1ab_0
>   - mpg123=1.31.3=hcb278e6_0
378c386
<   - mpi4py=3.1.4=py38h97ac3a3_0
---
>   - mpi4py=3.1.4=py39h32b9844_0
380,381c388,389
<   - msgpack-python=1.0.4=py38h43d8883_1
<   - multidict=6.0.2=py38h0a891b7_2
---
>   - msgpack-python=1.0.5=py39h4b4f3f3_0
>   - multidict=6.0.4=py39h72bdee0_0
383,384c391,392
<   - multiprocess=0.70.14=py38h0a891b7_3
<   - munch=2.5.0=py_0
---
>   - multiprocess=0.70.14=py39hb9d737c_3
>   - munch=3.0.0=pyhd8ed1ab_0
387,395c395,403
<   - mysql-common=8.0.32=ha901b37_1
<   - mysql-libs=8.0.32=hd7da12d_1
<   - nbclassic=0.4.8=pyhd8ed1ab_0
<   - nbclient=0.7.2=pyhd8ed1ab_0
<   - nbconvert=7.2.5=pyhd8ed1ab_0
<   - nbconvert-core=7.2.5=pyhd8ed1ab_0
<   - nbconvert-pandoc=7.2.5=pyhd8ed1ab_0
<   - nbdime=3.1.1=pyhd8ed1ab_0
<   - nbformat=5.7.0=pyhd8ed1ab_0
---
>   - mysql-common=8.0.32=hf1915f5_2
>   - mysql-libs=8.0.32=hca2cd23_2
>   - nbclassic=1.0.0=pyhb4ecaf3_1
>   - nbclient=0.7.4=pyhd8ed1ab_0
>   - nbconvert=7.4.0=pyhd8ed1ab_0
>   - nbconvert-core=7.4.0=pyhd8ed1ab_0
>   - nbconvert-pandoc=7.4.0=pyhd8ed1ab_0
>   - nbdime=3.2.1=pyhd8ed1ab_0
>   - nbformat=5.8.0=pyhd8ed1ab_0
402,403c410,411
<   - netcdf-fortran=4.6.0=mpi_mpich_hd09bd1e_1
<   - netcdf4=1.6.2=nompi_py38h2250339_100
---
>   - netcdf-fortran=4.6.0=mpi_mpich_h1e13492_2
>   - netcdf4=1.6.2=nompi_py39hfaa66c4_100
405,406c413,414
<   - networkx=2.8.8=pyhd8ed1ab_0
<   - nodeenv=1.7.0=pyhd8ed1ab_0
---
>   - networkx=3.1=pyhd8ed1ab_0
>   - nodeenv=1.8.0=pyhd8ed1ab_0
408,409c416,417
<   - notebook=6.5.2=pyha770c72_1
<   - notebook-shim=0.2.2=pyhd8ed1ab_0
---
>   - notebook=6.5.4=pyha770c72_0
>   - notebook-shim=0.2.3=pyhd8ed1ab_0
411,415c419,423
<   - nss=3.82=he02c5a1_0
<   - numba=0.56.4=py38h9a4aae9_0
<   - numcodecs=0.10.2=py38hfa26641_0
<   - numpy=1.23.5=py38h7042d01_0
<   - numpy_groupies=0.9.20=pyhd8ed1ab_0
---
>   - nss=3.89=he45b914_0
>   - numba=0.57.0=py39hb75a051_0
>   - numcodecs=0.11.0=py39h227be39_1
>   - numpy=1.23.5=py39h3d75532_0
>   - numpy_groupies=0.9.22=pyhd8ed1ab_0
418,421c426,428
<   - openjpeg=2.5.0=h7d73246_1
<   - openssl=3.1.0=h0b41bf4_0
<   - orc=1.8.2=hfdbbad2_2
<   - ostrich=21.03.16=h4bd325d_1
---
>   - openjpeg=2.5.0=hfec8fc6_2
>   - openssl=3.1.1=hd590300_0
>   - orc=1.8.3=hfdbbad2_0
423c430
<   - owslib=0.27.2=pyhd8ed1ab_1
---
>   - owslib=0.28.1=pyhd8ed1ab_0
425c432
<   - packaging=21.3=pyhd8ed1ab_0
---
>   - packaging=23.1=pyhd8ed1ab_0
427,428c434,435
<   - pandas=1.3.5=py38h43a58ef_0
<   - pandoc=2.19.2=h32600fe_1
---
>   - pandas=1.3.5=py39hde0f152_0
>   - pandoc=2.19.2=h32600fe_2
430,433c437,440
<   - panel=0.14.1=pyhd8ed1ab_0
<   - param=1.12.2=pyh6c4a22f_0
<   - paramiko=2.12.0=pyhd8ed1ab_0
<   - parquet-cpp=1.5.1=2
---
>   - panel=0.14.4=pyhd8ed1ab_0
>   - parallelio=2.5.10=mpi_mpich_h862c5c2_100
>   - param=1.13.0=pyh1a96a4e_0
>   - paramiko=3.2.0=pyhd8ed1ab_0
435c442
<   - partd=1.3.0=pyhd8ed1ab_0
---
>   - partd=1.4.0=pyhd8ed1ab_0
438d444
<   - pcre=8.45=h9c3ff4c_0
442,444c448,450
<   - pillow=9.2.0=py38h9eb91d8_3
<   - pint=0.20.1=pyhd8ed1ab_0
<   - pip=22.3.1=pyhd8ed1ab_0
---
>   - pillow=9.4.0=py39h2320bf1_1
>   - pint=0.21=pyhd8ed1ab_0
>   - pip=23.1.2=pyhd8ed1ab_0
447,448c453,454
<   - platformdirs=2.5.2=pyhd8ed1ab_1
<   - plotly=5.11.0=pyhd8ed1ab_0
---
>   - platformdirs=3.5.1=pyhd8ed1ab_0
>   - plotly=5.14.1=pyhd8ed1ab_0
451,453c457,459
<   - pooch=1.6.0=pyhd8ed1ab_0
<   - poppler=22.11.0=h92391eb_0
<   - poppler-data=0.4.11=hd8ed1ab_0
---
>   - pooch=1.7.0=pyha770c72_3
>   - poppler=23.01.0=h091648b_0
>   - poppler-data=0.4.12=hd8ed1ab_0
457,461c463,467
<   - pre-commit=2.20.0=py38h578d9bd_1
<   - proj=9.1.0=h93bde94_0
<   - prometheus_client=0.15.0=pyhd8ed1ab_0
<   - prompt-toolkit=3.0.33=pyha770c72_0
<   - prompt_toolkit=3.0.33=hd8ed1ab_0
---
>   - pre-commit=3.3.2=pyha770c72_0
>   - proj=9.1.1=h8ffa02c_2
>   - prometheus_client=0.17.0=pyhd8ed1ab_0
>   - prompt-toolkit=3.0.38=pyha770c72_0
>   - prompt_toolkit=3.0.38=hd8ed1ab_0
463c469
<   - protobuf=4.21.12=py38h8dc9893_0
---
>   - protobuf=4.21.12=py39h227be39_0
465c471
<   - psutil=5.9.4=py38h0a891b7_0
---
>   - psutil=5.9.5=py39h72bdee0_0
468c474,476
<   - pulseaudio=16.1=h126f2b6_0
---
>   - pulseaudio=16.1=hcb278e6_3
>   - pulseaudio-client=16.1=h5195f5e_3
>   - pulseaudio-daemon=16.1=ha8d29e2_3
470c478
<   - pyarrow=11.0.0=py38hf05218d_9_cpu
---
>   - pyarrow=10.0.1=py39he4327e9_25_cpu
476,478c484,486
<   - pycurl=7.45.1=py38he9e1d38_3
<   - pydantic=1.10.2=py38h0a891b7_1
<   - pydap=3.3.0=pyhd8ed1ab_0
---
>   - pycurl=7.45.1=py39h9297c8b_3
>   - pydantic=1.10.8=py39hd1e30aa_0
>   - pydap=3.4.0=pyhd8ed1ab_0
480,482c488,491
<   - pygeos=0.13=py38hafd38ec_2
<   - pygments=2.13.0=pyhd8ed1ab_0
<   - pyjwt=2.6.0=pyhd8ed1ab_0
---
>   - pygeos=0.14=py39hc9151fd_0
>   - pygments=2.15.1=pyhd8ed1ab_0
>   - pyjwt=2.7.0=pyhd8ed1ab_0
>   - pymbolic=2022.2=pyhd8ed1ab_0
485c494,495
<   - pynacl=1.5.0=py38h0a891b7_2
---
>   - pynacl=1.5.0=py39hb9d737c_2
>   - pyogrio=0.5.1=py39hbc5ff6d_0
488,491c498,501
<   - pyproj=3.4.0=py38hce0a2d1_2
<   - pyqt=5.15.7=py38h7492b6b_2
<   - pyqt5-sip=12.11.0=py38hfa26641_2
<   - pyrsistent=0.19.2=py38h0a891b7_0
---
>   - pyproj=3.5.0=py39hf8a5840_0
>   - pyqt=5.15.7=py39h5c7b992_3
>   - pyqt5-sip=12.11.0=py39h227be39_3
>   - pyrsistent=0.19.3=py39h72bdee0_0
494,497c504,506
<   - pyston_lite=2.3.4=py38h0a891b7_1
<   - pyston_lite_autoload=2.3.4=pyh44b312d_1
<   - pytest=7.2.0=pyhd8ed1ab_2
<   - python=3.8.16=he550d4f_1_cpython
---
>   - pytest=7.3.1=pyhd8ed1ab_0
>   - pytest-xdist=3.3.1=pyhd8ed1ab_0
>   - python=3.9.16=h2782a2a_0_cpython
499,501c508,510
<   - python-eccodes=1.4.2=py38h26c90d9_1
<   - python-fastjsonschema=2.16.2=pyhd8ed1ab_0
<   - python-json-logger=2.0.1=pyh9f0ad1d_0
---
>   - python-eccodes=1.5.1=py39h389d5f1_0
>   - python-fastjsonschema=2.17.1=pyhd8ed1ab_0
>   - python-json-logger=2.0.7=pyhd8ed1ab_0
503,506c512,515
<   - python-tzdata=2022.7=pyhd8ed1ab_0
<   - python_abi=3.8=3_cp38
<   - pytz=2022.6=pyhd8ed1ab_0
<   - pytz-deprecation-shim=0.1.0.post0=py38h578d9bd_3
---
>   - python-tzdata=2023.3=pyhd8ed1ab_0
>   - python_abi=3.9=3_cp39
>   - pytools=2022.1.14=pyhd8ed1ab_0
>   - pytz=2023.3=pyhd8ed1ab_0
508,521c517,530
<   - pyviz_comms=2.2.1=pyhd8ed1ab_1
<   - pywavelets=1.3.0=py38h26c90d9_2
<   - pyyaml=6.0=py38h0a891b7_5
<   - pyzmq=24.0.1=py38hfc09fa9_1
<   - qhull=2020.2=h4bd325d_2
<   - qt-main=5.15.6=hf6cd601_5
<   - qtconsole=5.4.0=pyhd8ed1ab_0
<   - qtconsole-base=5.4.0=pyha770c72_0
<   - qtpy=2.3.0=pyhd8ed1ab_0
<   - rasterio=1.3.4=py38h485b76c_0
<   - raven-hydro=3.0.4.322=ha46ed4c_2
<   - ravenpy=0.9.0=pyha21a80b_0
<   - re2=2023.02.02=hcb278e6_0
<   - readline=8.1.2=h0f457ee_0
---
>   - pyviz_comms=2.3.0=pyhd8ed1ab_0
>   - pywavelets=1.4.1=py39h389d5f1_0
>   - pyyaml=6.0=py39hb9d737c_5
>   - pyzmq=25.0.2=py39h0be026e_0
>   - qt-main=5.15.8=h5d23da1_6
>   - qtconsole=5.4.3=pyhd8ed1ab_0
>   - qtconsole-base=5.4.3=pyha770c72_0
>   - qtpy=2.3.1=pyhd8ed1ab_0
>   - rasterio=1.3.6=py39h09b1985_0
>   - raven-hydro=0.2.1=py39h8e2dbb5_1
>   - ravenpy=0.12.0=py39hf3d152e_2
>   - rdma-core=28.9=h59595ed_1
>   - re2=2023.03.02=h8c504da_0
>   - readline=8.2=h8228510_1
523c532
<   - requests=2.28.1=pyhd8ed1ab_1
---
>   - requests=2.31.0=pyhd8ed1ab_0
528,530c537,540
<   - rich=12.6.0=pyhd8ed1ab_0
<   - rioxarray=0.13.1=pyhd8ed1ab_0
<   - roocs-utils=0.6.3=pyh1a96a4e_0
---
>   - rfc3339-validator=0.1.4=pyhd8ed1ab_0
>   - rfc3986-validator=0.1.1=pyh9f0ad1d_0
>   - rioxarray=0.14.1=pyhd8ed1ab_0
>   - roocs-utils=0.6.4=pyh1a96a4e_0
532,548c542,560
<   - rtree=1.0.1=py38h02d302b_1
<   - ruamel.yaml=0.17.21=py38h0a891b7_2
<   - ruamel.yaml.clib=0.2.7=py38h0a891b7_0
<   - s2n=1.3.41=h3358134_0
<   - s3fs=2022.11.0=pyhd8ed1ab_0
<   - s3transfer=0.6.0=pyhd8ed1ab_0
<   - scikit-image=0.19.3=py38h8f669ce_2
<   - scikit-learn=1.1.3=py38h4c4ba11_1
<   - scipy=1.8.1=py38h8ce737c_3
<   - scp=0.14.4=pyhd8ed1ab_0
<   - selenium=4.6.0=pyhd8ed1ab_0
<   - semver=2.13.0=pyh9f0ad1d_0
<   - send2trash=1.8.0=pyhd8ed1ab_0
<   - setuptools=59.8.0=py38h578d9bd_1
<   - shapely=1.8.5=py38hafd38ec_2
<   - simpervisor=0.4=pyhd8ed1ab_0
<   - sip=6.7.5=py38hfa26641_0
---
>   - rtree=1.0.1=py39hb102c33_1
>   - ruamel.yaml=0.17.30=py39hd1e30aa_0
>   - ruamel.yaml.clib=0.2.7=py39h72bdee0_1
>   - s2n=1.3.44=h06160fa_0
>   - s3fs=2023.5.0=pyhd8ed1ab_0
>   - s3transfer=0.6.1=pyhd8ed1ab_0
>   - scikit-image=0.20.0=py39h7c7b5a8_1
>   - scikit-learn=1.2.2=py39hc236052_2
>   - scipy=1.9.1=py39h8ba3f38_0
>   - scp=0.14.5=pyhd8ed1ab_0
>   - seaborn=0.12.2=hd8ed1ab_0
>   - seaborn-base=0.12.2=pyhd8ed1ab_0
>   - selenium=4.9.1=pyhd8ed1ab_0
>   - semver=3.0.0=pyhd8ed1ab_0
>   - send2trash=1.8.2=pyh41d4057_0
>   - setuptools=59.8.0=py39hf3d152e_1
>   - shapely=2.0.1=py39hc9151fd_0
>   - simpervisor=1.0.0=pyhd8ed1ab_0
>   - sip=6.7.9=py39h3d6467e_0
552c564
<   - snappy=1.1.9=hbd366e4_2
---
>   - snappy=1.1.10=h9fff704_0
557,560c569,572
<   - sparse=0.13.0=pyhd8ed1ab_0
<   - spotpy=1.6.1=pyhd8ed1ab_0
<   - sqlalchemy=1.4.44=py38h0a891b7_0
<   - sqlite=3.40.0=h4ff8645_0
---
>   - sparse=0.14.0=pyhd8ed1ab_0
>   - spotpy=1.6.2=pyhd8ed1ab_0
>   - sqlalchemy=2.0.15=py39hd1e30aa_0
>   - sqlite=3.42.0=h2c6b66d_0
562c574
<   - statsmodels=0.13.5=py38h26c90d9_2
---
>   - statsmodels=0.14.0=py39h0f8d45d_1
565,566c577,578
<   - tenacity=8.1.0=pyhd8ed1ab_0
<   - terminado=0.17.0=pyh41d4057_0
---
>   - tenacity=8.2.2=pyhd8ed1ab_0
>   - terminado=0.17.1=pyh41d4057_0
569c581
<   - tifffile=2022.10.10=pyhd8ed1ab_0
---
>   - tifffile=2023.4.12=pyhd8ed1ab_0
576,578c588,590
<   - tornado=6.1=py38h0a891b7_3
<   - tqdm=4.64.1=pyhd8ed1ab_0
<   - traitlets=5.6.0=pyhd8ed1ab_0
---
>   - tornado=6.3.2=py39hd1e30aa_0
>   - tqdm=4.65.0=pyhd8ed1ab_1
>   - traitlets=5.9.0=pyhd8ed1ab_0
580,589c592,602
<   - trio=0.21.0=py38h578d9bd_0
<   - trio-websocket=0.9.2=pyhd8ed1ab_0
<   - typing-extensions=4.4.0=hd8ed1ab_0
<   - typing_extensions=4.4.0=pyha770c72_0
<   - tzcode=2022g=h166bdaf_0
<   - tzdata=2022g=h191b570_0
<   - tzlocal=4.2=py38h578d9bd_2
<   - ujson=5.7.0=py38h8dc9893_0
<   - ukkonen=1.0.1=py38h43d8883_3
<   - unicodedata2=15.0.0=py38h0a891b7_0
---
>   - trio=0.22.0=py39hf3d152e_1
>   - trio-websocket=0.10.2=pyhd8ed1ab_0
>   - typing-extensions=4.6.2=hd8ed1ab_0
>   - typing_extensions=4.6.2=pyha770c72_0
>   - tzcode=2023c=h0b41bf4_0
>   - tzdata=2023c=h71feb2d_0
>   - tzlocal=5.0.1=py39hf3d152e_0
>   - ucx=1.14.1=hf587318_1
>   - ujson=5.7.0=py39h227be39_0
>   - ukkonen=1.0.1=py39hf939315_3
>   - unicodedata2=15.0.0=py39hb9d737c_0
591c604
<   - urllib3=1.26.13=pyhd8ed1ab_0
---
>   - urllib3=1.26.15=pyhd8ed1ab_0
593,594c606,607
<   - validators=0.18.2=pyhd3deb0d_0
<   - virtualenv=20.17.0=py38h578d9bd_0
---
>   - validators=0.20.0=pyhd8ed1ab_0
>   - virtualenv=20.23.0=pyhd8ed1ab_0
596,597c609,610
<   - watchdog=2.1.9=py38h578d9bd_1
<   - wcwidth=0.2.5=pyh9f0ad1d_2
---
>   - watchdog=3.0.0=py39hf3d152e_0
>   - wcwidth=0.2.6=pyhd8ed1ab_0
600,602c613,615
<   - websocket-client=1.4.2=pyhd8ed1ab_0
<   - websockets=10.4=py38h0a891b7_1
<   - werkzeug=2.2.2=pyhd8ed1ab_0
---
>   - websocket-client=1.5.2=pyhd8ed1ab_0
>   - websockets=11.0.3=py39hd1e30aa_0
>   - werkzeug=2.3.4=pyhd8ed1ab_0
604,606c617,619
<   - wheel=0.38.4=pyhd8ed1ab_0
<   - widgetsnbextension=4.0.3=pyhd8ed1ab_0
<   - wrapt=1.14.1=py38h0a891b7_1
---
>   - wheel=0.40.0=pyhd8ed1ab_0
>   - widgetsnbextension=4.0.7=pyhd8ed1ab_0
>   - wrapt=1.15.0=py39h72bdee0_0
608c621
<   - xarray=2022.10.0=pyhd8ed1ab_0
---
>   - xarray=2023.1.0=pyhd8ed1ab_0
614c627
<   - xclim=0.39.0=pyhd8ed1ab_0
---
>   - xclim=0.43.0=py39hf3d152e_1
616c629
<   - xesmf=0.6.3=pyhd8ed1ab_1
---
>   - xesmf=0.7.1=pyhd8ed1ab_0
618c631
<   - xeus-python=0.15.8=py38hfbd4bf9_1
---
>   - xeus-python=0.15.9=py39h7633fee_0
621c634
<   - xeus-zmq=1.0.2=h0541b36_2
---
>   - xeus-zmq=1.0.3=h0541b36_0
622a636
>   - xkeyboard-config=2.38=h0b41bf4_0
624c638
<   - xlsxwriter=3.0.3=pyhd8ed1ab_0
---
>   - xlsxwriter=3.1.2=pyhd8ed1ab_0
630,633c644,647
<   - 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-libice=1.1.1=hd590300_0
>   - xorg-libsm=1.2.4=h7391055_0
>   - xorg-libx11=1.8.4=h0b41bf4_0
>   - xorg-libxau=1.0.11=hd590300_0
636c650
<   - xorg-libxext=1.3.4=h7f98852_1
---
>   - xorg-libxext=1.3.4=h0b41bf4_2
644c658
<   - xorg-xextproto=7.3.0=h7f98852_1002
---
>   - xorg-xextproto=7.3.0=h0b41bf4_1003
647c661
<   - xrft=1.0.0=pyhd8ed1ab_0
---
>   - xrft=1.0.1=pyhd8ed1ab_0
649c663
<   - xyzservices=2022.9.0=pyhd8ed1ab_0
---
>   - xyzservices=2023.5.0=pyhd8ed1ab_1
650a665
>   - y-py=0.5.9=py39h50f1755_0
652,653c667,669
<   - yarl=1.8.1=py38h0a891b7_0
<   - zarr=2.13.3=pyhd8ed1ab_0
---
>   - yarl=1.9.2=py39hd1e30aa_0
>   - ypy-websocket=0.8.2=pyhd8ed1ab_0
>   - zarr=2.14.2=pyhd8ed1ab_0
656,657c672,673
<   - zict=2.2.0=pyhd8ed1ab_0
<   - zipp=3.11.0=pyhd8ed1ab_0
---
>   - zict=3.0.0=pyhd8ed1ab_0
>   - zipp=3.15.0=pyhd8ed1ab_0
659,660c675,676
<   - zlib-ng=2.0.6=h166bdaf_0
<   - zstd=1.5.2=h6239696_4
---
>   - zlib-ng=2.0.7=h0b41bf4_0
>   - zstd=1.5.2=h3eb15da_6
662,673c678,701
<     - astunparse==1.6.3
<     - colour==0.1.5
<     - geojson==2.5.0
<     - ipython-blocking==0.3.1
<     - jupyterlab-logout==0.5.0
<     - jupyterlab-tabular-data-editor==1.0.0
<     - jupyternotify==0.1.15
<     - pixiedust==1.1.19
<     - pytest-tornasync==0.6.0.post2
<     - xmltodict==0.13.0
<     - xncml==0.2
<     - xsdata==22.12
---
>       - arrow==1.2.3
>       - astunparse==1.6.3
>       - colour==0.1.5
>       - dnspython==2.3.0
>       - email-validator==2.0.0.post2
>       - fqdn==1.5.1
>       - geojson==3.0.1
>       - hsclient==0.3.3
>       - hsmodels==0.5.5
>       - ipython-blocking==0.3.1
>       - isodate==0.6.1
>       - isoduration==20.11.0
>       - jsonpointer==2.3
>       - jupyterlab-logout==0.5.0
>       - jupyterlab-tabular-data-editor==1.0.0
>       - jupyternotify==0.1.15
>       - pixiedust==1.1.19
>       - pytest-tornasync==0.6.0.post2
>       - rdflib==5.0.0
>       - uri-template==1.2.0
>       - webcolors==1.13
>       - xmltodict==0.13.0
>       - xncml==0.2
>       - xsdata==23.5
```


Full new conda env export:

[230530-1-conda-env-export.yml.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/11621130/230530-1-conda-env-export.yml.txt)
```
name: birdy
channels:
  - cdat
  - conda-forge
  - defaults
dependencies:
  - _libgcc_mutex=0.1=conda_forge
  - _openmp_mutex=4.5=2_gnu
  - affine=2.4.0=pyhd8ed1ab_0
  - aiobotocore=2.5.0=pyhd8ed1ab_0
  - aiofiles=22.1.0=pyhd8ed1ab_0
  - aiohttp=3.8.4=py39h72bdee0_0
  - aioitertools=0.11.0=pyhd8ed1ab_0
  - aiosignal=1.3.1=pyhd8ed1ab_0
  - aiosqlite=0.19.0=pyhd8ed1ab_0
  - alembic=1.11.1=pyhd8ed1ab_0
  - alsa-lib=1.2.8=h166bdaf_0
  - altair=5.0.1=pyhd8ed1ab_0
  - ansi2html=1.8.0=py39hf3d152e_1
  - anyio=3.6.1=pyhd8ed1ab_1
  - aom=3.5.0=h27087fc_0
  - appdirs=1.4.4=pyh9f0ad1d_0
  - argon2-cffi=21.3.0=pyhd8ed1ab_0
  - argon2-cffi-bindings=21.2.0=py39hb9d737c_3
  - asciitree=0.3.3=py_2
  - astor=0.8.1=pyh9f0ad1d_0
  - asttokens=2.2.1=pyhd8ed1ab_0
  - async-timeout=4.0.2=pyhd8ed1ab_0
  - async_generator=1.10=py_0
  - attr=2.5.1=h166bdaf_1
  - attrs=23.1.0=pyh71513ae_1
  - aws-c-auth=0.6.27=he072965_1
  - aws-c-cal=0.5.26=hf677bf3_1
  - aws-c-common=0.8.19=hd590300_0
  - aws-c-compression=0.2.16=hbad4bc6_7
  - aws-c-event-stream=0.2.20=hb4b372c_7
  - aws-c-http=0.7.7=h2632f9a_4
  - aws-c-io=0.13.21=h9fef7b8_5
  - aws-c-mqtt=0.8.11=h2282364_1
  - aws-c-s3=0.3.0=hcb5a9b2_2
  - aws-c-sdkutils=0.1.9=hbad4bc6_2
  - aws-checksums=0.1.14=hbad4bc6_7
  - aws-crt-cpp=0.20.2=he0fdcb3_0
  - aws-sdk-cpp=1.10.57=h059227d_13
  - babel=2.12.1=pyhd8ed1ab_1
  - backcall=0.2.0=pyh9f0ad1d_0
  - backports=1.0=pyhd8ed1ab_3
  - backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0
  - base58=2.1.1=pyhd8ed1ab_0
  - bcrypt=3.2.2=py39hb9d737c_1
  - beautifulsoup4=4.12.2=pyha770c72_0
  - bias_correction=0.4=pyhd8ed1ab_0
  - birdy=0.8.4=pyh1a96a4e_0
  - bleach=6.0.0=pyhd8ed1ab_0
  - blinker=1.6.2=pyhd8ed1ab_0
  - blosc=1.21.4=h0f2a231_0
  - bokeh=2.4.3=pyhd8ed1ab_3
  - boltons=23.0.0=pyhd8ed1ab_0
  - boost-cpp=1.78.0=h5adbc97_2
  - boto3=1.26.76=pyhd8ed1ab_0
  - botocore=1.29.76=pyhd8ed1ab_0
  - bottleneck=1.3.7=py39h389d5f1_0
  - branca=0.6.0=pyhd8ed1ab_0
  - brotli=1.0.9=h166bdaf_8
  - brotli-bin=1.0.9=h166bdaf_8
  - brotlipy=0.7.0=py39hb9d737c_1005
  - brunsli=0.1=h9c3ff4c_0
  - bzip2=1.0.8=h7f98852_4
  - c-ares=1.19.1=hd590300_0
  - c-blosc2=2.9.2=hb4ffafa_0
  - ca-certificates=2023.5.7=hbcca054_0
  - cached-property=1.5.2=hd8ed1ab_1
  - cached_property=1.5.2=pyha770c72_1
  - cachetools=5.3.0=pyhd8ed1ab_0
  - cairo=1.16.0=ha61ee94_1014
  - cartopy=0.21.1=py39h6e7ad6e_0
  - cattrs=22.2.0=pyhd8ed1ab_0
  - cdat_info=8.2.1=pyhd8ed1ab_2
  - cdms2=3.1.5=py39h36de48d_15
  - cdtime=3.1.4=py39he83c29a_7
  - certifi=2023.5.7=pyhd8ed1ab_0
  - certipy=0.1.3=py_0
  - cf_xarray=0.8.0=pyhd8ed1ab_0
  - cffi=1.15.1=py39he91dace_3
  - cfgrib=0.9.10.4=pyhd8ed1ab_0
  - cfgv=3.3.1=pyhd8ed1ab_0
  - cfitsio=4.2.0=hd9d235c_0
  - cftime=1.6.2=py39h2ae25f5_1
  - charls=2.4.2=h59595ed_0
  - charset-normalizer=2.1.1=pyhd8ed1ab_0
  - click=8.1.3=unix_pyhd8ed1ab_2
  - click-plugins=1.1.1=py_0
  - cligj=0.7.2=pyhd8ed1ab_1
  - climpred=2.3.0=pyhd8ed1ab_0
  - clisops=0.9.6=pyh1a96a4e_0
  - cloudpickle=2.2.1=pyhd8ed1ab_0
  - colorama=0.4.6=pyhd8ed1ab_0
  - colorcet=3.0.1=pyhd8ed1ab_0
  - comm=0.1.3=pyhd8ed1ab_0
  - configurable-http-proxy=4.5.4=he2f69ee_2
  - contourpy=1.0.7=py39h4b4f3f3_0
  - coverage=7.2.7=py39hd1e30aa_0
  - cryptography=40.0.2=py39h079d5ae_0
  - curl=8.1.2=h409715c_0
  - cycler=0.11.0=pyhd8ed1ab_0
  - cytoolz=0.12.0=py39hb9d737c_1
  - dash=2.9.3=pyhd8ed1ab_2
  - dask=2023.5.1=pyhd8ed1ab_0
  - dask-core=2023.5.1=pyhd8ed1ab_0
  - dask-labextension=6.1.0=pyhd8ed1ab_0
  - dataclasses=0.8=pyhc8e2a94_3
  - datashader=0.14.4=pyh1a96a4e_0
  - datashape=0.5.4=py_1
  - dav1d=1.2.0=hd590300_0
  - dbus=1.13.6=h5008d03_3
  - debugpy=1.6.7=py39h227be39_0
  - decorator=5.1.1=pyhd8ed1ab_0
  - defusedxml=0.7.1=pyhd8ed1ab_0
  - descartes=1.1.0=py_4
  - dill=0.3.6=pyhd8ed1ab_1
  - distarray=2.12.2=pyh050c7b8_4
  - distlib=0.3.6=pyhd8ed1ab_0
  - distributed=2023.5.1=pyhd8ed1ab_0
  - docopt=0.6.2=py_1
  - docrep=0.3.2=pyh44b312d_0
  - eccodes=2.28.0=h7513371_1
  - elfutils=0.189=hde5d1a3_0
  - entrypoints=0.4=pyhd8ed1ab_0
  - eofs=1.4.0=py_0
  - esgf-compute-api=2.3.9=0_h1234567_
  - esgf-pyclient=0.3.1=pyh1a96a4e_2
  - esmf=8.4.0=mpi_mpich_hc592774_104
  - esmpy=8.4.0=mpi_mpich_py39h3088dd8_102
  - exceptiongroup=1.1.1=pyhd8ed1ab_0
  - execnet=1.9.0=pyhd8ed1ab_0
  - executing=1.2.0=pyhd8ed1ab_0
  - expat=2.5.0=hcb278e6_1
  - fasteners=0.17.3=pyhd8ed1ab_0
  - fastprogress=1.0.3=pyhd8ed1ab_0
  - fftw=3.3.10=nompi_hc118613_107
  - filelock=3.12.0=pyhd8ed1ab_0
  - findlibs=0.0.5=pyhd8ed1ab_0
  - fiona=1.9.1=py39hbc5ff6d_0
  - flask=2.3.2=pyhd8ed1ab_0
  - flit-core=3.9.0=pyhd8ed1ab_0
  - flox=0.7.2=pyhd8ed1ab_0
  - folium=0.14.0=pyhd8ed1ab_0
  - font-ttf-dejavu-sans-mono=2.37=hab24e00_0
  - font-ttf-inconsolata=3.000=h77eed37_0
  - font-ttf-source-code-pro=2.038=h77eed37_0
  - font-ttf-ubuntu=0.83=hab24e00_0
  - fontconfig=2.14.2=h14ed4e7_0
  - fonts-conda-ecosystem=1=0
  - fonts-conda-forge=1=0
  - fonttools=4.39.4=py39hd1e30aa_0
  - freeglut=3.2.2=h9c3ff4c_1
  - freetype=2.12.1=hca18f0e_1
  - freexl=1.0.6=h166bdaf_1
  - frozenlist=1.3.3=py39hb9d737c_0
  - fsspec=2023.5.0=pyh1a96a4e_0
  - funcsigs=1.0.2=py_3
  - future=0.18.3=pyhd8ed1ab_0
  - g2clib=1.6.3=hbecde78_1
  - gcsfs=2023.5.0=pyhd8ed1ab_0
  - gdal=3.6.2=py39hc6cd174_6
  - geckodriver=0.33.0=hd2f7af9_0
  - geographiclib=1.52=pyhd8ed1ab_0
  - geopandas=0.13.0=pyhd8ed1ab_0
  - geopandas-base=0.13.0=pyha770c72_0
  - geopy=2.3.0=pyhd8ed1ab_0
  - geos=3.11.1=h27087fc_0
  - geotiff=1.7.1=h7a142b4_6
  - geoviews=1.9.6=pyhd8ed1ab_0
  - geoviews-core=1.9.6=pyha770c72_0
  - gettext=0.21.1=h27087fc_0
  - gflags=2.2.2=he1b5a44_1004
  - giflib=5.2.1=h0b41bf4_3
  - gitdb=4.0.10=pyhd8ed1ab_0
  - gitpython=3.1.31=pyhd8ed1ab_0
  - glib=2.76.3=hfc55251_0
  - glib-tools=2.76.3=hfc55251_0
  - glog=0.6.0=h6f12383_0
  - gnutls=3.7.8=hf3e180e_0
  - google-api-core=2.11.0=pyhd8ed1ab_0
  - google-auth=2.19.0=pyh1a96a4e_0
  - google-auth-oauthlib=1.0.0=pyhd8ed1ab_0
  - google-cloud-core=2.3.2=pyhd8ed1ab_0
  - google-cloud-storage=2.9.0=pyh1a96a4e_0
  - google-crc32c=1.1.2=py39h8db88ab_4
  - google-resumable-media=2.5.0=pyhd8ed1ab_0
  - googleapis-common-protos=1.57.1=pyhd8ed1ab_0
  - graphite2=1.3.13=h58526e2_1001
  - greenlet=2.0.2=py39h3d6467e_1
  - grpcio=1.54.2=py39h227be39_2
  - gst-plugins-base=1.22.0=h4243ec0_2
  - gstreamer=1.22.0=h25f0c4b_2
  - gstreamer-orc=0.4.34=hd590300_0
  - h11=0.14.0=pyhd8ed1ab_0
  - h5netcdf=1.1.0=pyhd8ed1ab_1
  - h5py=3.8.0=mpi_mpich_py39hadaddcd_0
  - harfbuzz=6.0.0=h8e241bc_0
  - haversine=2.8.0=pyhd8ed1ab_0
  - hdf4=4.2.15=h9772cbc_5
  - hdf5=1.12.2=mpi_mpich_h5d83325_1
  - holoviews=1.16.0=pyhd8ed1ab_0
  - hvplot=0.8.3=pyhd8ed1ab_0
  - icu=70.1=h27087fc_0
  - identify=2.5.24=pyhd8ed1ab_0
  - idna=3.4=pyhd8ed1ab_0
  - imagecodecs=2023.1.23=py39hd061359_0
  - imageio=2.28.1=pyh24c5eb1_0
  - importlib-metadata=6.6.0=pyha770c72_0
  - importlib-resources=5.12.0=pyhd8ed1ab_0
  - importlib_metadata=6.6.0=hd8ed1ab_0
  - importlib_resources=5.12.0=pyhd8ed1ab_0
  - iniconfig=2.0.0=pyhd8ed1ab_0
  - intake=0.7.0=pyhd8ed1ab_0
  - intake-esm=2021.8.17=pyhd8ed1ab_0
  - intake-geopandas=0.4.0=pyhd8ed1ab_0
  - intake-thredds=2022.8.19=pyhd8ed1ab_0
  - intake-xarray=0.7.0=pyhd8ed1ab_0
  - ipykernel=6.23.1=pyh210e3f2_0
  - ipyleaflet=0.17.2=pyhd8ed1ab_0
  - ipython=8.13.2=pyh41d4057_0
  - ipython_genutils=0.2.0=py_1
  - ipywidgets=8.0.6=pyhd8ed1ab_0
  - itsdangerous=2.1.2=pyhd8ed1ab_0
  - jack=1.9.22=h11f4161_0
  - jasper=2.0.33=h0ff4b12_1
  - jedi=0.18.2=pyhd8ed1ab_0
  - jinja2=3.1.2=pyhd8ed1ab_1
  - jmespath=1.0.1=pyhd8ed1ab_0
  - joblib=1.2.0=pyhd8ed1ab_0
  - jpeg=9e=h0b41bf4_3
  - json-c=0.16=hc379101_0
  - json5=0.9.5=pyh9f0ad1d_0
  - jsonpickle=2.2.0=pyhd8ed1ab_0
  - jsonschema=4.17.3=pyhd8ed1ab_0
  - jupyter=1.0.0=py39hf3d152e_8
  - jupyter-archive=3.3.4=pyhd8ed1ab_1
  - jupyter-dash=0.4.2=pyhd8ed1ab_1
  - jupyter-resource-usage=0.7.1=pyhd8ed1ab_0
  - jupyter-server-mathjax=0.2.6=pyh5bfe37b_1
  - jupyter-server-proxy=4.0.0=pyhd8ed1ab_0
  - jupyter_bokeh=3.0.5=pyhd8ed1ab_0
  - jupyter_client=7.4.1=pyhd8ed1ab_0
  - jupyter_console=6.6.3=pyhd8ed1ab_0
  - jupyter_core=5.3.0=py39hf3d152e_0
  - jupyter_events=0.6.3=pyhd8ed1ab_0
  - jupyter_server=1.23.6=pyhd8ed1ab_0
  - jupyter_server_fileid=0.9.0=pyhd8ed1ab_0
  - jupyter_server_ydoc=0.8.0=pyhd8ed1ab_0
  - jupyter_telemetry=0.1.0=pyhd8ed1ab_1
  - jupyter_ydoc=0.2.3=pyhd8ed1ab_0
  - jupyterhub=4.0.0=pyh2a2186d_0
  - jupyterhub-base=4.0.0=pyh2a2186d_0
  - jupyterlab=3.6.3=pyhd8ed1ab_0
  - jupyterlab-git=0.41.0=pyhd8ed1ab_1
  - jupyterlab-system-monitor=0.8.0=pyhd8ed1ab_2
  - jupyterlab-topbar=0.6.1=pyhd8ed1ab_2
  - jupyterlab_pygments=0.2.2=pyhd8ed1ab_0
  - jupyterlab_server=2.22.1=pyhd8ed1ab_0
  - jupyterlab_widgets=3.0.7=pyhd8ed1ab_1
  - jupytext=1.14.5=pyhcff175f_0
  - jxrlib=1.1=h7f98852_2
  - kealib=1.5.0=ha7026e8_0
  - keyutils=1.6.1=h166bdaf_0
  - kiwisolver=1.4.4=py39hf939315_1
  - krb5=1.20.1=h81ceb04_0
  - lame=3.100=h166bdaf_1003
  - lazy-object-proxy=1.9.0=py39h72bdee0_0
  - lazy_loader=0.2=pyhd8ed1ab_0
  - lcms2=2.15=hfd0df8a_0
  - ld_impl_linux-64=2.40=h41732ed_0
  - lerc=4.0.0=h27087fc_0
  - libabseil=20230125.2=cxx17_h59595ed_2
  - libaec=1.0.6=hcb278e6_1
  - libarchive=3.6.2=h3d51595_0
  - libarrow=10.0.1=hf815326_25_cpu
  - libavif=0.11.1=hff004cb_1
  - libblas=3.9.0=16_linux64_openblas
  - libbrotlicommon=1.0.9=h166bdaf_8
  - libbrotlidec=1.0.9=h166bdaf_8
  - libbrotlienc=1.0.9=h166bdaf_8
  - libcap=2.67=he9d0100_0
  - libcblas=3.9.0=16_linux64_openblas
  - libcdms=3.1.2=hf94f14b_119
  - libcf=1.0.3=py39h6c807ef_115
  - libclang=15.0.7=default_h7634d5b_2
  - libclang13=15.0.7=default_h9986a30_2
  - libcrc32c=1.1.2=h9c3ff4c_0
  - libcups=2.3.3=h36d4200_3
  - libcurl=8.1.2=h409715c_0
  - libdb=6.2.32=h9c3ff4c_0
  - libdeflate=1.17=h0b41bf4_0
  - libdrm=2.4.114=h166bdaf_0
  - libdrs=3.1.2=hf593df3_118
  - libdrs_f=3.1.2=h7e76ec7_114
  - libedit=3.1.20191231=he28a2e2_2
  - libev=4.33=h516909a_1
  - libevent=2.1.10=h28343ad_4
  - libexpat=2.5.0=hcb278e6_1
  - libffi=3.4.2=h7f98852_5
  - libflac=1.4.2=h27087fc_0
  - libgcc-ng=12.2.0=h65d4601_19
  - libgcrypt=1.10.1=h166bdaf_0
  - libgdal=3.6.2=h8c90c07_6
  - libgfortran-ng=12.2.0=h69a702a_19
  - libgfortran5=12.2.0=h337968e_19
  - libglib=2.76.3=hebfc3b9_0
  - libglu=9.0.0=he1b5a44_1001
  - libgomp=12.2.0=h65d4601_19
  - libgoogle-cloud=2.10.1=hac9eb74_1
  - libgpg-error=1.46=h620e276_0
  - libgrpc=1.54.2=hb20ce57_2
  - libiconv=1.17=h166bdaf_0
  - libidn2=2.3.4=h166bdaf_0
  - libkml=1.3.0=h37653c0_1015
  - liblapack=3.9.0=16_linux64_openblas
  - libllvm14=14.0.6=hcd5def8_2
  - libllvm15=15.0.7=hadd5161_1
  - libllvm16=16.0.1=hadd5161_0
  - libmicrohttpd=0.9.76=h87ba234_0
  - libnetcdf=4.8.1=mpi_mpich_hcd871d9_6
  - libnghttp2=1.52.0=h61bc06f_0
  - libnsl=2.0.0=h7f98852_0
  - libnuma=2.0.16=h0b41bf4_1
  - libogg=1.3.4=h7f98852_1
  - libopenblas=0.3.21=pthreads_h78a6416_3
  - libopus=1.3.1=h7f98852_1
  - libpciaccess=0.17=h166bdaf_0
  - libpng=1.6.39=h753d276_0
  - libpq=15.2=hb675445_0
  - libprotobuf=3.21.12=h3eb15da_0
  - librttopo=1.1.0=ha49c73b_12
  - libsndfile=1.2.0=hb75c966_0
  - libsodium=1.0.18=h36c2ea0_1
  - libspatialindex=1.9.3=h9c3ff4c_4
  - libspatialite=5.0.1=h221c8f1_23
  - libsqlite=3.42.0=h2797004_0
  - libssh2=1.10.0=hf14f497_3
  - libstdcxx-ng=12.2.0=h46fd767_19
  - libsystemd0=253=h8c4010b_1
  - libtasn1=4.19.0=h166bdaf_0
  - libthrift=0.18.1=h5e4af38_0
  - libtiff=4.5.0=h6adf6a1_2
  - libtool=2.4.7=h27087fc_0
  - libudev1=253=h0b41bf4_1
  - libunistring=0.9.10=h7f98852_0
  - libutf8proc=2.8.0=h166bdaf_0
  - libuuid=2.38.1=h0b41bf4_0
  - libuv=1.44.2=h166bdaf_0
  - libvorbis=1.3.7=h9c3ff4c_0
  - libwebp-base=1.3.0=h0b41bf4_0
  - libxcb=1.13=h7f98852_1004
  - libxkbcommon=1.5.0=h79f4944_1
  - libxml2=2.10.3=hca2bb57_4
  - libxslt=1.1.37=h873f0b0_0
  - libzip=1.9.2=hc929e4a_1
  - libzlib=1.2.13=h166bdaf_4
  - libzopfli=1.0.3=h9c3ff4c_0
  - llvmlite=0.40.0=py39h174d805_0
  - lmoments3=1.0.5=pyhd8ed1ab_0
  - locket=1.0.0=pyhd8ed1ab_0
  - loguru=0.7.0=py39hf3d152e_0
  - lxml=4.9.2=py39h14694de_0
  - lz4=4.3.2=py39h724f13c_0
  - lz4-c=1.9.4=hcb278e6_0
  - lzo=2.10=h516909a_1000
  - mako=1.2.4=pyhd8ed1ab_0
  - mamba_gator=5.2.1=pyhd8ed1ab_0
  - mapclassify=2.5.0=pyhd8ed1ab_1
  - markdown=3.4.3=pyhd8ed1ab_0
  - markdown-it-py=2.2.0=pyhd8ed1ab_0
  - markupsafe=2.1.2=py39h72bdee0_0
  - matplotlib=3.7.1=py39hf3d152e_0
  - matplotlib-base=3.7.1=py39he190548_0
  - matplotlib-inline=0.1.6=pyhd8ed1ab_0
  - mdit-py-plugins=0.3.5=pyhd8ed1ab_0
  - mdurl=0.1.0=pyhd8ed1ab_0
  - memory_profiler=0.61.0=pyhd8ed1ab_0
  - mesalib=23.0.2=h3855f93_0
  - mistune=2.0.5=pyhd8ed1ab_0
  - mpg123=1.31.3=hcb278e6_0
  - mpi=1.0=mpich
  - mpi4py=3.1.4=py39h32b9844_0
  - mpich=4.0.3=h846660c_100
  - msgpack-python=1.0.5=py39h4b4f3f3_0
  - multidict=6.0.4=py39h72bdee0_0
  - multipledispatch=0.6.0=py_0
  - multiprocess=0.70.14=py39hb9d737c_3
  - munch=3.0.0=pyhd8ed1ab_0
  - munkres=1.1.4=pyh9f0ad1d_0
  - myproxyclient=2.1.0=pyhd8ed1ab_2
  - mysql-common=8.0.32=hf1915f5_2
  - mysql-libs=8.0.32=hca2cd23_2
  - nbclassic=1.0.0=pyhb4ecaf3_1
  - nbclient=0.7.4=pyhd8ed1ab_0
  - nbconvert=7.4.0=pyhd8ed1ab_0
  - nbconvert-core=7.4.0=pyhd8ed1ab_0
  - nbconvert-pandoc=7.4.0=pyhd8ed1ab_0
  - nbdime=3.2.1=pyhd8ed1ab_0
  - nbformat=5.8.0=pyhd8ed1ab_0
  - nbresuse=0.4.0=pyhd8ed1ab_0
  - nbval=0.9.6=pyh9f0ad1d_0
  - nc-time-axis=1.4.1=pyhd8ed1ab_0
  - ncurses=6.3=h27087fc_1
  - nest-asyncio=1.5.6=pyhd8ed1ab_0
  - nested_dict=1.61=pyhd3deb0d_0
  - netcdf-fortran=4.6.0=mpi_mpich_h1e13492_2
  - netcdf4=1.6.2=nompi_py39hfaa66c4_100
  - nettle=3.8.1=hc379101_1
  - networkx=3.1=pyhd8ed1ab_0
  - nodeenv=1.8.0=pyhd8ed1ab_0
  - nodejs=18.15.0=h8d033a5_0
  - notebook=6.5.4=pyha770c72_0
  - notebook-shim=0.2.3=pyhd8ed1ab_0
  - nspr=4.35=h27087fc_0
  - nss=3.89=he45b914_0
  - numba=0.57.0=py39hb75a051_0
  - numcodecs=0.11.0=py39h227be39_1
  - numpy=1.23.5=py39h3d75532_0
  - numpy_groupies=0.9.22=pyhd8ed1ab_0
  - oauthlib=3.2.2=pyhd8ed1ab_0
  - openblas=0.3.21=pthreads_h320a7e8_3
  - openjpeg=2.5.0=hfec8fc6_2
  - openssl=3.1.1=hd590300_0
  - orc=1.8.3=hfdbbad2_0
  - outcome=1.2.0=pyhd8ed1ab_0
  - owslib=0.28.1=pyhd8ed1ab_0
  - p11-kit=0.24.1=hc5aa10d_0
  - packaging=23.1=pyhd8ed1ab_0
  - pamela=1.0.0=py_0
  - pandas=1.3.5=py39hde0f152_0
  - pandoc=2.19.2=h32600fe_2
  - pandocfilters=1.5.0=pyhd8ed1ab_0
  - panel=0.14.4=pyhd8ed1ab_0
  - parallelio=2.5.10=mpi_mpich_h862c5c2_100
  - param=1.13.0=pyh1a96a4e_0
  - paramiko=3.2.0=pyhd8ed1ab_0
  - parso=0.8.3=pyhd8ed1ab_0
  - partd=1.4.0=pyhd8ed1ab_0
  - pathos=0.3.0=pyhd8ed1ab_0
  - patsy=0.5.3=pyhd8ed1ab_0
  - pcre2=10.40=hc3806b6_0
  - pexpect=4.8.0=pyh1a96a4e_2
  - pickleshare=0.7.5=py_1003
  - pillow=9.4.0=py39h2320bf1_1
  - pint=0.21=pyhd8ed1ab_0
  - pip=23.1.2=pyhd8ed1ab_0
  - pixman=0.40.0=h36c2ea0_0
  - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_0
  - platformdirs=3.5.1=pyhd8ed1ab_0
  - plotly=5.14.1=pyhd8ed1ab_0
  - pluggy=1.0.0=pyhd8ed1ab_5
  - ply=3.11=py_1
  - pooch=1.7.0=pyha770c72_3
  - poppler=23.01.0=h091648b_0
  - poppler-data=0.4.12=hd8ed1ab_0
  - postgresql=15.2=h3248436_0
  - pox=0.3.2=pyhd8ed1ab_0
  - ppft=1.7.6.6=pyhd8ed1ab_0
  - pre-commit=3.3.2=pyha770c72_0
  - proj=9.1.1=h8ffa02c_2
  - prometheus_client=0.17.0=pyhd8ed1ab_0
  - prompt-toolkit=3.0.38=pyha770c72_0
  - prompt_toolkit=3.0.38=hd8ed1ab_0
  - properscoring=0.1=py_0
  - protobuf=4.21.12=py39h227be39_0
  - pscript=0.7.7=pyhd8ed1ab_0
  - psutil=5.9.5=py39h72bdee0_0
  - pthread-stubs=0.4=h36c2ea0_1001
  - ptyprocess=0.7.0=pyhd3deb0d_0
  - pulseaudio=16.1=hcb278e6_3
  - pulseaudio-client=16.1=h5195f5e_3
  - pulseaudio-daemon=16.1=ha8d29e2_3
  - pure_eval=0.2.2=pyhd8ed1ab_0
  - pyarrow=10.0.1=py39he4327e9_25_cpu
  - pyasn1=0.4.8=py_0
  - pyasn1-modules=0.2.7=py_0
  - pycparser=2.21=pyhd8ed1ab_0
  - pyct=0.4.6=py_0
  - pyct-core=0.4.6=py_0
  - pycurl=7.45.1=py39h9297c8b_3
  - pydantic=1.10.8=py39hd1e30aa_0
  - pydap=3.4.0=pyhd8ed1ab_0
  - pydeck=0.8.0=pyhd8ed1ab_0
  - pygeos=0.14=py39hc9151fd_0
  - pygments=2.15.1=pyhd8ed1ab_0
  - pyjwt=2.7.0=pyhd8ed1ab_0
  - pymbolic=2022.2=pyhd8ed1ab_0
  - pymetalink=6.4=pyhd8ed1ab_0
  - pympler=1.0.1=pyhd8ed1ab_0
  - pynacl=1.5.0=py39hb9d737c_2
  - pyogrio=0.5.1=py39hbc5ff6d_0
  - pyopenssl=23.1.1=pyhd8ed1ab_0
  - pyparsing=3.0.9=pyhd8ed1ab_0
  - pyproj=3.5.0=py39hf8a5840_0
  - pyqt=5.15.7=py39h5c7b992_3
  - pyqt5-sip=12.11.0=py39h227be39_3
  - pyrsistent=0.19.3=py39h72bdee0_0
  - pyshp=2.3.1=pyhd8ed1ab_0
  - pysocks=1.7.1=pyha2e5f31_6
  - pytest=7.3.1=pyhd8ed1ab_0
  - pytest-xdist=3.3.1=pyhd8ed1ab_0
  - python=3.9.16=h2782a2a_0_cpython
  - python-dateutil=2.8.2=pyhd8ed1ab_0
  - python-eccodes=1.5.1=py39h389d5f1_0
  - python-fastjsonschema=2.17.1=pyhd8ed1ab_0
  - python-json-logger=2.0.7=pyhd8ed1ab_0
  - python-pptx=0.6.21=pyhd8ed1ab_0
  - python-tzdata=2023.3=pyhd8ed1ab_0
  - python_abi=3.9=3_cp39
  - pytools=2022.1.14=pyhd8ed1ab_0
  - pytz=2023.3=pyhd8ed1ab_0
  - pyu2f=0.1.5=pyhd8ed1ab_0
  - pyviz_comms=2.3.0=pyhd8ed1ab_0
  - pywavelets=1.4.1=py39h389d5f1_0
  - pyyaml=6.0=py39hb9d737c_5
  - pyzmq=25.0.2=py39h0be026e_0
  - qt-main=5.15.8=h5d23da1_6
  - qtconsole=5.4.3=pyhd8ed1ab_0
  - qtconsole-base=5.4.3=pyha770c72_0
  - qtpy=2.3.1=pyhd8ed1ab_0
  - rasterio=1.3.6=py39h09b1985_0
  - raven-hydro=0.2.1=py39h8e2dbb5_1
  - ravenpy=0.12.0=py39hf3d152e_2
  - rdma-core=28.9=h59595ed_1
  - re2=2023.03.02=h8c504da_0
  - readline=8.2=h8228510_1
  - regionmask=0.9.0=pyhd8ed1ab_0
  - requests=2.31.0=pyhd8ed1ab_0
  - requests-cache=1.0.1=pyhd8ed1ab_0
  - requests-magpie=0.2.0=pyhd8ed1ab_0
  - requests-oauthlib=1.3.1=pyhd8ed1ab_0
  - retrying=1.3.3=py_2
  - rfc3339-validator=0.1.4=pyhd8ed1ab_0
  - rfc3986-validator=0.1.1=pyh9f0ad1d_0
  - rioxarray=0.14.1=pyhd8ed1ab_0
  - roocs-utils=0.6.4=pyh1a96a4e_0
  - rsa=4.9=pyhd8ed1ab_0
  - rtree=1.0.1=py39hb102c33_1
  - ruamel.yaml=0.17.30=py39hd1e30aa_0
  - ruamel.yaml.clib=0.2.7=py39h72bdee0_1
  - s2n=1.3.44=h06160fa_0
  - s3fs=2023.5.0=pyhd8ed1ab_0
  - s3transfer=0.6.1=pyhd8ed1ab_0
  - scikit-image=0.20.0=py39h7c7b5a8_1
  - scikit-learn=1.2.2=py39hc236052_2
  - scipy=1.9.1=py39h8ba3f38_0
  - scp=0.14.5=pyhd8ed1ab_0
  - seaborn=0.12.2=hd8ed1ab_0
  - seaborn-base=0.12.2=pyhd8ed1ab_0
  - selenium=4.9.1=pyhd8ed1ab_0
  - semver=3.0.0=pyhd8ed1ab_0
  - send2trash=1.8.2=pyh41d4057_0
  - setuptools=59.8.0=py39hf3d152e_1
  - shapely=2.0.1=py39hc9151fd_0
  - simpervisor=1.0.0=pyhd8ed1ab_0
  - sip=6.7.9=py39h3d6467e_0
  - siphon=0.9=pyhd8ed1ab_2
  - six=1.16.0=pyh6c4a22f_0
  - smmap=3.0.5=pyh44b312d_0
  - snappy=1.1.10=h9fff704_0
  - sniffio=1.3.0=pyhd8ed1ab_0
  - snuggs=1.4.7=py_0
  - sortedcontainers=2.4.0=pyhd8ed1ab_0
  - soupsieve=2.3.2.post1=pyhd8ed1ab_0
  - sparse=0.14.0=pyhd8ed1ab_0
  - spotpy=1.6.2=pyhd8ed1ab_0
  - sqlalchemy=2.0.15=py39hd1e30aa_0
  - sqlite=3.42.0=h2c6b66d_0
  - stack_data=0.6.2=pyhd8ed1ab_0
  - statsmodels=0.14.0=py39h0f8d45d_1
  - streamlit=1.8.0=pyhd8ed1ab_0
  - tblib=1.7.0=pyhd8ed1ab_0
  - tenacity=8.2.2=pyhd8ed1ab_0
  - terminado=0.17.1=pyh41d4057_0
  - threadpoolctl=3.1.0=pyh8a188c0_0
  - threddsclient=0.4.2=py_0
  - tifffile=2023.4.12=pyhd8ed1ab_0
  - tiledb=2.13.2=hd532e3d_0
  - tinycss2=1.2.1=pyhd8ed1ab_0
  - tk=8.6.12=h27826a3_0
  - toml=0.10.2=pyhd8ed1ab_0
  - tomli=2.0.1=pyhd8ed1ab_0
  - toolz=0.12.0=pyhd8ed1ab_0
  - tornado=6.3.2=py39hd1e30aa_0
  - tqdm=4.65.0=pyhd8ed1ab_1
  - traitlets=5.9.0=pyhd8ed1ab_0
  - traittypes=0.2.1=pyh9f0ad1d_2
  - trio=0.22.0=py39hf3d152e_1
  - trio-websocket=0.10.2=pyhd8ed1ab_0
  - typing-extensions=4.6.2=hd8ed1ab_0
  - typing_extensions=4.6.2=pyha770c72_0
  - tzcode=2023c=h0b41bf4_0
  - tzdata=2023c=h71feb2d_0
  - tzlocal=5.0.1=py39hf3d152e_0
  - ucx=1.14.1=hf587318_1
  - ujson=5.7.0=py39h227be39_0
  - ukkonen=1.0.1=py39hf939315_3
  - unicodedata2=15.0.0=py39hb9d737c_0
  - url-normalize=1.4.3=pyhd8ed1ab_0
  - urllib3=1.26.15=pyhd8ed1ab_0
  - urlpath=1.2.0=pyhd8ed1ab_0
  - validators=0.20.0=pyhd8ed1ab_0
  - virtualenv=20.23.0=pyhd8ed1ab_0
  - voila=0.4.0=pyhd8ed1ab_0
  - watchdog=3.0.0=py39hf3d152e_0
  - wcwidth=0.2.6=pyhd8ed1ab_0
  - webencodings=0.5.1=py_1
  - webob=1.8.7=pyhd8ed1ab_0
  - websocket-client=1.5.2=pyhd8ed1ab_0
  - websockets=11.0.3=py39hd1e30aa_0
  - werkzeug=2.3.4=pyhd8ed1ab_0
  - wget=1.20.3=ha35d2d1_1
  - wheel=0.40.0=pyhd8ed1ab_0
  - widgetsnbextension=4.0.7=pyhd8ed1ab_0
  - wrapt=1.15.0=py39h72bdee0_0
  - wsproto=1.2.0=pyhd8ed1ab_0
  - xarray=2023.1.0=pyhd8ed1ab_0
  - xcb-util=0.4.0=h516909a_0
  - xcb-util-image=0.4.0=h166bdaf_0
  - xcb-util-keysyms=0.4.0=h516909a_0
  - xcb-util-renderutil=0.3.9=h166bdaf_0
  - xcb-util-wm=0.4.1=h516909a_0
  - xclim=0.43.0=py39hf3d152e_1
  - xerces-c=3.2.4=h55805fa_1
  - xesmf=0.7.1=pyhd8ed1ab_0
  - xeus=3.0.5=hac2b420_1
  - xeus-python=0.15.9=py39h7633fee_0
  - xeus-python-shell=0.5.0=pyhd8ed1ab_0
  - xeus-python-shell-raw=0.5.0=pyhd8ed1ab_0
  - xeus-zmq=1.0.3=h0541b36_0
  - xhistogram=0.3.2=pyhd8ed1ab_0
  - xkeyboard-config=2.38=h0b41bf4_0
  - xlrd=2.0.1=pyhd8ed1ab_3
  - xlsxwriter=3.1.2=pyhd8ed1ab_0
  - xorg-damageproto=1.2.1=h7f98852_1002
  - xorg-fixesproto=5.0=h7f98852_1002
  - xorg-glproto=1.4.17=h7f98852_1002
  - xorg-inputproto=2.3.2=h7f98852_1002
  - xorg-kbproto=1.0.7=h7f98852_1002
  - xorg-libice=1.1.1=hd590300_0
  - xorg-libsm=1.2.4=h7391055_0
  - xorg-libx11=1.8.4=h0b41bf4_0
  - xorg-libxau=1.0.11=hd590300_0
  - xorg-libxdamage=1.1.5=h7f98852_1
  - xorg-libxdmcp=1.1.3=h7f98852_0
  - xorg-libxext=1.3.4=h0b41bf4_2
  - xorg-libxfixes=5.0.3=h7f98852_1004
  - xorg-libxi=1.7.10=h7f98852_0
  - xorg-libxrandr=1.5.2=h7f98852_1
  - xorg-libxrender=0.9.10=h7f98852_1003
  - xorg-randrproto=1.5.0=h7f98852_1001
  - xorg-renderproto=0.11.1=h7f98852_1002
  - xorg-util-macros=1.19.3=h7f98852_0
  - xorg-xextproto=7.3.0=h0b41bf4_1003
  - xorg-xf86vidmodeproto=2.3.1=h7f98852_1002
  - xorg-xproto=7.0.31=h7f98852_1007
  - xrft=1.0.1=pyhd8ed1ab_0
  - xskillscore=0.0.24=pyhd8ed1ab_0
  - xyzservices=2023.5.0=pyhd8ed1ab_1
  - xz=5.2.6=h166bdaf_0
  - y-py=0.5.9=py39h50f1755_0
  - yaml=0.2.5=h7f98852_2
  - yarl=1.9.2=py39hd1e30aa_0
  - ypy-websocket=0.8.2=pyhd8ed1ab_0
  - zarr=2.14.2=pyhd8ed1ab_0
  - zeromq=4.3.4=h9c3ff4c_1
  - zfp=1.0.0=h27087fc_3
  - zict=3.0.0=pyhd8ed1ab_0
  - zipp=3.15.0=pyhd8ed1ab_0
  - zlib=1.2.13=h166bdaf_4
  - zlib-ng=2.0.7=h0b41bf4_0
  - zstd=1.5.2=h3eb15da_6
  - pip:
      - arrow==1.2.3
      - astunparse==1.6.3
      - colour==0.1.5
      - dnspython==2.3.0
      - email-validator==2.0.0.post2
      - fqdn==1.5.1
      - geojson==3.0.1
      - hsclient==0.3.3
      - hsmodels==0.5.5
      - ipython-blocking==0.3.1
      - isodate==0.6.1
      - isoduration==20.11.0
      - jsonpointer==2.3
      - jupyterlab-logout==0.5.0
      - jupyterlab-tabular-data-editor==1.0.0
      - jupyternotify==0.1.15
      - pixiedust==1.1.19
      - pytest-tornasync==0.6.0.post2
      - rdflib==5.0.0
      - uri-template==1.2.0
      - webcolors==1.13
      - xmltodict==0.13.0
      - xncml==0.2
      - xsdata==23.5
prefix: /opt/conda/envs/birdy
```



Docker build log

[230530-1-buildlogs.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/11621136/230530-1-buildlogs.txt)
```
Sending build context to Docker daemon  22.02kB


Step 1/18 : FROM continuumio/miniconda3
 ---> fbedfde8d058
Step 2/18 : RUN conda update conda -n base &&     conda install mamba -n base -c conda-forge -c defaults &&     conda clean --all --yes &&     conda config --set channel_priority strict &&     wget -qO- https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -C /usr/local -xvj bin/micromamba
 ---> Using cache
 ---> 418cc0c03798
Step 3/18 : ENV MAMBA_ROOT_PREFIX="/opt/conda"
 ---> Using cache
 ---> cf727f7e31d9
Step 4/18 : RUN apt-get update &&     DEBIAN_FRONTEND=noninteractive apt-get install -y     git mercurial gcc unzip patch fonts-humor-sans     firefox-esr x11-utils &&     apt-get clean
 ---> Using cache
 ---> c1929f372dc2
Step 5/18 : RUN groupadd --gid 1000 jenkins     && useradd --uid 1000 --gid jenkins --create-home jenkins &&     chmod -R a+rwX /opt/conda
 ---> Using cache
 ---> 85378190e665
Step 6/18 : COPY environment.yml /environment.yml
 ---> c06bfdb4ac56
Step 7/18 : RUN umask 0000 &&     mamba create --name birdy --channel conda-forge --channel defaults xclim ravenpy python=3.9 --yes &&     mamba env update --name birdy --file /environment.yml &&     mamba clean --all --yes
 ---> Running in 95270a0111d6
Transaction

  Prefix: /opt/conda/envs/birdy

  Updating specs:

   - xclim
   - ravenpy
   - python=3.9


  Package                               Version  Build                       Channel                    Size
──────────────────────────────────────────────────────────────────────────────────────────────────────────────
  Install:
──────────────────────────────────────────────────────────────────────────────────────────────────────────────

  + _libgcc_mutex                           0.1  conda_forge                 conda-forge/linux-64        3kB
  + _openmp_mutex                           4.5  2_gnu                       conda-forge/linux-64       24kB
  + affine                                2.4.0  pyhd8ed1ab_0                conda-forge/noarch         19kB
  + appdirs                               1.4.4  pyh9f0ad1d_0                conda-forge/noarch         13kB
  + asttokens                             2.2.1  pyhd8ed1ab_0                conda-forge/noarch         28kB
  + attrs                                23.1.0  pyh71513ae_1                conda-forge/noarch         55kB
  + aws-c-auth                           0.6.27  he072965_1                  conda-forge/linux-64      102kB
  + aws-c-cal                            0.5.26  hf677bf3_1                  conda-forge/linux-64       50kB
  + aws-c-common                         0.8.19  hd590300_0                  conda-forge/linux-64      196kB
  + aws-c-compression                    0.2.16  hbad4bc6_7                  conda-forge/linux-64       19kB
  + aws-c-event-stream                   0.2.20  hb4b372c_7                  conda-forge/linux-64       54kB
  + aws-c-http                            0.7.7  h2632f9a_4                  conda-forge/linux-64      192kB
  + aws-c-io                            0.13.21  h9fef7b8_5                  conda-forge/linux-64      140kB
  + aws-c-mqtt                           0.8.11  h2282364_1                  conda-forge/linux-64      148kB
  + aws-c-s3                              0.3.0  hcb5a9b2_2                  conda-forge/linux-64       76kB
  + aws-c-sdkutils                        0.1.9  hbad4bc6_2                  conda-forge/linux-64       54kB
  + aws-checksums                        0.1.14  hbad4bc6_7                  conda-forge/linux-64       50kB
  + aws-crt-cpp                          0.20.2  he0fdcb3_0                  conda-forge/linux-64      319kB
  + aws-sdk-cpp                         1.10.57  h059227d_13                 conda-forge/linux-64        4MB
  + backcall                              0.2.0  pyh9f0ad1d_0                conda-forge/noarch         14kB
  + backports                               1.0  pyhd8ed1ab_3                conda-forge/noarch          6kB
  + backports.functools_lru_cache         1.6.4  pyhd8ed1ab_0                conda-forge/noarch          9kB
  + bias_correction                         0.4  pyhd8ed1ab_0                conda-forge/noarch          8kB
  + blosc                                1.21.4  h0f2a231_0                  conda-forge/linux-64       49kB
  + bokeh                                 3.1.1  pyhd8ed1ab_0                conda-forge/noarch          6MB
  + boltons                              23.0.0  pyhd8ed1ab_0                conda-forge/noarch        303kB
  + boost-cpp                            1.78.0  h5adbc97_2                  conda-forge/linux-64       16MB
  + bottleneck                            1.3.7  py39h389d5f1_0              conda-forge/linux-64      122kB
  + branca                                0.6.0  pyhd8ed1ab_0                conda-forge/noarch         28kB
  + brotli                                1.0.9  h166bdaf_8                  conda-forge/linux-64       19kB
  + brotli-bin                            1.0.9  h166bdaf_8                  conda-forge/linux-64       20kB
  + bzip2                                 1.0.8  h7f98852_4                  conda-forge/linux-64      496kB
  + c-ares                               1.19.1  hd590300_0                  conda-forge/linux-64      113kB
  + ca-certificates                    2023.5.7  hbcca054_0                  conda-forge/linux-64     Cached
  + cairo                                1.16.0  ha61ee94_1014               conda-forge/linux-64        2MB
  + certifi                            2023.5.7  pyhd8ed1ab_0                conda-forge/noarch       Cached
  + cf_xarray                             0.8.1  pyhd8ed1ab_0                conda-forge/noarch         52kB
  + cfitsio                               4.2.0  hd9d235c_0            …
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants