From a59439a4b768a7cfab454dc9e06bf3a39ac4bc40 Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Wed, 22 Mar 2023 13:54:31 -0700 Subject: [PATCH 01/25] Moved location of conda-lock file for pangeo workspace because it coouldn't be found during the image building process. --- jupyterlab3-build/{ => docker}/pangeo/conda-linux-64.lock | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename jupyterlab3-build/{ => docker}/pangeo/conda-linux-64.lock (100%) diff --git a/jupyterlab3-build/pangeo/conda-linux-64.lock b/jupyterlab3-build/docker/pangeo/conda-linux-64.lock similarity index 100% rename from jupyterlab3-build/pangeo/conda-linux-64.lock rename to jupyterlab3-build/docker/pangeo/conda-linux-64.lock From 0f3122d910718c22612a7bdfe10bb5569960ac31 Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Wed, 22 Mar 2023 13:55:34 -0700 Subject: [PATCH 02/25] Fixed location where pangeo images can be found in the pangeo devfile. --- devfiles/pangeo/devfile/devfile.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devfiles/pangeo/devfile/devfile.yaml b/devfiles/pangeo/devfile/devfile.yaml index 617a305..871ba79 100644 --- a/devfiles/pangeo/devfile/devfile.yaml +++ b/devfiles/pangeo/devfile/devfile.yaml @@ -31,7 +31,7 @@ components: emptyDir: {} containers: - name: jupyter - image: 'mas.dit.maap-project.org/root/maap-workspaces/pangeo/pangeo:develop' + image: 'mas.dit.maap-project.org/root/maap-workspaces/jupyterlab3-build/pangeo:develop' imagePullPolicy: Always resources: limits: From 33dcf42a7b4c55d796a13dfea4e5d93f9d658dcd Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Wed, 22 Mar 2023 16:21:32 -0700 Subject: [PATCH 03/25] Force command execution of mamba install using conda lock to determine why the conda-lock file can't be found. --- base_images/pangeo/docker/Dockerfile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/base_images/pangeo/docker/Dockerfile b/base_images/pangeo/docker/Dockerfile index d65e41e..351cc34 100644 --- a/base_images/pangeo/docker/Dockerfile +++ b/base_images/pangeo/docker/Dockerfile @@ -14,10 +14,12 @@ RUN conda install -c conda-forge mamba && \ mamba install -c conda-forge -y conda-lock gdal=3.6.2 matplotlib=3.6.2 Cython=0.29.33 h5py=3.7.0 numba=0.56.4 \ pygeos=0.14 pyproj=3.4.1 rasterio=1.3.4 scipy=1.10.0 -ONBUILD RUN echo "Checking for 'pangeo/conda-linux-64.lock'..." \ - ; if test -f "pangeo/conda-linux-64.lock" ; then \ - mamba install --file pangeo/conda-linux-64.lock \ - ; fi +#ONBUILD RUN echo "Checking for 'pangeo/conda-linux-64.lock'..." \ +# ; if test -f "pangeo/conda-linux-64.lock" ; then \ +# mamba install --file pangeo/conda-linux-64.lock \ +# ; fi + +ONBUILD RUN mamba install --file pangeo/conda-linux-64.lock RUN find /opt/conda/ -follow -type f -name '*.a' -delete \ && find /opt/conda/ -follow -type f -name '*.js.map' -delete \ From 2dc8578ebb687aa0bbe1f1bc1415017f9521ac13 Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Wed, 22 Mar 2023 16:35:41 -0700 Subject: [PATCH 04/25] Moved conda-linux-64.lock file location. --- jupyterlab3-build/{docker => }/pangeo/conda-linux-64.lock | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename jupyterlab3-build/{docker => }/pangeo/conda-linux-64.lock (100%) diff --git a/jupyterlab3-build/docker/pangeo/conda-linux-64.lock b/jupyterlab3-build/pangeo/conda-linux-64.lock similarity index 100% rename from jupyterlab3-build/docker/pangeo/conda-linux-64.lock rename to jupyterlab3-build/pangeo/conda-linux-64.lock From a27c5e8269c13d3f107844827f6c231e5bc0f650 Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Wed, 22 Mar 2023 16:48:15 -0700 Subject: [PATCH 05/25] check pwd during build. --- base_images/pangeo/docker/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/base_images/pangeo/docker/Dockerfile b/base_images/pangeo/docker/Dockerfile index 351cc34..4db7651 100644 --- a/base_images/pangeo/docker/Dockerfile +++ b/base_images/pangeo/docker/Dockerfile @@ -19,6 +19,8 @@ RUN conda install -c conda-forge mamba && \ # mamba install --file pangeo/conda-linux-64.lock \ # ; fi +ONBUILD RUN echo "Checking for 'pangeo/conda-linux-64.lock'..." +ONBUILD RUN pwd ONBUILD RUN mamba install --file pangeo/conda-linux-64.lock RUN find /opt/conda/ -follow -type f -name '*.a' -delete \ From d83151f61e9a54b01ae0453a6d6e2cfb6589b067 Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Wed, 22 Mar 2023 17:12:01 -0700 Subject: [PATCH 06/25] check pwd before running WORKDIR --- base_images/pangeo/docker/Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/base_images/pangeo/docker/Dockerfile b/base_images/pangeo/docker/Dockerfile index 4db7651..f16c039 100644 --- a/base_images/pangeo/docker/Dockerfile +++ b/base_images/pangeo/docker/Dockerfile @@ -6,6 +6,9 @@ RUN git clone --single-branch --branch master https://github.com/MAAP-Project/ma && cd maap-py \ && pip install -e . +ONBUILD RUN echo "Checking 'pwd'..." +ONBUILD RUN pwd + RUN mkdir /projects WORKDIR /projects RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd From d5d53bf1571fe607682d4db350d6f0db4f3fbb5c Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Thu, 23 Mar 2023 17:20:10 -0700 Subject: [PATCH 07/25] Updated where the conda-lock file is being retrieved for ONBUILD command in base docker image. --- base_images/pangeo/docker/Dockerfile | 15 ++++----------- jupyterlab3-build/docker/Dockerfile | 3 +++ 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/base_images/pangeo/docker/Dockerfile b/base_images/pangeo/docker/Dockerfile index f16c039..83d7c02 100644 --- a/base_images/pangeo/docker/Dockerfile +++ b/base_images/pangeo/docker/Dockerfile @@ -1,4 +1,7 @@ FROM continuumio/miniconda3:22.11.1 +ENV LANG en_US.UTF-8 +ENV TZ US/Pacific +ARG DEBIAN_FRONTEND=noninteractive # install maap-py library ENV MAAP_CONF='/maap-py/' @@ -6,9 +9,6 @@ RUN git clone --single-branch --branch master https://github.com/MAAP-Project/ma && cd maap-py \ && pip install -e . -ONBUILD RUN echo "Checking 'pwd'..." -ONBUILD RUN pwd - RUN mkdir /projects WORKDIR /projects RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd @@ -17,14 +17,7 @@ RUN conda install -c conda-forge mamba && \ mamba install -c conda-forge -y conda-lock gdal=3.6.2 matplotlib=3.6.2 Cython=0.29.33 h5py=3.7.0 numba=0.56.4 \ pygeos=0.14 pyproj=3.4.1 rasterio=1.3.4 scipy=1.10.0 -#ONBUILD RUN echo "Checking for 'pangeo/conda-linux-64.lock'..." \ -# ; if test -f "pangeo/conda-linux-64.lock" ; then \ -# mamba install --file pangeo/conda-linux-64.lock \ -# ; fi - -ONBUILD RUN echo "Checking for 'pangeo/conda-linux-64.lock'..." -ONBUILD RUN pwd -ONBUILD RUN mamba install --file pangeo/conda-linux-64.lock +ONBUILD RUN mamba install --file /tmp/conda-linux-64.lock RUN find /opt/conda/ -follow -type f -name '*.a' -delete \ && find /opt/conda/ -follow -type f -name '*.js.map' -delete \ diff --git a/jupyterlab3-build/docker/Dockerfile b/jupyterlab3-build/docker/Dockerfile index eede32a..b80e91b 100644 --- a/jupyterlab3-build/docker/Dockerfile +++ b/jupyterlab3-build/docker/Dockerfile @@ -3,6 +3,9 @@ FROM ${BASE_IMAGE} as jupyterlab_base ADD . / +ARG IMAGE_NAME +COPY ${IMAGE_NAME}/conda-linux-64.lock /tmp/ + RUN mkdir -p /projects WORKDIR /projects RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd From a9e18a8bd686fc5db55a56490aa5d788d341b799 Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Wed, 29 Mar 2023 14:26:03 -0700 Subject: [PATCH 08/25] Updated location of Pangeo lock file and added onbuild copy command to pangeo base image. --- base_images/pangeo/docker/Dockerfile | 1 + jupyterlab3-build/docker/Dockerfile | 1 - jupyterlab3-build/{ => docker}/pangeo/conda-linux-64.lock | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename jupyterlab3-build/{ => docker}/pangeo/conda-linux-64.lock (100%) diff --git a/base_images/pangeo/docker/Dockerfile b/base_images/pangeo/docker/Dockerfile index 83d7c02..8361ac9 100644 --- a/base_images/pangeo/docker/Dockerfile +++ b/base_images/pangeo/docker/Dockerfile @@ -17,6 +17,7 @@ RUN conda install -c conda-forge mamba && \ mamba install -c conda-forge -y conda-lock gdal=3.6.2 matplotlib=3.6.2 Cython=0.29.33 h5py=3.7.0 numba=0.56.4 \ pygeos=0.14 pyproj=3.4.1 rasterio=1.3.4 scipy=1.10.0 +ONBUILD COPY ${IMAGE_NAME}/conda-linux-64.lock /tmp/ ONBUILD RUN mamba install --file /tmp/conda-linux-64.lock RUN find /opt/conda/ -follow -type f -name '*.a' -delete \ diff --git a/jupyterlab3-build/docker/Dockerfile b/jupyterlab3-build/docker/Dockerfile index b80e91b..70de263 100644 --- a/jupyterlab3-build/docker/Dockerfile +++ b/jupyterlab3-build/docker/Dockerfile @@ -4,7 +4,6 @@ FROM ${BASE_IMAGE} as jupyterlab_base ADD . / ARG IMAGE_NAME -COPY ${IMAGE_NAME}/conda-linux-64.lock /tmp/ RUN mkdir -p /projects WORKDIR /projects diff --git a/jupyterlab3-build/pangeo/conda-linux-64.lock b/jupyterlab3-build/docker/pangeo/conda-linux-64.lock similarity index 100% rename from jupyterlab3-build/pangeo/conda-linux-64.lock rename to jupyterlab3-build/docker/pangeo/conda-linux-64.lock From a77bc5797c180b9dc964922fa6fa24f44393db3e Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Wed, 29 Mar 2023 15:06:42 -0700 Subject: [PATCH 09/25] moved conda-lock file. --- jupyterlab3-build/{docker => }/pangeo/conda-linux-64.lock | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename jupyterlab3-build/{docker => }/pangeo/conda-linux-64.lock (100%) diff --git a/jupyterlab3-build/docker/pangeo/conda-linux-64.lock b/jupyterlab3-build/pangeo/conda-linux-64.lock similarity index 100% rename from jupyterlab3-build/docker/pangeo/conda-linux-64.lock rename to jupyterlab3-build/pangeo/conda-linux-64.lock From 86cdb6048ff29bbd7478e85dc3103f4e60c16cbe Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Wed, 29 Mar 2023 15:17:59 -0700 Subject: [PATCH 10/25] Added Cache busting for pangeo base image. --- base_images/build-image.sh | 3 ++- base_images/pangeo/docker/Dockerfile | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/base_images/build-image.sh b/base_images/build-image.sh index fa72612..3cd208c 100755 --- a/base_images/build-image.sh +++ b/base_images/build-image.sh @@ -10,8 +10,9 @@ fi for dir in ${DIRS}; do pushd $base_image_dir/$dir IMAGE_NAME=$(basename $dir) + CACHE_BUST=$(date +%s) IMAGE_REF=${CI_REGISTRY_IMAGE}/base_images/${IMAGE_NAME}:${BRANCH} - docker build -t ${IMAGE_REF} --build-arg IMAGE_REF=${IMAGE_REF} -f docker/Dockerfile . + docker build -t ${IMAGE_REF} --build-arg IMAGE_REF=${IMAGE_REF} --build-arg CACHE_BUST=${CACHE_BUST} -f docker/Dockerfile . docker push ${IMAGE_REF} popd echo "$IMAGE_REF" >> built_images.txt diff --git a/base_images/pangeo/docker/Dockerfile b/base_images/pangeo/docker/Dockerfile index 8361ac9..37cf05f 100644 --- a/base_images/pangeo/docker/Dockerfile +++ b/base_images/pangeo/docker/Dockerfile @@ -17,6 +17,10 @@ RUN conda install -c conda-forge mamba && \ mamba install -c conda-forge -y conda-lock gdal=3.6.2 matplotlib=3.6.2 Cython=0.29.33 h5py=3.7.0 numba=0.56.4 \ pygeos=0.14 pyproj=3.4.1 rasterio=1.3.4 scipy=1.10.0 +# Use Cache-Busting below this point to ensure changes to conda-lock trigger rebuilds of base image +ARG CACHE_BUST +ENV CACHE_BUST=${CACHE_BUST} + ONBUILD COPY ${IMAGE_NAME}/conda-linux-64.lock /tmp/ ONBUILD RUN mamba install --file /tmp/conda-linux-64.lock From 241115f8c54a9ff68164359cd4d055bbbc00867a Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Wed, 29 Mar 2023 15:24:38 -0700 Subject: [PATCH 11/25] Updated path for onbuild command in pangeo base image. --- base_images/pangeo/docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base_images/pangeo/docker/Dockerfile b/base_images/pangeo/docker/Dockerfile index 37cf05f..e59f93a 100644 --- a/base_images/pangeo/docker/Dockerfile +++ b/base_images/pangeo/docker/Dockerfile @@ -21,7 +21,7 @@ RUN conda install -c conda-forge mamba && \ ARG CACHE_BUST ENV CACHE_BUST=${CACHE_BUST} -ONBUILD COPY ${IMAGE_NAME}/conda-linux-64.lock /tmp/ +ONBUILD COPY pangeo/conda-linux-64.lock /tmp/ ONBUILD RUN mamba install --file /tmp/conda-linux-64.lock RUN find /opt/conda/ -follow -type f -name '*.a' -delete \ From d4c077872cb8fc5b42fd41a2d9ea3d057c0080ce Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Wed, 29 Mar 2023 15:47:12 -0700 Subject: [PATCH 12/25] Updated build image script for jupyterlab3-build. --- jupyterlab3-build/build-image.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jupyterlab3-build/build-image.sh b/jupyterlab3-build/build-image.sh index 328deed..6e0dd72 100644 --- a/jupyterlab3-build/build-image.sh +++ b/jupyterlab3-build/build-image.sh @@ -1,13 +1,13 @@ #!/bin/bash set -ex -pangeo_dir=$(dirname $0) +jupyterlab_dir=$(dirname $0) BRANCH=$(git name-rev --name-only HEAD) BRANCH=$(basename ${BRANCH}) -pushd ${pangeo_dir} +pushd ${jupyterlab_dir} if [[ -z ${BASE_IMAGE_NAME} ]]; then echo "WARNING: No value provided for BASE_IMAGE_NAME, will ./build with default miniconda3 image" BASE_IMAGE_NAME=${CI_REGISTRY_IMAGE}/base_images/vanilla:${BRANCH} fi -IMAGE_REF=${CI_REGISTRY_IMAGE}/pangeo/$(basename ${BASE_IMAGE_NAME}) +IMAGE_REF=${CI_REGISTRY_IMAGE}/${BASE_IMAGE_NAME}/$(basename ${BASE_IMAGE_NAME}) docker build --no-cache -t ${IMAGE_REF} --build-arg BASE_IMAGE=${BASE_IMAGE_NAME} -f docker/Dockerfile . docker push ${IMAGE_REF} From 59e7896b593204038344110b95d7964bafca9bd7 Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Wed, 29 Mar 2023 16:00:37 -0700 Subject: [PATCH 13/25] Fixed improperly tagged image name in jupyterlab3-build build script --- jupyterlab3-build/build-image.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jupyterlab3-build/build-image.sh b/jupyterlab3-build/build-image.sh index 6e0dd72..bc23659 100644 --- a/jupyterlab3-build/build-image.sh +++ b/jupyterlab3-build/build-image.sh @@ -8,6 +8,6 @@ if [[ -z ${BASE_IMAGE_NAME} ]]; then echo "WARNING: No value provided for BASE_IMAGE_NAME, will ./build with default miniconda3 image" BASE_IMAGE_NAME=${CI_REGISTRY_IMAGE}/base_images/vanilla:${BRANCH} fi -IMAGE_REF=${CI_REGISTRY_IMAGE}/${BASE_IMAGE_NAME}/$(basename ${BASE_IMAGE_NAME}) +IMAGE_REF=${CI_REGISTRY_IMAGE}/pangeo/$(basename ${BASE_IMAGE_NAME}) docker build --no-cache -t ${IMAGE_REF} --build-arg BASE_IMAGE=${BASE_IMAGE_NAME} -f docker/Dockerfile . docker push ${IMAGE_REF} From ff53b53be0008b2abad3f06573b2f9ff2501ba73 Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Mon, 3 Apr 2023 13:34:23 -0700 Subject: [PATCH 14/25] Removed unused IMAGE_NAME docker arg from jupyterlab3-build dockerfile. --- jupyterlab3-build/docker/Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/jupyterlab3-build/docker/Dockerfile b/jupyterlab3-build/docker/Dockerfile index 70de263..eede32a 100644 --- a/jupyterlab3-build/docker/Dockerfile +++ b/jupyterlab3-build/docker/Dockerfile @@ -3,8 +3,6 @@ FROM ${BASE_IMAGE} as jupyterlab_base ADD . / -ARG IMAGE_NAME - RUN mkdir -p /projects WORKDIR /projects RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd From 65f73b98f519ad2f0251f151579331f951de9c8a Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Wed, 12 Apr 2023 13:30:29 -0700 Subject: [PATCH 15/25] Added *.code-workspace to gitignore. --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 4627103..f4389a8 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ built_images.txt base_images/build-image-local.sh + +*.code-workspace \ No newline at end of file From cc52d575be654dbc1f67f0d0737954177fb97a31 Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Wed, 12 Apr 2023 15:55:11 -0700 Subject: [PATCH 16/25] Moved pangeo conda lock to jupyterlab3 folder and modified jupyterlab3 dockerfile to test pangeo build with new CI pipeline. --- jupyterlab3/docker/Dockerfile | 6 ++++-- .../pangeo/conda-linux-64.lock | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) rename {jupyterlab3-build => jupyterlab3}/pangeo/conda-linux-64.lock (99%) diff --git a/jupyterlab3/docker/Dockerfile b/jupyterlab3/docker/Dockerfile index d4b9966..9732e8c 100644 --- a/jupyterlab3/docker/Dockerfile +++ b/jupyterlab3/docker/Dockerfile @@ -20,7 +20,8 @@ RUN apt-get clean && apt-get update && \ # Jupyterlab3 does not work with Node 17.x # Mamba should be installed in all base images -RUN mamba install -c conda-forge jupyterlab=3.4.4 nodejs=16.14.2 gitpython=3.1.26 jupyter-packaging=0.11.1 +#RUN mamba install -c conda-forge nodejs=16.14.2 jupyter-packaging=0.11.1 +RUN mamba install -c conda-forge jupyter-packaging=0.11.1 #ARG NB_USER="ops" # Adjust permissions on home directory so writable by group root. @@ -37,7 +38,8 @@ RUN chmod g+w /etc/passwd ############################### # Non Custom Jupyter Extensions. ############################### -RUN mamba install -c conda-forge plotly=5.5.0 jupyterlab_widgets=1.0.2 jupyterlab-git=0.34.2 ipyleaflet=0.17.2 +#RUN mamba install -c conda-forge plotly=5.5.0 jupyterlab_widgets=1.0.2 jupyterlab-git=0.34.2 ipyleaflet=0.17.2 +RUN mamba install -c conda-forge plotly=5.5.0 RUN jupyter labextension install --no-build jupyterlab-plotly@5.5.0 RUN npm install typescript -g RUN pip install xmltodict diff --git a/jupyterlab3-build/pangeo/conda-linux-64.lock b/jupyterlab3/pangeo/conda-linux-64.lock similarity index 99% rename from jupyterlab3-build/pangeo/conda-linux-64.lock rename to jupyterlab3/pangeo/conda-linux-64.lock index 0696a8d..703846b 100644 --- a/jupyterlab3-build/pangeo/conda-linux-64.lock +++ b/jupyterlab3/pangeo/conda-linux-64.lock @@ -638,3 +638,4 @@ https://conda.anaconda.org/conda-forge/noarch/nbgitpuller-1.1.1-pyhd8ed1ab_0.tar https://conda.anaconda.org/conda-forge/noarch/dask-labextension-6.0.0-pyhd8ed1ab_0.tar.bz2#32a0ba2d4b9ed598d90463d0032aace3 https://conda.anaconda.org/conda-forge/noarch/jupyterhub-singleuser-3.1.0-pyh2a2186d_0.conda#7607cbc55a1bc12bc9c78ce827c7bb8e https://conda.anaconda.org/conda-forge/noarch/pangeo-notebook-2023.01.04-hd8ed1ab_0.conda#da5cfbe8cab863b9178bef5ccaeb7001 +https://conda.anaconda.org/conda-forge/linux-64/nodejs-18.15.0-h8d033a5_0.conda#c2f93c68ce2b365821f99ff036512a18 \ No newline at end of file From e10297d20219d068c2e8f64a4df710e72d245b77 Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Thu, 13 Apr 2023 15:34:58 -0700 Subject: [PATCH 17/25] Testing nodejs install via CI. --- jupyterlab3/docker/Dockerfile | 2 +- jupyterlab3/pangeo/conda-linux-64.lock | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/jupyterlab3/docker/Dockerfile b/jupyterlab3/docker/Dockerfile index 9732e8c..1649142 100644 --- a/jupyterlab3/docker/Dockerfile +++ b/jupyterlab3/docker/Dockerfile @@ -21,7 +21,7 @@ RUN apt-get clean && apt-get update && \ # Jupyterlab3 does not work with Node 17.x # Mamba should be installed in all base images #RUN mamba install -c conda-forge nodejs=16.14.2 jupyter-packaging=0.11.1 -RUN mamba install -c conda-forge jupyter-packaging=0.11.1 +RUN mamba install -c conda-forge nodejs=16.14.2 jupyter-packaging=0.11.1 #ARG NB_USER="ops" # Adjust permissions on home directory so writable by group root. diff --git a/jupyterlab3/pangeo/conda-linux-64.lock b/jupyterlab3/pangeo/conda-linux-64.lock index 703846b..b8f0455 100644 --- a/jupyterlab3/pangeo/conda-linux-64.lock +++ b/jupyterlab3/pangeo/conda-linux-64.lock @@ -637,5 +637,4 @@ https://conda.anaconda.org/conda-forge/noarch/jupyterlab-3.5.2-pyhd8ed1ab_0.cond https://conda.anaconda.org/conda-forge/noarch/nbgitpuller-1.1.1-pyhd8ed1ab_0.tar.bz2#a2c72cf8c5fb4cd269bff97e9bf196e8 https://conda.anaconda.org/conda-forge/noarch/dask-labextension-6.0.0-pyhd8ed1ab_0.tar.bz2#32a0ba2d4b9ed598d90463d0032aace3 https://conda.anaconda.org/conda-forge/noarch/jupyterhub-singleuser-3.1.0-pyh2a2186d_0.conda#7607cbc55a1bc12bc9c78ce827c7bb8e -https://conda.anaconda.org/conda-forge/noarch/pangeo-notebook-2023.01.04-hd8ed1ab_0.conda#da5cfbe8cab863b9178bef5ccaeb7001 -https://conda.anaconda.org/conda-forge/linux-64/nodejs-18.15.0-h8d033a5_0.conda#c2f93c68ce2b365821f99ff036512a18 \ No newline at end of file +https://conda.anaconda.org/conda-forge/noarch/pangeo-notebook-2023.01.04-hd8ed1ab_0.conda#da5cfbe8cab863b9178bef5ccaeb7001 \ No newline at end of file From e233455dcd8204a8152e7a1dfdf96810170f3240 Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Sun, 16 Apr 2023 17:54:29 -0700 Subject: [PATCH 18/25] Updated pangeo builds so that they can be built off of the jupyterlab3 folder. This was accomplished by install a workspace dependent environments.yml file for our jupyterlab environment. Pangeo is the only environment that is currently using a custom environment.yml, all other workspaces rely on a shared environment.yml file. --- base_images/pangeo/docker/Dockerfile | 14 +- jupyterlab3-build/docker/Dockerfile | 84 ---- jupyterlab3-build/entrypoint.sh | 125 ----- jupyterlab3-build/environments.json | 43 -- jupyterlab3-build/jupyter_patch | 11 - jupyterlab3/build-image.sh | 4 +- jupyterlab3/docker/Dockerfile | 20 +- jupyterlab3/pangeo/conda-linux-64.lock | 640 ------------------------- jupyterlab3/pangeo/environment.yml | 15 + jupyterlab3/shared/environment.yml | 14 + 10 files changed, 44 insertions(+), 926 deletions(-) delete mode 100644 jupyterlab3-build/docker/Dockerfile delete mode 100644 jupyterlab3-build/entrypoint.sh delete mode 100644 jupyterlab3-build/environments.json delete mode 100644 jupyterlab3-build/jupyter_patch delete mode 100644 jupyterlab3/pangeo/conda-linux-64.lock create mode 100644 jupyterlab3/pangeo/environment.yml create mode 100644 jupyterlab3/shared/environment.yml diff --git a/base_images/pangeo/docker/Dockerfile b/base_images/pangeo/docker/Dockerfile index e59f93a..32966cf 100644 --- a/base_images/pangeo/docker/Dockerfile +++ b/base_images/pangeo/docker/Dockerfile @@ -14,17 +14,9 @@ WORKDIR /projects RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd RUN conda install -c conda-forge mamba && \ - mamba install -c conda-forge -y conda-lock gdal=3.6.2 matplotlib=3.6.2 Cython=0.29.33 h5py=3.7.0 numba=0.56.4 \ - pygeos=0.14 pyproj=3.4.1 rasterio=1.3.4 scipy=1.10.0 - -# Use Cache-Busting below this point to ensure changes to conda-lock trigger rebuilds of base image -ARG CACHE_BUST -ENV CACHE_BUST=${CACHE_BUST} - -ONBUILD COPY pangeo/conda-linux-64.lock /tmp/ -ONBUILD RUN mamba install --file /tmp/conda-linux-64.lock - -RUN find /opt/conda/ -follow -type f -name '*.a' -delete \ + mamba install -c conda-forge -y gdal=3.6.2 matplotlib=3.6.2 Cython=0.29.33 h5py=3.7.0 numba=0.56.4 \ + pygeos=0.14 pyproj=3.4.1 rasterio=1.3.4 scipy=1.10.0 \ + && find /opt/conda/ -follow -type f -name '*.a' -delete \ && find /opt/conda/ -follow -type f -name '*.js.map' -delete \ && /opt/conda/bin/conda clean -afy diff --git a/jupyterlab3-build/docker/Dockerfile b/jupyterlab3-build/docker/Dockerfile deleted file mode 100644 index eede32a..0000000 --- a/jupyterlab3-build/docker/Dockerfile +++ /dev/null @@ -1,84 +0,0 @@ -ARG BASE_IMAGE -FROM ${BASE_IMAGE} as jupyterlab_base - -ADD . / - -RUN mkdir -p /projects -WORKDIR /projects -RUN sed -i -e 's/\/root/\/projects/g' /etc/passwd - -USER root - -# Install additional libraries required by Python packages which are in -# the minimal base image. Also install 'rsync' so the 'oc rsync' command -# can be used to copy files into the running container. - -RUN apt-get clean && apt-get update && \ - apt-get install -y --no-install-recommends rsync gcc python3 vim && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists/* - -# Jupyterlab3 does not work with Node 17.x -# Mamba should be installed in all base images -#RUN mamba install -c conda-forge nodejs=16.13.2 jupyter-packaging=0.11.1 -RUN mamba install -c conda-forge nodejs jupyter-packaging - -#ARG NB_USER="ops" -# Adjust permissions on home directory so writable by group root. -RUN chgrp -Rf root /home/$NB_USER && chmod -Rf g+w /home/$NB_USER - -# Grant access to jupyterlab config files for base url rewriting -RUN chmod a+rwx -R /opt/conda/lib/python*/site-packages/ - -# Adjust permissions on /etc/passwd so writable by group root. -RUN chmod g+w /etc/passwd - -#ENV ENVIRONMENT=DEV - -############################### -# Non Custom Jupyter Extensions. -############################### -RUN mamba install -c conda-forge plotly=5.5.0 -RUN jupyter labextension install --no-build jupyterlab-plotly@5.5.0 -RUN npm install typescript -g -RUN pip install xmltodict - -############################### -# Custom Jupyter Extensions. -############################### -RUN jupyter labextension install @maap-jupyterlab/dps-jupyter-extension@latest --no-build - -RUN pip install -i https://test.pypi.org/simple/ jupyter-server-extension -RUN jupyter server extension enable jupyter_server_extension - -RUN jupyter labextension install @maap-jupyterlab/umf-jupyter-extension@latest --no-build -RUN jupyter labextension install @maap-jupyterlab/maap-libs-jupyter-extension@latest --no-build -RUN jupyter labextension install @maap-jupyterlab/maapsec-jupyter-extension@latest --no-build -RUN jupyter labextension install @maap-jupyterlab/edsc-jupyter-extension@latest --no-build -RUN jupyter labextension install @maap-jupyterlab/user-workspace-management-jupyter-extension@latest --no-build -RUN jupyter labextension install @maap-jupyterlab/ades-metrics-visualization-jupyter-extension --no-build -RUN jupyter labextension install @maap-jupyterlab/maap-help-jupyter-extension@0.0.24 --no-build - -RUN jupyter labextension enable "jupyterlab-tour:plugin" - -RUN jupyter lab build && \ - jupyter lab clean && \ - jlpm cache clean && \ - npm cache clean --force && \ - rm -rf $HOME/.node-gyp && \ - rm -rf $HOME/.local - -RUN find /opt/conda/ -follow -type f -name '*.a' -delete && \ - find /opt/conda/ -follow -type f -name '*.js.map' -delete && \ - /opt/conda/bin/conda clean -afy && \ - npm cache clean --force - -COPY ./entrypoint.sh /entrypoint.sh -COPY ./jupyter_patch /opt/jupyter_patch - -ENV ENVIRONMENTS_FILE_PATH=/opt/environments.json -COPY ./environments.json $ENVIRONMENTS_FILE_PATH - -RUN echo 'printf "\e[101mNOTE: This terminal uses the default environment which might not be the same as your notebook.\e[49m\n\n"' >> /etc/profile - -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] diff --git a/jupyterlab3-build/entrypoint.sh b/jupyterlab3-build/entrypoint.sh deleted file mode 100644 index e04c173..0000000 --- a/jupyterlab3-build/entrypoint.sh +++ /dev/null @@ -1,125 +0,0 @@ -#!/bin/bash - -# A more robust method of constructing the workspace url prefix -get_workspace_url_prefix() { - python3 - <-che" - if test -z "$PREVIEW_URL" - then - PREVIEW_URL=$(get_workspace_url_prefix "$CHE_WORKSPACE_NAMESPACE-$CHE_WORKSPACE_ID") # Che 7 UAT configuration fallback where the default namespace is "-", this will be deprecated - fi - if test -z "$PREVIEW_URL" - then - PREVIEW_URL=$(get_workspace_url_prefix "$CHE_WORKSPACE_ID") # Che 6 configuration fallback where the default namespace is the workspace id, this will be deprecated - fi - if ! test -z "$PREVIEW_URL" # exit loop when it has a preview_url - then - break - fi -done -# end more robust method - -# Fix Jupyterlab for Che in `single-host` mode. In `single-host` mode, Che uses URL path prefixes -# to distinguish workspaces. So for example, `https:///work/space/path/`. -# Because of this, we need to set Jupyter's `base_url` to `/work/space/path` so that all hrefs -# and links to files have the correct path prefix. HOWEVER, when the browser accesses those paths, -# the ingress/nginx proxy strips out the `base_url`! Even if the browser makes a request to `/work/space/path/lab`, -# Jupyter's web server, Tornado, only see a request for `/lab`. Tornado routes calls to the correct handler by -# matching the path against a known regular expression. Because `base_url` is configured to `/work/space/path`, -# Tornado only handles requests that have that path prefix, causing calls such as `/lab` to fail. The fix below -# allows `base_url` to be set so that HTTP *responses* include the `base_url` so that browsers make the correct -# call. However, it strips out `base_url` when listening for *requests* so that handles the ingress/nginx proxy -# requests correctly. -export NOTEBOOKLIBPATH=$(find /opt/conda/lib/ -maxdepth 3 -type d -name "notebook") -export JUPYTERSERVERLIBPATH=$(find /opt/conda/lib -maxdepth 3 -type d -name "jupyter_server") - -read -r -d '' JUPYTER_PATCH << EOM - # Fix for Tornado's inability to handle proxy requests - from tornado.routing import _RuleList - def fix_handlers(self, handlers: _RuleList, base_url: str): - for i in range(len(handlers)): - l = list(handlers[i]) - l[0] = l[0].replace(base_url.rstrip('/'), '') - handlers[i] = tuple(l) - return handlers - - def add_handlers(self, host_pattern: str, host_handlers: _RuleList) -> None: - super().add_handlers(host_pattern, self.fix_handlers(host_handlers, self.settings['base_url'])) -EOM - -if [[ -f "$JUPYTERSERVERLIBPATH/serverapp.py" ]]; then - perl -pi -e "s|(.*)\(web.Application\):|\$1\(web.Application\):\n$JUPYTER_PATCH|g" "$JUPYTERSERVERLIBPATH/serverapp.py" - perl -pi -e 's|(.*)__init__\(handlers(.*)|$1__init__\(self.fix_handlers\(handlers, base_url\)$2|g' "$JUPYTERSERVERLIBPATH/serverapp.py" -fi - -if [[ -f "$NOTEBOOKLIBPATH/notebookapp.py" ]]; then - perl -pi -e "s|(.*)\(web.Application\):|\$1\(web.Application\):\n$JUPYTER_PATCH|g" "$NOTEBOOKLIBPATH/notebookapp.py" - perl -pi -e 's|(.*)__init__\(handlers(.*)|$1__init__\(self.fix_handlers\(handlers, base_url\)$2|g' "$NOTEBOOKLIBPATH/notebookapp.py" -fi - -# Dump all env variables into file so they exist still though SSH -env | grep _ >> /etc/environment - -# Add conda bin to path -export PATH=$PATH:/opt/conda/bin -cp /root/.bashrc ~/.bash_profile -conda init - -# Need to fix directory permissions for publickey authentication -chmod 700 /projects -mkdir -p /projects/.ssh/ -chmod 700 /projects/.ssh/ -service ssh restart - -# TBD maap-py install - -VERSION=$(jupyter lab --version) -if [[ $VERSION > '2' ]] && [[ $VERSION < '3' ]]; then - SHELL=/bin/bash jupyter lab --ip=0.0.0.0 --port=3100 --allow-root --NotebookApp.token='' --NotebookApp.base_url=$PREVIEW_URL --no-browser --debug -elif [[ $VERSION > '3' ]] && [[ $VERSION < '4' ]]; then - SHELL=/bin/bash jupyter lab --ip=0.0.0.0 --port=3100 --allow-root --ContentsManager.allow_hidden=True --ServerApp.token='' --ServerApp.base_url=$PREVIEW_URL --no-browser --debug --ServerApp.disable_check_xsrf=True --collaborative -else - echo "Error! Jupyterlab version not supported." -fi diff --git a/jupyterlab3-build/environments.json b/jupyterlab3-build/environments.json deleted file mode 100644 index 5ba6e4d..0000000 --- a/jupyterlab3-build/environments.json +++ /dev/null @@ -1,43 +0,0 @@ -[ - { - "environment": "dit", - "ade_server": "ade.dit.maap-project.org", - "api_server": "api.dit.maap-project.org", - "auth_server": "auth.dit.maap-project.org", - "mas_server": "repo.dit.maap-project.org", - "edsc_server": "ade.dit.maap-project.org:30052", - "workspace_bucket": "maap-dit-workspace", - "kibana_url": "https://35.88.169.231/metrics/goto/4f1115df1b6563782292fb1f75676f95", - "default_host": true - }, - { - "environment": "uat", - "ade_server": "ade.uat.maap-project.org", - "api_server": "api.uat.maap-project.org", - "auth_server": "auth.uat.maap-project.org", - "mas_server": "repo.uat.maap-project.org", - "edsc_server": "ade.uat.maap-project.org:30052", - "workspace_bucket": "maap-uat-workspace", - "default_host": false - }, - { - "environment": "pilot-ops", - "ade_server": "ade.ops.maap-project.org", - "api_server": "api.ops.maap-project.org", - "auth_server": "auth.ops.maap-project.org", - "mas_server": "mas.ops.maap-project.org", - "edsc_server": "ade.ops.maap-project.org:30052", - "workspace_bucket": "maap-ops-workspace", - "default_host": false - }, - { - "environment": "ops", - "ade_server": "ade.maap-project.org", - "api_server": "api.maap-project.org", - "auth_server": "auth.maap-project.org", - "mas_server": "mas.maap-project.org", - "edsc_server": "ade.maap-project.org:30052", - "workspace_bucket": "maap-ops-dataset", - "default_host": false - } -] diff --git a/jupyterlab3-build/jupyter_patch b/jupyterlab3-build/jupyter_patch deleted file mode 100644 index 079a2cb..0000000 --- a/jupyterlab3-build/jupyter_patch +++ /dev/null @@ -1,11 +0,0 @@ - # Fix for Tornado's inability to handle proxy requests - from tornado.routing import _RuleList - def fix_handlers(self, handlers: _RuleList, base_url: str): - for i in range(len(handlers)): - l = list(handlers[i]) - l[0] = l[0].replace(base_url.rstrip('/'), '') - handlers[i] = tuple(l) - return handlers - - def add_handlers(self, host_pattern: str, host_handlers: _RuleList) -> None: - super().add_handlers(host_pattern, self.fix_handlers(host_handlers, self.settings['base_url'])) diff --git a/jupyterlab3/build-image.sh b/jupyterlab3/build-image.sh index 2557060..ad5882b 100644 --- a/jupyterlab3/build-image.sh +++ b/jupyterlab3/build-image.sh @@ -8,6 +8,8 @@ if [[ -z ${BASE_IMAGE_NAME} ]]; then echo "WARNING: No value provided for BASE_IMAGE_NAME, will ./build with default miniconda3 image" BASE_IMAGE_NAME=${CI_REGISTRY_IMAGE}/base_images/vanilla:${BRANCH} fi +[[ $(basename ${BASE_IMAGE_NAME}) =~ (([^:]*)\:) ]]; +BASE_IMAGE_TYPE=${BASH_REMATCH[2]} IMAGE_REF=${CI_REGISTRY_IMAGE}/jupyterlab3/$(basename ${BASE_IMAGE_NAME}) -docker build --no-cache -t ${IMAGE_REF} --build-arg BASE_IMAGE=${BASE_IMAGE_NAME} -f docker/Dockerfile . +docker build --no-cache -t ${IMAGE_REF} --build-arg BASE_IMAGE_TYPE=${BASE_IMAGE_TYPE} --build-arg BASE_IMAGE=${BASE_IMAGE_NAME} -f docker/Dockerfile . docker push ${IMAGE_REF} diff --git a/jupyterlab3/docker/Dockerfile b/jupyterlab3/docker/Dockerfile index 8787b5a..1b1c329 100644 --- a/jupyterlab3/docker/Dockerfile +++ b/jupyterlab3/docker/Dockerfile @@ -1,6 +1,8 @@ ARG BASE_IMAGE FROM ${BASE_IMAGE} as jupyterlab_base +ARG BASE_IMAGE_TYPE + ADD . / RUN mkdir -p /projects @@ -17,17 +19,13 @@ RUN apt-get clean && apt-get update && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* -# Jupyterlab3 does not work with Node 17.x -# Mamba should be installed in all base images -RUN mamba install -c conda-forge gitpython=3.1.26 \ - ipyleaflet=0.17.2 \ - jupyterlab=3.6.1 \ - jupyterlab-git=0.34.2 \ - jupyter-packaging=0.12.3 \ - jupyterlab_widgets=1.0.2 \ - nodejs=16.14.2 \ - plotly=5.5.0 \ - xmltodict=0.13.0 +# Install workspace specific packages for conda environment +RUN echo "Checking if environments.yml exists for ${BASE_IMAGE_TYPE}" \ + ; if [[ -d "/${BASE_IMAGE_TYPE}" ]]; then \ + mamba env update --name base --file "/${BASE_IMAGE_TYPE}/environment.yml" \ + ; else \ + mamba env update --name base --file "/shared/environment.yml" \ + ; fi RUN npm install typescript -g RUN pip install jupyter-server==2.5.0 diff --git a/jupyterlab3/pangeo/conda-linux-64.lock b/jupyterlab3/pangeo/conda-linux-64.lock deleted file mode 100644 index b8f0455..0000000 --- a/jupyterlab3/pangeo/conda-linux-64.lock +++ /dev/null @@ -1,640 +0,0 @@ -# Generated by conda-lock. -# platform: linux-64 -# input_hash: 9469b2775bdd7a762c01c2366f5dc102fe57049acf7a4b2d4fdeec0c250bfe66 -@EXPLICIT -https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81 -https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2022.12.7-ha878542_0.conda#ff9f73d45c4a07d6f424495288a26080 -https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2#0c96522c6bdaed4b1566d11387caaf45 -https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2#34893075a5c9e55cdafac56607368fc6 -https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2#4d59c254e01d9cde7957100457e2d5fb -https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-hab24e00_0.tar.bz2#19410c3df09dfb12d1206132a1d357c5 -https://conda.anaconda.org/conda-forge/linux-64/gh-2.21.2-ha8f183a_0.conda#5380576b95ddfad3a3e7cc1b4f479a7c -https://conda.anaconda.org/conda-forge/linux-64/git-lfs-3.3.0-ha770c72_0.conda#bed72a66ece736ba7e7898a721738613 -https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-2.6.32-he073ed8_15.tar.bz2#5dd5127afd710f91f6a75821bac0a4f0 -https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.39-hcc3a1bd_1.conda#737be0d34c22d24432049ab7a3214de4 -https://conda.anaconda.org/conda-forge/linux-64/libgcc-devel_linux-64-12.2.0-h3b97bd3_19.tar.bz2#199a7292b1d3535376ecf7670c231d1f -https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-12.2.0-h337968e_19.tar.bz2#164b4b1acaedc47ee7e658ae6b308ca3 -https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-12.2.0-h46fd767_19.tar.bz2#1030b1f38c129f2634eae026f704fe60 -https://conda.anaconda.org/conda-forge/linux-64/mpi-1.0-mpich.tar.bz2#c1fcff3417b5a22bbc4cf6e8c23648cf -https://conda.anaconda.org/conda-forge/noarch/poppler-data-0.4.11-hd8ed1ab_0.tar.bz2#abc27381c4f005da588cffa1f76403ee -https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.10-3_cp310.conda#4eb33d14d794b0f4be116443ffed3853 -https://conda.anaconda.org/conda-forge/noarch/tzdata-2022g-h191b570_0.conda#51fc4fcfb19f5d95ffc8c339db5068e8 -https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2#f766549260d6815b0c52253f1fb1bb29 -https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-12.2.0-h69a702a_19.tar.bz2#cd7a806282c16e1f2d39a7e80d3a3e0d -https://conda.anaconda.org/conda-forge/linux-64/libgomp-12.2.0-h65d4601_19.tar.bz2#cedcee7c064c01c403f962c9e8d3c373 -https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.12-he073ed8_15.tar.bz2#66c192522eacf5bb763568b4e415d133 -https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2#73aaf86a425cc6e73fcf236a5a46396d -https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.39-he00db2b_1.conda#3d726e8b51a1f5bfd66892a2b7d9db2d -https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2#fee5683a3f04bd15cbd8318b096a27ab -https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.39-h5fc0e48_11.tar.bz2#b7d26ab37be17ea4c366a97138684bcb -https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-12.2.0-h65d4601_19.tar.bz2#e4c94f80aef025c17ab0828cd85ef535 -https://conda.anaconda.org/conda-forge/linux-64/aom-3.5.0-h27087fc_0.tar.bz2#a08150fd2298460cd1fcccf626305642 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.8.5-h166bdaf_0.tar.bz2#5590453a8d072c9c89bfa26fcf88d870 -https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h7f98852_4.tar.bz2#a1fd65c7ccbf10880423d82bca54eb54 -https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.18.1-h7f98852_0.tar.bz2#f26ef8098fab1f719c91eb760d63381a -https://conda.anaconda.org/conda-forge/linux-64/charls-2.3.4-h9c3ff4c_0.tar.bz2#c3f85a96a52befc5e41cab1145c8d3c2 -https://conda.anaconda.org/conda-forge/linux-64/dav1d-1.0.0-h166bdaf_1.tar.bz2#e890928299fe7242a108850fc0a5b7fc -https://conda.anaconda.org/conda-forge/linux-64/expat-2.5.0-h27087fc_0.tar.bz2#c4fbad8d4bddeb3c085f18cbf97fbfad -https://conda.anaconda.org/conda-forge/linux-64/freexl-1.0.6-h166bdaf_1.tar.bz2#897e772a157faf3330d72dd291486f62 -https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.10-h36c2ea0_0.tar.bz2#ac7bc6a654f8f41b352b38f4051135f8 -https://conda.anaconda.org/conda-forge/linux-64/geos-3.11.1-h27087fc_0.tar.bz2#917b9a50001fffdd89b321b5dba31e55 -https://conda.anaconda.org/conda-forge/linux-64/gettext-0.21.1-h27087fc_0.tar.bz2#14947d8770185e5153fdd04d4673ed37 -https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-he1b5a44_1004.tar.bz2#cddaf2c63ea4a5901cf09524c490ecdc -https://conda.anaconda.org/conda-forge/linux-64/giflib-5.2.1-h36c2ea0_2.tar.bz2#626e68ae9cc5912d6adb79d318cf962d -https://conda.anaconda.org/conda-forge/linux-64/gmp-6.2.1-h58526e2_0.tar.bz2#b94cf2db16066b242ebd26db2facbd56 -https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.13-h58526e2_1001.tar.bz2#8c54672728e8ec6aa6db90cf2806d220 -https://conda.anaconda.org/conda-forge/linux-64/icu-70.1-h27087fc_0.tar.bz2#87473a15119779e021c314249d4b4aed -https://conda.anaconda.org/conda-forge/linux-64/jpeg-9e-h166bdaf_2.tar.bz2#ee8b844357a0946870901c7c6f418268 -https://conda.anaconda.org/conda-forge/linux-64/json-c-0.16-hc379101_0.tar.bz2#0e2bca6857cb73acec30387fef7c3142 -https://conda.anaconda.org/conda-forge/linux-64/jxrlib-1.1-h7f98852_2.tar.bz2#8e787b08fe19986d99d034b839df2961 -https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2#30186d27e2c9fa62b45fb1476b7200e3 -https://conda.anaconda.org/conda-forge/linux-64/lame-3.100-h166bdaf_1003.tar.bz2#a8832b479f93521a9e7b5b743803be51 -https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2#76bbff344f0134279f225174e9064c8f -https://conda.anaconda.org/conda-forge/linux-64/libabseil-20220623.0-cxx17_h05df665_6.conda#39f6394ae835f0b16f01cbbd3bb1e8e2 -https://conda.anaconda.org/conda-forge/linux-64/libaec-1.0.6-h9c3ff4c_0.tar.bz2#c77f5e4e418fa47d699d6afa54c5d444 -https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.0.9-h166bdaf_8.tar.bz2#9194c9bf9428035a05352d031462eae4 -https://conda.anaconda.org/conda-forge/linux-64/libcrc32c-1.1.2-h9c3ff4c_0.tar.bz2#c965a5aa0d5c1c37ffc62dff36e28400 -https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.14-h166bdaf_0.tar.bz2#fc84a0446e4e4fb882e78d786cfb9734 -https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h516909a_1.tar.bz2#6f8720dff19e17ce5d48cfe7f3d2f0a3 -https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2#d645c6d2ac96843a2bfaccd2d62b3ac3 -https://conda.anaconda.org/conda-forge/linux-64/libglu-9.0.0-he1b5a44_1001.tar.bz2#8208602aec4826053c116552369a394c -https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-h166bdaf_0.tar.bz2#b62b52da46c39ee2bc3c162ac7f1804d -https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-2.1.4-h166bdaf_0.tar.bz2#b4f717df2d377410b462328bf0e8fb7d -https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.0-h7f98852_0.tar.bz2#39b1328babf85c7c3a61636d9cd50206 -https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.21-pthreads_h78a6416_3.tar.bz2#8c5963a49b6035c40646a763293fbb35 -https://conda.anaconda.org/conda-forge/linux-64/libpciaccess-0.17-h166bdaf_0.tar.bz2#b7463391cf284065294e2941dd41ab95 -https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-12.2.0-h46fd767_19.tar.bz2#80d0e00150401e9c06a055f36e8e73f2 -https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.18-h36c2ea0_1.tar.bz2#c3788462a6fbddafdb413a9f9053e58d -https://conda.anaconda.org/conda-forge/linux-64/libspatialindex-1.9.3-h9c3ff4c_4.tar.bz2#d87fbe9c0ff589e802ff13872980bfd9 -https://conda.anaconda.org/conda-forge/linux-64/libtasn1-4.19.0-h166bdaf_0.tar.bz2#93840744a8552e9ebf6bb1a5dffc125a -https://conda.anaconda.org/conda-forge/linux-64/libtool-2.4.7-h27087fc_0.conda#f204c8ba400ec475452737094fb81d52 -https://conda.anaconda.org/conda-forge/linux-64/libunistring-0.9.10-h7f98852_0.tar.bz2#7245a044b4a1980ed83196176b78b73a -https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.8.0-h166bdaf_0.tar.bz2#ede4266dc02e875fe1ea77b25dd43747 -https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.32.1-h7f98852_1000.tar.bz2#772d69f030955d9646d3d0eaf21d859d -https://conda.anaconda.org/conda-forge/linux-64/libvpx-1.11.0-h9c3ff4c_3.tar.bz2#ebe18273eebadbb4dfb13f1062e054e9 -https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.2.4-h166bdaf_0.tar.bz2#ac2ccf7323d21f2994e4d1f5da664f37 -https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.2.13-h166bdaf_4.tar.bz2#f3f9de449d32ca9b9c66a22863c96f41 -https://conda.anaconda.org/conda-forge/linux-64/libzopfli-1.0.3-h9c3ff4c_0.tar.bz2#c66fe2d123249af7651ebde8984c51c2 -https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.3-h9c3ff4c_1.tar.bz2#fbe97e8fa6f275d7c76a09e795adc3e6 -https://conda.anaconda.org/conda-forge/linux-64/mpich-4.0.3-h846660c_100.tar.bz2#50d66bb751cfa71ee2a48b2d3eb90ac1 -https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.3-h27087fc_1.tar.bz2#4acfc691e64342b9dae57cf2adc63238 -https://conda.anaconda.org/conda-forge/linux-64/nettle-3.8.1-hc379101_1.tar.bz2#3cb2c7df59990bd37c2ce27fd906de68 -https://conda.anaconda.org/conda-forge/linux-64/nspr-4.35-h27087fc_0.conda#da0ec11a6454ae19bff5b02ed881a2b1 -https://conda.anaconda.org/conda-forge/linux-64/openh264-2.3.1-h27087fc_1.tar.bz2#6b6b81f9aed8c30003fba6382828e9bc -https://conda.anaconda.org/conda-forge/linux-64/openssl-3.0.7-h0b41bf4_1.conda#7adaac6ff98219bcb99b45e408b80f4e -https://conda.anaconda.org/conda-forge/linux-64/pixman-0.40.0-h36c2ea0_0.tar.bz2#660e72c82f2e75a6b3fe6a6e75c79f19 -https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-h36c2ea0_1001.tar.bz2#22dad4df6e8630e8dff2428f6f6a7036 -https://conda.anaconda.org/conda-forge/linux-64/qhull-2020.2-h4bd325d_2.tar.bz2#5acb8407fefa1c1929c11c167237e776 -https://conda.anaconda.org/conda-forge/linux-64/re2-2022.06.01-h27087fc_1.conda#68070cd09c67755f37e0db13f00a008b -https://conda.anaconda.org/conda-forge/linux-64/snappy-1.1.9-hbd366e4_2.tar.bz2#48018e187dacc6002d3ede9c824238ac -https://conda.anaconda.org/conda-forge/linux-64/svt-av1-1.4.1-hcb278e6_0.conda#2b32b8a10fa6ec9c18c897c4527720dc -https://conda.anaconda.org/conda-forge/linux-64/tzcode-2022g-h166bdaf_0.conda#229620ecbc0bf2f9f04b888fd3478f79 -https://conda.anaconda.org/conda-forge/linux-64/x264-1!164.3095-h166bdaf_2.tar.bz2#6c99772d483f566d59e25037fea2c4b1 -https://conda.anaconda.org/conda-forge/linux-64/x265-3.5-h924138e_3.tar.bz2#e7f6ed84d4623d52ee581325c1587a6b -https://conda.anaconda.org/conda-forge/linux-64/xorg-inputproto-2.3.2-h7f98852_1002.tar.bz2#bcd1b3396ec6960cbc1d2855a9e60b2b -https://conda.anaconda.org/conda-forge/linux-64/xorg-kbproto-1.0.7-h7f98852_1002.tar.bz2#4b230e8381279d76131116660f5a241a -https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.0.10-h7f98852_0.tar.bz2#d6b0b50b49eccfe0be0373be628be0f3 -https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.9-h7f98852_0.tar.bz2#bf6f803a544f26ebbdc3bfff272eb179 -https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.3-h7f98852_0.tar.bz2#be93aabceefa2fac576e971aef407908 -https://conda.anaconda.org/conda-forge/linux-64/xorg-renderproto-0.11.1-h7f98852_1002.tar.bz2#06feff3d2634e3097ce2fe681474b534 -https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h7f98852_1002.tar.bz2#1e15f6ad85a7d743a2ac68dae6c82b98 -https://conda.anaconda.org/conda-forge/linux-64/xorg-xproto-7.0.31-h7f98852_1007.tar.bz2#b4a4381d54784606820704f7b5f05a15 -https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2#2161070d867d1b1204ea749c8eec4ef0 -https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2#4cb3ad778ec2d5a7acbdf254eb1c42ae -https://conda.anaconda.org/conda-forge/linux-64/zfp-1.0.0-h27087fc_3.tar.bz2#0428af0510c3fafedf1c66b43102a34b -https://conda.anaconda.org/conda-forge/linux-64/zlib-ng-2.0.6-h166bdaf_0.tar.bz2#8650e4fb44c4a618e5ab3e1e19607e32 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.5.20-hff2c3d7_3.tar.bz2#afc84c17eb855bfe13a20ee603230235 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.2.16-hf5f93bc_0.tar.bz2#d279191a7bbce623d5087e0b1883cfb1 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.1.7-hf5f93bc_0.tar.bz2#772dcd299af4757edd9f4da140849cf2 -https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.1.14-h6027aba_0.conda#4960e03c8b6447aebc484f5a3c340180 -https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-12.2.0-hcc96c02_19.tar.bz2#bb48ea333c8e6dcc159a1575f04d869e -https://conda.anaconda.org/conda-forge/linux-64/glog-0.6.0-h6f12383_0.tar.bz2#b31f3565cb84435407594e548a2fb7b2 -https://conda.anaconda.org/conda-forge/linux-64/libavif-0.11.1-h5cdd6b5_0.tar.bz2#2040f9067e8852606208cafa66c3563f -https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-16_linux64_openblas.tar.bz2#d9b7a8639171f6c6fa0a983edabcfe2b -https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.0.9-h166bdaf_8.tar.bz2#4ae4d7795d33e02bd20f6b23d91caf82 -https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.0.9-h166bdaf_8.tar.bz2#04bac51ba35ea023dc48af73c1c88c25 -https://conda.anaconda.org/conda-forge/linux-64/libdrm-2.4.114-h166bdaf_0.tar.bz2#efb58e80f5d0179a783c4e76c3df3b9c -https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2#4d331e44109e3f0e19b4cb8f9b82f3e1 -https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.10-h28343ad_4.tar.bz2#4a049fc560e00e43151dc51368915fdd -https://conda.anaconda.org/conda-forge/linux-64/libidn2-2.3.4-h166bdaf_0.tar.bz2#7440fbafd870b8bab68f83a064875d34 -https://conda.anaconda.org/conda-forge/linux-64/libllvm11-11.1.0-he0ac6c6_5.tar.bz2#cae79c6fd61cc6823cbebdbb2c16c60e -https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.51.0-hff17c54_0.conda#dd682f0b6d65e75b2bc868fc8e93d87e -https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.39-h753d276_0.conda#e1c890aebdebbfbf87e2c917187b4416 -https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-3.21.12-h3eb15da_0.conda#4b36c68184c6c85d88c6e595a32a1ede -https://conda.anaconda.org/conda-forge/linux-64/librttopo-1.1.0-ha49c73b_12.tar.bz2#d2047c6de84b07a1db9cbe1683939956 -https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.40.0-h753d276_0.tar.bz2#2e5f9a37d487e1019fd4d8113adb2f9f -https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.10.0-hf14f497_3.tar.bz2#d85acad4b47dff4e3def14a769a97906 -https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.13-h7f98852_1004.tar.bz2#b3653fdc58d03face9724f602218a904 -https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.10.3-h7463322_0.tar.bz2#3b933ea47ef8f330c4c068af25fcd6a8 -https://conda.anaconda.org/conda-forge/linux-64/libzip-1.9.2-hc929e4a_1.tar.bz2#5b122b50e738c4be5c3f2899f010d7cf -https://conda.anaconda.org/conda-forge/linux-64/p11-kit-0.24.1-hc5aa10d_0.tar.bz2#56ee94e34b71742bbdfa832c974e47a8 -https://conda.anaconda.org/conda-forge/linux-64/pandoc-2.19.2-h32600fe_1.tar.bz2#35a82883468c85ac8bf41f083c1933cf -https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.40-hc3806b6_0.tar.bz2#69e2c796349cd9b273890bee0febfe1b -https://conda.anaconda.org/conda-forge/linux-64/readline-8.1.2-h0f457ee_0.tar.bz2#db2ebbe2943aae81ed051a6a9af8e0fa -https://conda.anaconda.org/conda-forge/linux-64/s2n-1.3.31-h3358134_0.conda#c65b7438ec54390ecc040e06be712967 -https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.12-h27826a3_0.tar.bz2#5b8c42eb62e9fc961af70bdd6a26e168 -https://conda.anaconda.org/conda-forge/linux-64/xorg-fixesproto-5.0-h7f98852_1002.tar.bz2#65ad6e1eb4aed2b0611855aff05e04f6 -https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.3-hd9c2040_1000.tar.bz2#9e856f78d5c80d5a78f61e72d1d473a3 -https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.4-h9c3ff4c_1.tar.bz2#21743a8d2ea0c8cfbbf8fe489b0347df -https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.13-h166bdaf_4.tar.bz2#4b11e365c0275b808be78b30f904e295 -https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.2-h6239696_4.tar.bz2#adcf0be7897e73e312bd24353b613f74 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.13.12-h57ca295_1.conda#8d7d0930dcb9373baef80a151c831462 -https://conda.anaconda.org/conda-forge/linux-64/blosc-1.21.3-hafa529b_0.conda#bcf0664a2dbbbb86cbd4c1e6ff10ddd6 -https://conda.anaconda.org/conda-forge/linux-64/boost-cpp-1.78.0-h75c5d50_1.tar.bz2#accc1f1ca33809bbf9ad067a0a69e236 -https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.0.9-h166bdaf_8.tar.bz2#e5613f2bc717e9945840ff474419b8e4 -https://conda.anaconda.org/conda-forge/linux-64/c-blosc2-2.6.1-hf91038e_0.conda#332b553e1a0d22c318756ffcd370384c -https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-hca18f0e_1.conda#e1232042de76d24539a436d37597eb06 -https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-12.2.0-h4798a0e_11.tar.bz2#d45cf693c604871dfe9921e83d7819e2 -https://conda.anaconda.org/conda-forge/linux-64/gnutls-3.7.8-hf3e180e_0.tar.bz2#cbe8e27140d67c3f30e01cfb642a6e7c -https://conda.anaconda.org/conda-forge/linux-64/hdf4-4.2.15-h9772cbc_5.tar.bz2#ee08782aff2ff9b3291c967fa6bc7336 -https://conda.anaconda.org/conda-forge/linux-64/krb5-1.20.1-h81ceb04_0.conda#89a41adce7106749573d883b2f657d78 -https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-16_linux64_openblas.tar.bz2#20bae26d0a1db73f758fc3754cab4719 -https://conda.anaconda.org/conda-forge/linux-64/libglib-2.74.1-h606061b_1.tar.bz2#ed5349aa96776e00b34eccecf4a948fe -https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.51.1-h30feacc_0.conda#9eae4dc6fb0a91b026d4e419f0450737 -https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-16_linux64_openblas.tar.bz2#955d993f41f9354bf753d29864ea20ad -https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.16.0-he500d00_2.tar.bz2#0e169728f52de7bcf5ffdbbdd9075e1a -https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.5.0-h82bc61c_0.conda#a01611c54334d783847879ee40109657 -https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.37-h873f0b0_0.tar.bz2#ed0d77d947ddeb974892de8df7224d12 -https://conda.anaconda.org/conda-forge/linux-64/nss-3.82-he02c5a1_0.conda#f8d7f11d19e4cb2207eab159fd4c0152 -https://conda.anaconda.org/conda-forge/linux-64/orc-1.8.1-hfdbbad2_0.conda#76ac7d97105158a36b649b63e24aa0d9 -https://conda.anaconda.org/conda-forge/linux-64/python-3.10.8-h4a9ceb5_0_cpython.conda#be2a6d78752c2ab85f360ce37d2c64e2 -https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.40.0-h4ff8645_0.tar.bz2#bb11803129cbbb53ed56f9506ff74145 -https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.7.2-h7f98852_0.tar.bz2#12a61e640b8894504326aadafccbb790 -https://conda.anaconda.org/conda-forge/noarch/_ipython_minor_entry_point-8.7.0-hb6b4a82_0.conda#e3f19766a5bf40d587e507670a9e2cf8 -https://conda.anaconda.org/conda-forge/noarch/affine-2.3.1-pyhd8ed1ab_0.tar.bz2#466dc5c1b75c93180efbd81d99dc29b0 -https://conda.anaconda.org/conda-forge/noarch/aiofiles-22.1.0-pyhd8ed1ab_0.tar.bz2#a88c206fdb78e34adb1c4081f5f838dd -https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyh9f0ad1d_0.tar.bz2#5f095bc6454094e96f146491fd03633b -https://conda.anaconda.org/conda-forge/noarch/asciitree-0.3.3-py_2.tar.bz2#c0481c9de49f040272556e2cedf42816 -https://conda.anaconda.org/conda-forge/noarch/async-exit-stack-1.0.1-pyhd8ed1ab_0.tar.bz2#c76151135c040e151b2ab21d3b7636fd -https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12 -https://conda.anaconda.org/conda-forge/linux-64/asyncpg-0.27.0-py310h5764c6d_1.tar.bz2#2fb8634db40a55f474faf632262cdfdb -https://conda.anaconda.org/conda-forge/linux-64/atk-1.0-2.38.0-hd4edc92_1.tar.bz2#6c72ec3e660a51736913ef6ea68c454b -https://conda.anaconda.org/conda-forge/noarch/attrs-22.2.0-pyh71513ae_0.conda#8b76db7818a4e401ed4486c4c1635cd9 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.2.17-h57874a7_1.conda#feea24eb114344d776f0bcab6d011926 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.7.0-h96ef541_0.conda#5a56f1109eb6dae09e560dfa7bd3203c -https://conda.anaconda.org/conda-forge/noarch/backcall-0.2.0-pyh9f0ad1d_0.tar.bz2#6006a6d08a3fa99268a2681c7fb55213 -https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_3.conda#54ca2e08b3220c148a1d8329c2678e02 -https://conda.anaconda.org/conda-forge/noarch/blinker-1.5-pyhd8ed1ab_0.tar.bz2#f473c4e32d8180733ba5594d122cb637 -https://conda.anaconda.org/conda-forge/noarch/bounded-pool-executor-0.0.3-pyhd8ed1ab_0.tar.bz2#d8a39f2e6da4ba10ce7c4aba2c8a69d5 -https://conda.anaconda.org/conda-forge/linux-64/brotli-1.0.9-h166bdaf_8.tar.bz2#2ff08978892a3e8b954397c461f18418 -https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2#576d629e47797577ab0f1b351297ef4a -https://conda.anaconda.org/conda-forge/noarch/cachetools-5.2.0-pyhd8ed1ab_0.tar.bz2#c6653a1ed0c4a48ace64ab68a0bf9b27 -https://conda.anaconda.org/conda-forge/noarch/certifi-2022.12.7-pyhd8ed1ab_0.conda#fb9addc3db06e56abe03e0e9f21a63e6 -https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.1.1-pyhd8ed1ab_0.tar.bz2#c1d5b294fbf9a795dec349a6f4d8be8e -https://conda.anaconda.org/conda-forge/noarch/click-8.1.3-unix_pyhd8ed1ab_2.tar.bz2#20e4087407c7cb04a40817114b333dbf -https://conda.anaconda.org/conda-forge/noarch/cloudpickle-2.2.0-pyhd8ed1ab_0.tar.bz2#a6cf47b09786423200d7982d1faa19eb -https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.4-pyh9f0ad1d_0.tar.bz2#c08b4c1326b880ed44f3ffb04803332f -https://conda.anaconda.org/conda-forge/noarch/coolname-2.2.0-pyhd8ed1ab_0.conda#25aac2e9aa64518428dcd7b4aa872808 -https://conda.anaconda.org/conda-forge/noarch/cycler-0.11.0-pyhd8ed1ab_0.tar.bz2#a50559fad0affdbb33729a68669ca1cb -https://conda.anaconda.org/conda-forge/noarch/dataclasses-0.8-pyhc8e2a94_3.tar.bz2#a362b2124b06aad102e2ee4581acee7d -https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.6.5-py310heca2aa9_0.conda#1f4325aaebddb444c5179f6bef390d82 -https://conda.anaconda.org/conda-forge/noarch/decorator-5.1.1-pyhd8ed1ab_0.tar.bz2#43afe5ab04e35e17ba28649471dd7364 -https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2#961b3a227b437d82ad7054484cfa71b2 -https://conda.anaconda.org/conda-forge/noarch/docopt-0.6.2-py_1.tar.bz2#a9ed63e45579cfef026a916af2bc27c9 -https://conda.anaconda.org/conda-forge/linux-64/docutils-0.15.2-py310hff52083_6.tar.bz2#9815d5a3a63926f0877313c07b7c5d90 -https://conda.anaconda.org/conda-forge/noarch/entrypoints-0.4-pyhd8ed1ab_0.tar.bz2#3cf04868fee0a029769bd41f4b2fbf2d -https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.1.0-pyhd8ed1ab_0.conda#a385c3e8968b4cf8fbc426ace915fd1a -https://conda.anaconda.org/conda-forge/noarch/executing-1.2.0-pyhd8ed1ab_0.tar.bz2#4c1bc140e2be5c8ba6e3acab99e25c50 -https://conda.anaconda.org/conda-forge/noarch/fasteners-0.17.3-pyhd8ed1ab_0.tar.bz2#348e27e78a5e39090031448c72f66d5e -https://conda.anaconda.org/conda-forge/noarch/fastprogress-1.0.3-pyhd8ed1ab_0.tar.bz2#1690639d3647fde6edf4f00c8f87c263 -https://conda.anaconda.org/conda-forge/noarch/findlibs-0.0.2-pyhd8ed1ab_0.tar.bz2#c2a60dd9f1210b8ee2037f7d0ec6251a -https://conda.anaconda.org/conda-forge/noarch/flit-core-3.8.0-pyhd8ed1ab_0.tar.bz2#6d5e56de2e65da7aa35fd10131226efa -https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.14.1-hc2a2eb6_0.tar.bz2#78415f0180a8d9c5bcc47889e00d5fb1 -https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.3.3-py310h5764c6d_0.tar.bz2#25e1626333f9a0646579a162e7b174ee -https://conda.anaconda.org/conda-forge/noarch/fsspec-2022.11.0-pyhd8ed1ab_0.tar.bz2#eb919f2119a6db5d0192f9e9c3711572 -https://conda.anaconda.org/conda-forge/noarch/future-0.18.3-pyhd8ed1ab_0.conda#fec8329fc739090f26a7d7803db254f1 -https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.42.10-h05c8ddd_0.conda#1a109126a43003d65b39c1cad656bc9b -https://conda.anaconda.org/conda-forge/noarch/geographiclib-1.52-pyhd8ed1ab_0.tar.bz2#6880e7100ebae550a33ce26663316d85 -https://conda.anaconda.org/conda-forge/linux-64/greenlet-2.0.1-py310hd8f1fbe_0.tar.bz2#10e3fb3d64c619d64b7d76bfcc15c0c0 -https://conda.anaconda.org/conda-forge/linux-64/gts-0.7.6-h64030ff_2.tar.bz2#112eb9b5b93f0c02e59aea4fd1967363 -https://conda.anaconda.org/conda-forge/noarch/heapdict-1.0.1-py_0.tar.bz2#77242bfb1e74a627fb06319b5a2d3b95 -https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyh9f0ad1d_0.tar.bz2#914d6646c4dbb1fd3ff539830a12fd71 -https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_0.tar.bz2#9f765cbfab6870c8435b9eefecd7a1f4 -https://conda.anaconda.org/conda-forge/noarch/idna-3.4-pyhd8ed1ab_0.tar.bz2#34272b248891bddccc64479f9a7fffed -https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_0.conda#f800d2da156d08e289b14e87e43c1ae5 -https://conda.anaconda.org/conda-forge/noarch/ipython_genutils-0.2.0-py_1.tar.bz2#5071c982548b3a20caf70462f04f5287 -https://conda.anaconda.org/conda-forge/noarch/jmespath-1.0.1-pyhd8ed1ab_0.tar.bz2#2cfa3e1cf3fb51bb9b17acc5b5e9ea11 -https://conda.anaconda.org/conda-forge/noarch/json5-0.9.5-pyh9f0ad1d_0.tar.bz2#10759827a94e6b14996e81fb002c0bda -https://conda.anaconda.org/conda-forge/noarch/jsonpointer-2.0-py_0.tar.bz2#07d85c22a3beb102a48cd123df84c2a6 -https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.5-pyhd8ed1ab_0.conda#953a312b272f37d39fe9d09f46734622 -https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.4-py310hbf28c38_1.tar.bz2#ad5647e517ba68e2868ef2e6e6ff7723 -https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.14-hfd0df8a_1.conda#c2566c2ea5f153ddd6bf4acaf7547d97 -https://conda.anaconda.org/conda-forge/linux-64/libcurl-7.87.0-hdc1c0ab_0.conda#bc302fa1cf8eda15c60f669b7524a320 -https://conda.anaconda.org/conda-forge/linux-64/libkml-1.3.0-h37653c0_1015.tar.bz2#37d3747dd24d604f63d2610910576e63 -https://conda.anaconda.org/conda-forge/linux-64/libpq-15.1-hb675445_3.conda#9873ab80ec8fab4a2c26c7580e0d7f58 -https://conda.anaconda.org/conda-forge/linux-64/libwebp-1.2.4-h1daa5a0_1.conda#77003f63d1763c1e6569a02c1742c9f4 -https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.39.1-py310h58363a5_1.tar.bz2#18c28e036ae9c5366c56ecd0c875a108 -https://conda.anaconda.org/conda-forge/noarch/locket-1.0.0-pyhd8ed1ab_0.tar.bz2#91e27ef3d05cc772ce627e51cff111c4 -https://conda.anaconda.org/conda-forge/linux-64/lxml-4.9.2-py310hbdc0903_0.conda#543906a26651f10c6180ca71fc4d48f2 -https://conda.anaconda.org/conda-forge/linux-64/lz4-4.2.0-py310h0cfdcf0_0.conda#5ee9fdbb5a4a8f426fbcf7f7e10b931f -https://conda.anaconda.org/conda-forge/noarch/mailchecker-5.0.6-pyhd8ed1ab_0.conda#13b87c878937bb664fae4c8d3ee02558 -https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.1.1-py310h5764c6d_2.tar.bz2#2d7028ea2a77f909931e1a173d952261 -https://conda.anaconda.org/conda-forge/noarch/mistune-2.0.4-pyhd8ed1ab_0.tar.bz2#78e0a90393b79b378b8ff6d32893d58a -https://conda.anaconda.org/conda-forge/linux-64/mpi4py-3.1.4-py310h37cc914_0.tar.bz2#98d598d9178d7f3091212c61c0be693c -https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.0.4-py310hbf28c38_1.tar.bz2#1fa34c9e9be72b7e4c3c9b95017463a3 -https://conda.anaconda.org/conda-forge/linux-64/multidict-6.0.4-py310h1fa729e_0.conda#b33287be963a70f8fb4b143b4561ba62 -https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2#2ba8498c1018c1e9c61eb99b973dfe19 -https://conda.anaconda.org/conda-forge/linux-64/mypy_extensions-0.4.3-py310hff52083_6.tar.bz2#58a812a2f042e6f8c027736c6464d2dd -https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.5.6-pyhd8ed1ab_0.tar.bz2#7b868f21adde0d9b8b38f9c16836589b -https://conda.anaconda.org/conda-forge/noarch/networkx-3.0-pyhd8ed1ab_0.conda#88e40007414ea9a13f8df20fcffa87e2 -https://conda.anaconda.org/conda-forge/linux-64/noise-1.2.2-py310h5764c6d_1004.tar.bz2#d394dc983ff15ebd5099a5533ec8fc4a -https://conda.anaconda.org/conda-forge/linux-64/numpy-1.23.5-py310h53a5b5f_0.conda#3b114b1559def8bad228fec544ac1812 -https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.0-hfec8fc6_2.conda#5ce6a42505c6e9e6151c54c3ec8d68ea -https://conda.anaconda.org/conda-forge/linux-64/orjson-3.8.5-py310h38b9cce_1.conda#08388ef4f3c3ab20fbf3b353af4706d5 -https://conda.anaconda.org/conda-forge/noarch/packaging-23.0-pyhd8ed1ab_0.conda#1ff2e3ca41f0ce16afec7190db28288b -https://conda.anaconda.org/conda-forge/noarch/pamela-1.0.0-py_0.tar.bz2#36f6f18d2f3ae0c93d77a9dbedad08c3 -https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2#457c2c8c08e54905d6954e79cb5b5db9 -https://conda.anaconda.org/conda-forge/noarch/param-1.12.3-pyh1a96a4e_0.conda#fb23d3d49db58a47a741da24a340e99e -https://conda.anaconda.org/conda-forge/noarch/parso-0.8.3-pyhd8ed1ab_0.tar.bz2#17a565a0c3899244e938cdf417e7b094 -https://conda.anaconda.org/conda-forge/noarch/pathspec-0.10.3-pyhd8ed1ab_0.conda#0f7d2186dd12ef3277e70fd85f9ff6a7 -https://conda.anaconda.org/conda-forge/noarch/phonenumbers-8.13.4-pyhd8ed1ab_0.conda#03a3bdd603b20b96ceca5ba9a0afbcdd -https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-py_1003.tar.bz2#415f0ebb6198cc2801c73438a9fb5761 -https://conda.anaconda.org/conda-forge/noarch/pint-0.20.1-pyhd8ed1ab_0.tar.bz2#452ea302351c36e6c21f1ed5872d6cbf -https://conda.anaconda.org/conda-forge/noarch/pkgutil-resolve-name-1.3.10-pyhd8ed1ab_0.tar.bz2#89e3c7cdde7d3aaa2aee933b604dd07f -https://conda.anaconda.org/conda-forge/noarch/pluggy-1.0.0-pyhd8ed1ab_5.tar.bz2#7d301a0d25f424d96175f810935f0da9 -https://conda.anaconda.org/conda-forge/linux-64/portalocker-2.6.0-py310hff52083_1.tar.bz2#e15adf50249ac8772470372b904c7ddf -https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.15.0-pyhd8ed1ab_0.tar.bz2#b260ed41427dbbe70537b3030c643b2e -https://conda.anaconda.org/conda-forge/linux-64/psutil-5.9.4-py310h5764c6d_0.tar.bz2#c3c55664e9becc48e6a652e2b641961f -https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd3deb0d_0.tar.bz2#359eeb6536da0e687af562ed265ec263 -https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.2-pyhd8ed1ab_0.tar.bz2#6784285c7e55cb7212efabc79e4c2883 -https://conda.anaconda.org/conda-forge/noarch/pyasn1-0.4.8-py_0.tar.bz2#06d04c9f8f72ac77911db942eda24fb9 -https://conda.anaconda.org/conda-forge/noarch/pycparser-2.21-pyhd8ed1ab_0.tar.bz2#076becd9e05608f8dc72757d5f3a91ff -https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.6.0-pyhd8ed1ab_0.tar.bz2#56d08bbebf5b3719ca2b1688fcfd98a4 -https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.0.9-pyhd8ed1ab_0.tar.bz2#e8fbc1b54b25f4b08281467bc13b70cc -https://conda.anaconda.org/conda-forge/linux-64/pyrsistent-0.19.3-py310h1fa729e_0.conda#f732bec05ecc2e302a868d971ae484e0 -https://conda.anaconda.org/conda-forge/noarch/pyshp-2.3.1-pyhd8ed1ab_0.tar.bz2#92a889dc236a5197612bc85bee6d7174 -https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha2e5f31_6.tar.bz2#2a7de29fb590ca14b5243c4c812c8025 -https://conda.anaconda.org/conda-forge/linux-64/python-blosc-1.10.6-py310h769672d_1.tar.bz2#6cc3fc6a2f2ec1e1ee5caf13a699fb86 -https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.16.2-pyhd8ed1ab_0.tar.bz2#5fe4b6002f505336734ce92961b3e6a0 -https://conda.anaconda.org/conda-forge/noarch/python-gnupg-0.4.9-pyhd8ed1ab_0.tar.bz2#eea9e4e1795553c60c493dab5b95ff67 -https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.4-pyhd8ed1ab_0.conda#6d1f4215f123c18aed06fb4104bcb11a -https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2022.7-pyhd8ed1ab_0.conda#b8afba5fbf891019eae564c3edb28b9e -https://conda.anaconda.org/conda-forge/noarch/pytz-2022.7-pyhd8ed1ab_0.conda#c8d7e34ca76d6ecc03b84bedfd99d689 -https://conda.anaconda.org/conda-forge/noarch/pytzdata-2020.1-pyh9f0ad1d_0.tar.bz2#7dd824593f3a861130ac17c6571546e2 -https://conda.anaconda.org/conda-forge/noarch/pywin32-on-windows-0.1.0-pyh1179c8e_3.tar.bz2#2807a0becd1d986fe1ef9b7f8135f215 -https://conda.anaconda.org/conda-forge/linux-64/pyyaml-5.4.1-py310h5764c6d_4.tar.bz2#99a4d5b5df0c98e65fe625ea3ba8cc82 -https://conda.anaconda.org/conda-forge/linux-64/pyzmq-25.0.0-py310h059b190_0.conda#125d2a047e37a0ff0676912c91a622ae -https://conda.anaconda.org/conda-forge/noarch/readchar-4.0.3-pyhd8ed1ab_0.tar.bz2#353d49c40c3a48b1e440c54fad506d6d -https://conda.anaconda.org/conda-forge/linux-64/regex-2022.10.31-py310h5764c6d_0.tar.bz2#8fad03b61d0e8a70f03115677cb55e61 -https://conda.anaconda.org/conda-forge/noarch/rfc3986-1.5.0-pyhd8ed1ab_0.tar.bz2#ee18e8644b953e8900282b2ef2a8c5a1 -https://conda.anaconda.org/conda-forge/linux-64/rtree-1.0.1-py310hbdcdc62_1.tar.bz2#49ad4035b71bbf7289ac1523f8023ebe -https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.7-py310h1fa729e_1.conda#2f9b517412af46255cef5e53a22c264e -https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.0-pyhd8ed1ab_0.tar.bz2#edab14119efe85c3bf131ad747e9005c -https://conda.anaconda.org/conda-forge/noarch/setuptools-65.6.3-pyhd8ed1ab_0.conda#9600fc9524d3f821e6a6d58c52f5bf5a -https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.0.post1-pyhd8ed1ab_0.conda#7b6405a93373e8444c75cd62d01ee2d9 -https://conda.anaconda.org/conda-forge/noarch/simpervisor-0.4-pyhd8ed1ab_0.tar.bz2#12b5f0d11cc26bf386bd9a2f99099648 -https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2#e5f25f8dbc060e9a8d912e432202afc2 -https://conda.anaconda.org/conda-forge/noarch/smmap-3.0.5-pyh44b312d_0.tar.bz2#3a8dc70789709aa315325d5df06fb7e4 -https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.0-pyhd8ed1ab_0.tar.bz2#dd6cbc539e74cb1f430efbd4575b9303 -https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_0.tar.bz2#6d6552722448103793743dabfbda532d -https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.3.2.post1-pyhd8ed1ab_0.tar.bz2#146f4541d643d48fc8a75cacf69f03ae -https://conda.anaconda.org/conda-forge/noarch/tblib-1.7.0-pyhd8ed1ab_0.tar.bz2#3d4afc31302aa7be471feb6be048ed76 -https://conda.anaconda.org/conda-forge/noarch/text-unidecode-1.3-py_0.tar.bz2#afcf07cba949f797ac96c5e13e745cc7 -https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.1.0-pyh8a188c0_0.tar.bz2#a2995ee828f65687ac5b1e71a2ab1e0c -https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2#f832c45a477c78bebd107098db465095 -https://conda.anaconda.org/conda-forge/noarch/tomli-2.0.1-pyhd8ed1ab_0.tar.bz2#5844808ffab9ebdb694585b50ba02a96 -https://conda.anaconda.org/conda-forge/noarch/toolz-0.12.0-pyhd8ed1ab_0.tar.bz2#92facfec94bc02d6ccf42e7173831a36 -https://conda.anaconda.org/conda-forge/linux-64/tornado-6.2-py310h5764c6d_1.tar.bz2#be4a201ac582c11d89ed7d15b3157cc3 -https://conda.anaconda.org/conda-forge/noarch/traitlets-5.8.1-pyhd8ed1ab_0.conda#ef5179bcc6a9acc23b12ac92936e05ab -https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.4.0-pyha770c72_0.tar.bz2#2d93b130d148d7fc77e583677792fc6a -https://conda.anaconda.org/conda-forge/linux-64/ujson-5.5.0-py310hd8f1fbe_1.tar.bz2#9394053c95c67ecb37c7a755f473b0f5 -https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-15.0.0-py310h5764c6d_0.tar.bz2#e972c5a1f472561cf4a91962cb01f4b4 -https://conda.anaconda.org/conda-forge/noarch/unidecode-1.3.6-pyhd8ed1ab_0.tar.bz2#e8f24401b17802df5f82f66a88cee29e -https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136 -https://conda.anaconda.org/conda-forge/noarch/webob-1.8.7-pyhd8ed1ab_0.tar.bz2#a8192f3585f341ea66c60c189580ac67 -https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.4.2-pyhd8ed1ab_0.tar.bz2#5309fca1777cfdd2d7ab582edb8cc41a -https://conda.anaconda.org/conda-forge/noarch/wheel-0.38.4-pyhd8ed1ab_0.tar.bz2#c829cfb8cb826acb9de0ac1a2df0a940 -https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.5-pyhd8ed1ab_0.conda#2af53b3894fb9bdbb3679c0d31028b1b -https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.14.1-py310h5764c6d_1.tar.bz2#49c8664940fe2f6124193ba3cc32ca20 -https://conda.anaconda.org/conda-forge/noarch/xmltodict-0.13.0-pyhd8ed1ab_0.tar.bz2#b5b33faed6ed2b4ba47a690b8f5c0818 -https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.4-h7f98852_1.tar.bz2#536cc5db4d0a3ba0630541aec064b5e4 -https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-5.0.3-h7f98852_1004.tar.bz2#e9a21aa4d5e3e5f1aed71e8cefd46b6a -https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.10-h7f98852_1003.tar.bz2#f59c1242cc1dd93e72c2ee2b360979eb -https://conda.anaconda.org/conda-forge/noarch/xyzservices-2022.9.0-pyhd8ed1ab_0.tar.bz2#0c0e2e24aa2e9ee3dd99c611b1098047 -https://conda.anaconda.org/conda-forge/noarch/zipp-3.11.0-pyhd8ed1ab_0.conda#09b5b885341697137879a4f039a9e5a1 -https://conda.anaconda.org/conda-forge/noarch/aioitertools-0.11.0-pyhd8ed1ab_0.tar.bz2#59c40397276a286241c65faec5e1be3c -https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.3.1-pyhd8ed1ab_0.tar.bz2#d1e1eb7e21a9e2c74279d87dafb68156 -https://conda.anaconda.org/conda-forge/noarch/anyio-3.6.2-pyhd8ed1ab_0.tar.bz2#8ada050fa88f26916fc1e76e368a49fd -https://conda.anaconda.org/conda-forge/noarch/asgi-lifespan-1.0.1-pyhd8ed1ab_5.tar.bz2#6f9157453c534cec49295e7b30c73c82 -https://conda.anaconda.org/conda-forge/noarch/asttokens-2.2.1-pyhd8ed1ab_0.conda#bf7f54dd0f25c3f06ecb82a07341841a -https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.6.21-hd93a3ba_3.conda#1dc0c00522a7251d739d46b03637fce5 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.7.13-h0b5698f_12.conda#a1b44dfb2c581a9d74c4fdf826d66d6a -https://conda.anaconda.org/conda-forge/noarch/babel-2.11.0-pyhd8ed1ab_0.tar.bz2#2ea70fde8d581ba9425a761609eed6ba -https://conda.anaconda.org/conda-forge/noarch/backports.functools_lru_cache-1.6.4-pyhd8ed1ab_0.tar.bz2#c5b3edc62d6309088f4970b3eaaa65a6 -https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.11.1-pyha770c72_0.tar.bz2#eeec8814bd97b2681f708bb127478d7d -https://conda.anaconda.org/conda-forge/noarch/bleach-5.0.1-pyhd8ed1ab_0.tar.bz2#1f5151d37e4a2b1137f81c89a3a769f2 -https://conda.anaconda.org/conda-forge/linux-64/bottleneck-1.3.5-py310hde88566_1.tar.bz2#84afa227deed258360325281fcb036c5 -https://conda.anaconda.org/conda-forge/linux-64/brunsli-0.1-h9c3ff4c_0.tar.bz2#c1ac6229d0bfd14f8354ff9ad2a26cad -https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2#9b347a7ec10940d3f7941ff6c460b551 -https://conda.anaconda.org/conda-forge/noarch/cachey-0.2.1-pyh9f0ad1d_0.tar.bz2#8583ac4d33e58a116d0a93c5e99e0fff -https://conda.anaconda.org/conda-forge/linux-64/cairo-1.16.0-ha61ee94_1014.tar.bz2#d1a88f3ed5b52e1024b80d4bcd26a7a0 -https://conda.anaconda.org/conda-forge/linux-64/cffi-1.15.1-py310h255011f_3.conda#800596144bb613cd7ac58b80900ce835 -https://conda.anaconda.org/conda-forge/linux-64/cfitsio-4.2.0-hd9d235c_0.conda#8c57a9adbafd87f5eff842abde599cb4 -https://conda.anaconda.org/conda-forge/linux-64/cftime-1.6.2-py310hde88566_1.tar.bz2#94ce7a76b0c912279f6958e0b6b21d2b -https://conda.anaconda.org/conda-forge/linux-64/ciso-0.2.0-py310hde88566_0.tar.bz2#3b718f9b9ac412bde63624da67066000 -https://conda.anaconda.org/conda-forge/noarch/click-plugins-1.1.1-py_0.tar.bz2#4fd2c6b53934bd7d96d1f3fdaf99b79f -https://conda.anaconda.org/conda-forge/noarch/cligj-0.7.2-pyhd8ed1ab_1.tar.bz2#a29b7c141d6b2de4bb67788a5f107734 -https://conda.anaconda.org/conda-forge/noarch/comm-0.1.2-pyhd8ed1ab_0.conda#3c78af4752bb1600ebe5e83ef4588eaa -https://conda.anaconda.org/conda-forge/noarch/commonmark-0.9.1-py_0.tar.bz2#6aa0173c14befcd577ded130cf6f22f5 -https://conda.anaconda.org/conda-forge/noarch/configobj-5.0.6-py_0.tar.bz2#e46ba874295e2eda5593650895777913 -https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.0.6-py310hbf28c38_0.tar.bz2#c5b1699e390d30b680dd93a2b251062b -https://conda.anaconda.org/conda-forge/linux-64/curl-7.87.0-hdc1c0ab_0.conda#b14123ca479b9473d7f7395b0fd25c97 -https://conda.anaconda.org/conda-forge/linux-64/cytoolz-0.12.0-py310h5764c6d_1.tar.bz2#fd18cd597d23b2b5ddde23bd5b7aec32 -https://conda.anaconda.org/conda-forge/noarch/docrep-0.3.2-pyh44b312d_0.tar.bz2#235523955bc1bfb019d7ec8a2bb58f9a -https://conda.anaconda.org/conda-forge/noarch/donfig-0.7.0-pyhd8ed1ab_1.tar.bz2#d1e0d0de441debd742096ca3d6493f08 -https://conda.anaconda.org/conda-forge/noarch/eofs-1.4.0-py_0.tar.bz2#6e166cd37cfeadefcfca1ffe00f222bb -https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.38.0-py310h5764c6d_1.tar.bz2#12ebe92a8a578bc903bd844744f4d040 -https://conda.anaconda.org/conda-forge/noarch/geopy-2.3.0-pyhd8ed1ab_0.tar.bz2#529faeecd6eee3a3b782566ddf05ce92 -https://conda.anaconda.org/conda-forge/noarch/gitdb-4.0.10-pyhd8ed1ab_0.conda#3706d2f3d7cb5dae600c833345a76132 -https://conda.anaconda.org/conda-forge/linux-64/grpcio-1.51.1-py310hc32fa93_0.conda#9f111b88852841a1b77055363b5db3bf -https://conda.anaconda.org/conda-forge/linux-64/gsw-3.4.0-py310hde88566_3.tar.bz2#59e5e5100dc5147295390f3cbf8e4fe1 -https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_0.tar.bz2#b21ed0883505ba1910994f1df031a428 -https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_0.tar.bz2#b748fbf7060927a6e82df7cb5ee8f097 -https://conda.anaconda.org/conda-forge/linux-64/h3-py-3.7.4-py310hd8f1fbe_1.tar.bz2#fb6caff786b93eba713a1f9068773835 -https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.12.2-mpi_mpich_h5d83325_1.conda#811c4d55cf17b42336ffa314239717b0 -https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-6.0.0-pyha770c72_0.conda#691644becbcdca9f73243450b1c63e62 -https://conda.anaconda.org/conda-forge/noarch/importlib_resources-5.10.2-pyhd8ed1ab_0.conda#de76905f801c22fc43e624058574eab3 -https://conda.anaconda.org/conda-forge/noarch/isodate-0.6.1-pyhd8ed1ab_0.tar.bz2#4a62c93c1b5c0b920508ae3fd285eaf5 -https://conda.anaconda.org/conda-forge/noarch/jedi-0.18.2-pyhd8ed1ab_0.conda#b5e695ef9c3f0d27d6cd96bf5adc9e07 -https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.2-pyhd8ed1ab_1.tar.bz2#c8490ed5c70966d232fdd389d0dbed37 -https://conda.anaconda.org/conda-forge/noarch/joblib-1.2.0-pyhd8ed1ab_0.tar.bz2#7583652522d71ad78ba536bba06940eb -https://conda.anaconda.org/conda-forge/noarch/jsonpatch-1.32-pyhd8ed1ab_0.tar.bz2#09150b51b0528a31a0f6500b96fdde82 -https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-h5aea950_4.conda#82ef57611ace65b59db35a9687264572 -https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.5.0-h21dfe5b_1.conda#af905d193c58a376621f09a21849d2c6 -https://conda.anaconda.org/conda-forge/linux-64/libva-2.17.0-h0b41bf4_0.conda#48507fffd0918721dafbfe53be16fc9d -https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.6-pyhd8ed1ab_0.tar.bz2#b21613793fcc81d944c76c9f2864a7de -https://conda.anaconda.org/conda-forge/noarch/mercantile-1.2.1-pyhd8ed1ab_0.tar.bz2#aa20d014b5bd1924727dd86467648a27 -https://conda.anaconda.org/conda-forge/noarch/multipledispatch-0.6.0-py_0.tar.bz2#1073dc92c8f247d94ac14dd79ca0bbec -https://conda.anaconda.org/conda-forge/noarch/munch-2.5.0-py_0.tar.bz2#31d9e9be500e25ff0050bc9f57a6bcd7 -https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.11.0-py310heca2aa9_1.conda#476b14f637de9e4e811d881a925e8936 -https://conda.anaconda.org/conda-forge/noarch/numpy_groupies-0.9.20-pyhd8ed1ab_0.tar.bz2#6cd350ec84b4d1e78d206cf0dead4b98 -https://conda.anaconda.org/conda-forge/noarch/partd-1.3.0-pyhd8ed1ab_0.tar.bz2#af8c82d121e63082926062d61d9abb54 -https://conda.anaconda.org/conda-forge/noarch/pexpect-4.8.0-pyh1a96a4e_2.tar.bz2#330448ce4403cc74990ac07c555942a1 -https://conda.anaconda.org/conda-forge/linux-64/pillow-9.4.0-py310h4927cde_0.conda#66366aceea767f174f4d0408f3a62812 -https://conda.anaconda.org/conda-forge/noarch/pip-22.3.1-pyhd8ed1ab_0.tar.bz2#da66f2851b9836d3a7c5190082a45f7d -https://conda.anaconda.org/conda-forge/linux-64/postgresql-15.1-h3248436_3.conda#4f686d5d582a3e3b32a3cb010fa12103 -https://conda.anaconda.org/conda-forge/linux-64/proj-9.1.0-h8ffa02c_1.conda#ed901e1f5c504b144b31f015c6702634 -https://conda.anaconda.org/conda-forge/linux-64/protobuf-4.21.12-py310heca2aa9_0.conda#90bb7e1b729c4b50272cf78be97ab912 -https://conda.anaconda.org/conda-forge/noarch/pyasn1-modules-0.2.7-py_0.tar.bz2#ad1e886d09700b2304975335f714bd9c -https://conda.anaconda.org/conda-forge/noarch/pyct-core-0.4.6-py_0.tar.bz2#55ec526f95e0959de3f68bc6289a20da -https://conda.anaconda.org/conda-forge/linux-64/pyerfa-2.0.0.1-py310hde88566_3.tar.bz2#08593f8704ebf3f33f1525ecfd245f9d -https://conda.anaconda.org/conda-forge/noarch/pygments-2.14.0-pyhd8ed1ab_0.conda#c78cd16b11cd6a295484bd6c8f24bea1 -https://conda.anaconda.org/conda-forge/linux-64/pykdtree-1.3.6-py310hde88566_2.tar.bz2#63ba397616c5b5bb2bc8211f4dbd261e -https://conda.anaconda.org/conda-forge/noarch/pyorbital-1.7.3-pyhd8ed1ab_0.tar.bz2#2213b9495f548869b9ffb12bf3de966e -https://conda.anaconda.org/conda-forge/noarch/pytest-7.2.0-pyhd8ed1ab_2.tar.bz2#ac82c7aebc282e6ac0450fca012ca78c -https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0.tar.bz2#dd999d1cc9f79e67dbb855c8924c7984 -https://conda.anaconda.org/conda-forge/noarch/python-slugify-7.0.0-pyhd8ed1ab_0.conda#4a66b95a61c676164ea2b93385bd641b -https://conda.anaconda.org/conda-forge/linux-64/pytz-deprecation-shim-0.1.0.post0-py310hff52083_3.tar.bz2#82aa6b712a8268bc74d25b4a254b7dbc -https://conda.anaconda.org/conda-forge/noarch/pyu2f-0.1.5-pyhd8ed1ab_0.tar.bz2#caabbeaa83928d0c3e3949261daa18eb -https://conda.anaconda.org/conda-forge/noarch/pyviz_comms-2.2.1-pyhd8ed1ab_1.tar.bz2#f5ddc41fa1892a341e17d2f9bfa1c584 -https://conda.anaconda.org/conda-forge/linux-64/pywavelets-1.4.1-py310h0a54255_0.conda#b9e952fe3f7528ab603d2776175ba8d2 -https://conda.anaconda.org/conda-forge/noarch/rsa-4.7.2-pyh44b312d_0.tar.bz2#3452ab3790dbb1df9508b3fa4ea2f806 -https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.17.21-py310h5764c6d_2.tar.bz2#93643151fba5c31c676effdd7661f075 -https://conda.anaconda.org/conda-forge/linux-64/shapely-1.8.5-py310h5b266fc_2.tar.bz2#c4a3707d6a630facb6cf7ed8e0d37326 -https://conda.anaconda.org/conda-forge/noarch/snuggs-1.4.7-py_0.tar.bz2#cb83a3d6ecf73f50117635192414426a -https://conda.anaconda.org/conda-forge/linux-64/sqlalchemy-1.4.46-py310h1fa729e_0.conda#7d70e0b7322c6e9b1f69d72d46af865d -https://conda.anaconda.org/conda-forge/noarch/terminado-0.17.1-pyh41d4057_0.conda#3788984d535770cad699efaeb6cb3037 -https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.2.1-pyhd8ed1ab_0.tar.bz2#7234c9eefff659501cd2fe0d2ede4d48 -https://conda.anaconda.org/conda-forge/noarch/tqdm-4.64.1-pyhd8ed1ab_0.tar.bz2#5526ff3f88f9db87bb0924b9ce575345 -https://conda.anaconda.org/conda-forge/noarch/traittypes-0.2.1-pyh9f0ad1d_2.tar.bz2#7d32ccb5334a6822c28af3e864550618 -https://conda.anaconda.org/conda-forge/noarch/trollsift-0.5.0-pyhd8ed1ab_0.conda#b518bae7a93da138b9bb5d9e20e1ac48 -https://conda.anaconda.org/conda-forge/noarch/typer-0.4.2-pyhd8ed1ab_0.tar.bz2#53790ab151e6deaed2c79bc9a641ae9c -https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.4.0-hd8ed1ab_0.tar.bz2#be969210b61b897775a0de63cd9e9026 -https://conda.anaconda.org/conda-forge/linux-64/xerces-c-3.2.4-h55805fa_1.tar.bz2#d127dc8efe24033b306180939e51e6af -https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.7.10-h7f98852_0.tar.bz2#e77615e5141cad5a2acaa043d1cf0ca5 -https://conda.anaconda.org/conda-forge/linux-64/yarl-1.8.2-py310h5764c6d_0.conda#a88cda17074955bdb5e93b8e3be59e7d -https://conda.anaconda.org/conda-forge/noarch/zict-2.2.0-pyhd8ed1ab_0.tar.bz2#cd563d01df94e51f968645dbf3b310b0 -https://conda.anaconda.org/conda-forge/noarch/aiosqlite-0.18.0-pyhd8ed1ab_0.conda#79465625fc906e2e24d37f31c2637754 -https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-21.2.0-py310h5764c6d_3.tar.bz2#12f70cd23e4ea88f913dba50b0f0aba0 -https://conda.anaconda.org/conda-forge/linux-64/astropy-5.2.1-py310h0a54255_0.conda#fb499766b4183b6f3088fc7ed45d1aff -https://conda.anaconda.org/conda-forge/noarch/async-timeout-4.0.2-pyhd8ed1ab_0.tar.bz2#25e79f9a1133556671becbd65a170c78 -https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.2.1-h82cbbf9_4.conda#d28c4eb06106bc09129c6b23262cdabd -https://conda.anaconda.org/conda-forge/linux-64/bcrypt-3.2.2-py310h5764c6d_1.tar.bz2#b9ed1abcb93da7b8683fd071b81bab6c -https://conda.anaconda.org/conda-forge/noarch/bokeh-2.4.3-pyhd8ed1ab_3.tar.bz2#e4c6e6d99add99cede5328d811cacb21 -https://conda.anaconda.org/conda-forge/noarch/branca-0.6.0-pyhd8ed1ab_0.tar.bz2#f4cc65697763ef8c2f7555f1ec355a6b -https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py310h5764c6d_1005.tar.bz2#87669c3468dff637bbd0363bc0f895cf -https://conda.anaconda.org/conda-forge/noarch/croniter-1.3.8-pyhd8ed1ab_0.conda#aa7e7bd6f6941d2d36a4e8eb284a9415 -https://conda.anaconda.org/conda-forge/linux-64/cryptography-39.0.0-py310h34c0648_0.conda#af4b0c22dc4006ce3c095e840cb2efd7 -https://conda.anaconda.org/conda-forge/noarch/dask-core-2022.12.1-pyhd8ed1ab_0.conda#f12878f9839c72f3d51af02fb10da43d -https://conda.anaconda.org/conda-forge/noarch/datashape-0.5.4-py_1.tar.bz2#50ddfce434ea596fc4497085f403a9d5 -https://conda.anaconda.org/conda-forge/noarch/fastjmd95-0.2.1-pyh44b312d_0.tar.bz2#1c964b3de70514bbf641464d78f4fb5a -https://conda.anaconda.org/conda-forge/linux-64/ffmpeg-5.1.2-gpl_h8dda1f0_105.conda#cbadcd92fb43cf3a105aab170bf71357 -https://conda.anaconda.org/conda-forge/linux-64/freeglut-3.2.2-h9c3ff4c_1.tar.bz2#1192066d1296de9b492175a4cf43fe8a -https://conda.anaconda.org/conda-forge/linux-64/geotiff-1.7.1-h7157cca_5.conda#dfb1b96aee336c345c1833cf8f486acc -https://conda.anaconda.org/conda-forge/noarch/gitpython-3.1.30-pyhd8ed1ab_0.conda#0c217ab2f5ef6925e4e52c70b57cfc4a -https://conda.anaconda.org/conda-forge/linux-64/google-crc32c-1.1.2-py310he8fe98e_4.tar.bz2#eacd2681883d37f27440cf5cd779bef2 -https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.57.1-pyhd8ed1ab_0.conda#cbf8b4569c1d2a0a6077d34a2d38333e -https://conda.anaconda.org/conda-forge/noarch/griffe-0.21.0-pyhd8ed1ab_1.tar.bz2#d6b89976efc5e3848b6b6fed9c520251 -https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-6.0.0-h8e241bc_0.conda#448fe40d2fed88ccf4d9ded37cbb2b38 -https://conda.anaconda.org/conda-forge/noarch/httpcore-0.16.3-pyhd8ed1ab_0.conda#8279f7a8c4b485c47c4ef1b07dfb6442 -https://conda.anaconda.org/conda-forge/linux-64/imagecodecs-2022.12.24-py310h17758e3_0.conda#a0aa9212e7f26f38714937ec0fdc6eff -https://conda.anaconda.org/conda-forge/noarch/imageio-2.24.0-pyh24c5eb1_0.conda#e8a7ffa70678faf378356ed2719120e9 -https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-6.0.0-hd8ed1ab_0.conda#a67d43e1527a37199dd8db913366f68e -https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.17.3-pyhd8ed1ab_0.conda#723268a468177cd44568eb8f794e0d80 -https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.2.2-pyhd8ed1ab_0.tar.bz2#243f63592c8e449f40cd42eb5cf32f40 -https://conda.anaconda.org/conda-forge/linux-64/kealib-1.5.0-ha7026e8_0.conda#c948b920f45fd81a2dde8b1ab514cc84 -https://conda.anaconda.org/conda-forge/linux-64/libnetcdf-4.8.1-mpi_mpich_hcd871d9_6.tar.bz2#6cdc429ed22edb566ac4308f3da6916d -https://conda.anaconda.org/conda-forge/linux-64/libspatialite-5.0.1-h7c8129e_22.tar.bz2#23abed7562ad969493b89ad0e5f5c521 -https://conda.anaconda.org/conda-forge/noarch/mako-1.2.4-pyhd8ed1ab_0.tar.bz2#0d072f0edc017b6318dbab701e053f94 -https://conda.anaconda.org/conda-forge/noarch/markdown-3.4.1-pyhd8ed1ab_0.tar.bz2#50d5bcf9693d8c1e7db6b1150b5c4ee5 -https://conda.anaconda.org/conda-forge/linux-64/pandas-1.5.2-py310h9b08913_2.conda#99e34b448c0510acaf98955668c0ac9e -https://conda.anaconda.org/conda-forge/linux-64/pendulum-2.1.2-py310h5764c6d_5.tar.bz2#d0a481d25d53bfa27b95341d17da86e1 -https://conda.anaconda.org/conda-forge/noarch/platformdirs-2.6.2-pyhd8ed1ab_0.conda#0b4cc3f8181b0d8446eb5387d7848a54 -https://conda.anaconda.org/conda-forge/linux-64/poppler-22.12.0-h091648b_1.conda#25cfe805ac16b3bed648f5376bc389f0 -https://conda.anaconda.org/conda-forge/noarch/pqdm-0.1.0-pyhd8ed1ab_0.tar.bz2#667cd75f26a380441f5612434d72e81f -https://conda.anaconda.org/conda-forge/linux-64/pydantic-1.10.4-py310h1fa729e_1.conda#9141df307497cf8de501bfd0205c6d1b -https://conda.anaconda.org/conda-forge/linux-64/pynacl-1.5.0-py310h5764c6d_2.tar.bz2#61e89a7a37bee9dd72449733a9273ae2 -https://conda.anaconda.org/conda-forge/noarch/pystac-1.6.1-pyhd8ed1ab_1.tar.bz2#a37e92ca5a1092f0680524e30b33ea27 -https://conda.anaconda.org/conda-forge/noarch/rich-13.0.1-pyhd8ed1ab_0.conda#f6ed7a402e1378ca13bc0f3d8ec2763a -https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.2-pyhd8ed1ab_0.conda#e7df0fdd404616638df5ece6e69ba7af -https://conda.anaconda.org/conda-forge/noarch/starlette-0.22.0-pyhd8ed1ab_0.tar.bz2#49d5cdcc16c691e4ad9355c81f004c3e -https://conda.anaconda.org/conda-forge/linux-64/tiledb-2.13.1-hd532e3d_0.conda#61516d16aeaebcc30bce2c1e3b8a602f -https://conda.anaconda.org/conda-forge/linux-64/timezonefinder-6.1.5-py310h166bdaf_0.tar.bz2#52e064cc6694e17cce66ec16a38c6e5c -https://conda.anaconda.org/conda-forge/linux-64/tzlocal-4.2-py310hff52083_2.tar.bz2#3bf45672f7bb89916c06cd5e19e8710d -https://conda.anaconda.org/conda-forge/linux-64/uvicorn-0.20.0-py310hff52083_1.conda#99bda904de47d877a5731a68bd053373 -https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.5-pyh9f0ad1d_2.tar.bz2#5266fcd697043c59621fda522b3d78ee -https://conda.anaconda.org/conda-forge/noarch/zarr-2.13.3-pyhd8ed1ab_0.tar.bz2#7e212240cf03e35a6b3201010a1a1e12 -https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.8.3-py310h5764c6d_1.tar.bz2#7212b99b48dcdb1d384078d772227130 -https://conda.anaconda.org/conda-forge/noarch/alembic-1.9.1-pyhd8ed1ab_0.conda#5519188d282629ce4fef73eb87285cbe -https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-21.3.0-pyhd8ed1ab_0.tar.bz2#a0b402db58f73aaab8ee0ca1025a362e -https://conda.anaconda.org/conda-forge/linux-64/av-10.0.0-py310h2d7f6f1_2.tar.bz2#9516c264bd4990da75e3f3996ae54409 -https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.18.16-h26430d7_8.conda#b0616a928e0654369140499768f372cc -https://conda.anaconda.org/conda-forge/noarch/dateparser-1.1.6-pyhd8ed1ab_0.conda#6f8380dbef32ac7abc301cef57053a73 -https://conda.anaconda.org/conda-forge/noarch/descartes-1.1.0-py_4.tar.bz2#32fa3526c15250ccf353f1ce905f50b3 -https://conda.anaconda.org/conda-forge/noarch/fastapi-0.89.1-pyhd8ed1ab_0.conda#4a1122ca99cafd7235b6c7eb34b7d3aa -https://conda.anaconda.org/conda-forge/noarch/flox-0.6.5-pyhd8ed1ab_0.conda#2b3fb9fdffa83dad6d17b3420e264551 -https://conda.anaconda.org/conda-forge/noarch/ftfy-6.1.1-pyhd8ed1ab_0.tar.bz2#8112acb97be37967accbbe75436b62d7 -https://conda.anaconda.org/conda-forge/noarch/geopandas-base-0.12.2-pyha770c72_0.conda#cf04d066b97dfe698f0d01ebf4af6163 -https://conda.anaconda.org/conda-forge/noarch/google-resumable-media-2.4.0-pyhd8ed1ab_0.tar.bz2#d8e92214f92379047780fd31bc8b1f94 -https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.1.0-pyhd8ed1ab_0.conda#9c84a0e113efe1cb82cd1046f4e34e34 -https://conda.anaconda.org/conda-forge/noarch/httpx-0.23.3-pyhd8ed1ab_0.conda#876c8fa1860f889bb47bccc528015ca7 -https://conda.anaconda.org/conda-forge/linux-64/jasper-2.0.33-ha77e612_0.tar.bz2#054883e8ea7142e89bcbec08b5d401ea -https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-5.1.3-py310hff52083_0.conda#44d3a1cdfe499317b34c3a5527daf241 -https://conda.anaconda.org/conda-forge/noarch/jupyter_telemetry-0.1.0-pyhd8ed1ab_1.tar.bz2#bb9ebdb6d5aa2622484aff1faceee181 -https://conda.anaconda.org/conda-forge/noarch/kerchunk-0.0.9-pyhd8ed1ab_0.tar.bz2#142a84eef146662b335fff89fb3fdce2 -https://conda.anaconda.org/conda-forge/linux-64/libgdal-3.6.2-he31f7c0_1.conda#f16dc7517110a11910f7c1d9def32d38 -https://conda.anaconda.org/conda-forge/noarch/nc-time-axis-1.4.1-pyhd8ed1ab_0.tar.bz2#281b58948bf60a2582de9e548bcc5369 -https://conda.anaconda.org/conda-forge/linux-64/netcdf-fortran-4.6.0-mpi_mpich_hd09bd1e_1.tar.bz2#0b69750bb937cab0db14f6bcef6fd787 -https://conda.anaconda.org/conda-forge/linux-64/netcdf4-1.6.2-nompi_py310h55e1e36_100.tar.bz2#4dd7aa28fb7d9a6de061c9579a30e7dd -https://conda.anaconda.org/conda-forge/noarch/oauthlib-3.2.2-pyhd8ed1ab_0.tar.bz2#8f882b197fd9c4941a787926baea4868 -https://conda.anaconda.org/conda-forge/linux-64/pango-1.50.12-hd33c08f_1.conda#667dc93c913f0156e1237032e3a22046 -https://conda.anaconda.org/conda-forge/linux-64/parallelio-2.5.10-mpi_mpich_h862c5c2_100.conda#56e43c5226670aa0943fae9a2628a934 -https://conda.anaconda.org/conda-forge/noarch/paramiko-2.12.0-pyhd8ed1ab_0.tar.bz2#d96f72687c95e32a4fafef7cf61d985d -https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.36-pyha770c72_0.conda#4d79ec192e0bfd530a254006d123b9a6 -https://conda.anaconda.org/conda-forge/noarch/pyopenssl-23.0.0-pyhd8ed1ab_0.conda#d41957700e83bbb925928764cb7f8878 -https://conda.anaconda.org/conda-forge/linux-64/pyresample-1.26.0.post0-py310h769672d_0.conda#ad25e557fe1de43179c3d421092618af -https://conda.anaconda.org/conda-forge/noarch/pytools-2022.1.14-pyhd8ed1ab_0.conda#d62e4ce2fc74ff2fe110a5a922b26da2 -https://conda.anaconda.org/conda-forge/noarch/tifffile-2022.10.10-pyhd8ed1ab_0.tar.bz2#1c126ff5b4643785bbc16e44e6327e41 -https://conda.anaconda.org/conda-forge/linux-64/tiledb-py-0.19.1-py310h28d4714_0.conda#6887f3f8ee1599d5c1e46345e73c53f5 -https://conda.anaconda.org/conda-forge/noarch/xarray-2022.12.0-pyhd8ed1ab_0.conda#fd0b8bb7c8df27e09fdee6c893f2ba9d -https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.9.379-h32f6703_7.conda#18cef307f622b005fcdff9308590871c -https://conda.anaconda.org/conda-forge/noarch/certipy-0.1.3-py_0.tar.bz2#23486713ef5712923e7c57cae609b22e -https://conda.anaconda.org/conda-forge/noarch/cf_xarray-0.7.6-pyhd8ed1ab_0.conda#d056f6bce1b071380c2adda017f54509 -https://conda.anaconda.org/conda-forge/noarch/cgen-2020.1-py_0.tar.bz2#f51cf23f72dcc18e07f44feb5a152d6e -https://conda.anaconda.org/conda-forge/linux-64/eccodes-2.27.1-h7f7619e_0.conda#42dfafe8f635d19ca9aa9771ea9e1b9f -https://conda.anaconda.org/conda-forge/linux-64/esmf-8.4.0-mpi_mpich_hc592774_102.conda#cbae8c932a9d2ee620db7ce7ae0abaf5 -https://conda.anaconda.org/conda-forge/linux-64/gtk2-2.24.33-h90689f9_2.tar.bz2#957a0255ab58aaf394a91725d73ab422 -https://conda.anaconda.org/conda-forge/noarch/ipython-8.8.0-pyh41d4057_0.conda#788c234d910ad9f37174d1845c1a52c7 -https://conda.anaconda.org/conda-forge/noarch/jupyter_client-7.4.9-pyhd8ed1ab_0.conda#5cbf9a31a19d4ef9103adb7d71fd45fd -https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.54.4-h7abd40a_0.tar.bz2#921e53675ed5ea352f022b79abab076a -https://conda.anaconda.org/conda-forge/noarch/nbformat-5.7.3-pyhd8ed1ab_0.conda#9714111cb6c7dbbc9a9f34de205c2f29 -https://conda.anaconda.org/conda-forge/noarch/odc-geo-0.3.3-pyhd8ed1ab_0.conda#40b8c302f8b972ee2eecc209886cbde5 -https://conda.anaconda.org/conda-forge/noarch/pint-xarray-0.3-pyhd8ed1ab_0.tar.bz2#d748055363d88b1e90b5ba316982e165 -https://conda.anaconda.org/conda-forge/noarch/pymbolic-2022.2-pyhd8ed1ab_0.conda#b2e55b3de35c94a32a83f79a0733f5b4 -https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.14-pyhd8ed1ab_0.conda#01f33ad2e0aaf6b5ba4add50dad5ad29 -https://conda.anaconda.org/conda-forge/noarch/xarray-datatree-0.0.11-pyhd8ed1ab_0.conda#300f269908c3f6bffafe1d275c5df3c1 -https://conda.anaconda.org/conda-forge/noarch/botocore-1.27.59-pyhd8ed1ab_0.tar.bz2#3faabd8720a81a91566e6c01bf7bbacb -https://conda.anaconda.org/conda-forge/noarch/distributed-2022.12.1-pyhd8ed1ab_0.conda#63cf20ed7b5205cf4c31aadee4c7fd2e -https://conda.anaconda.org/conda-forge/linux-64/esmpy-8.4.0-mpi_mpich_py310h515c5ea_101.conda#8a00edb7362ef5ff0db5dd75099daac7 -https://conda.anaconda.org/conda-forge/linux-64/fiona-1.8.22-py310ha325b7b_5.conda#4dbdf48d4712e8906595291f38423eff -https://conda.anaconda.org/conda-forge/linux-64/graphviz-7.0.6-h2e5815a_0.conda#3f00d99a609f5a0cf496eae1f57b4357 -https://conda.anaconda.org/conda-forge/noarch/ipykernel-6.20.1-pyh210e3f2_0.conda#cfc405049e1e3c5111fe588bacddb36f -https://conda.anaconda.org/conda-forge/linux-64/libarrow-10.0.1-hd014966_3_cpu.conda#140e06220165be4d7275f742994695d1 -https://conda.anaconda.org/conda-forge/noarch/morecantile-3.2.5-pyhd8ed1ab_0.conda#66d39510331a5e37245f7c6e18033686 -https://conda.anaconda.org/conda-forge/linux-64/nb_conda_kernels-2.3.1-py310hff52083_2.tar.bz2#5d6111f7cd8e2003801eca0f71ad712b -https://conda.anaconda.org/conda-forge/noarch/nbclient-0.7.2-pyhd8ed1ab_0.conda#6c7b0d75b66a220274bb5a28c23197f2 -https://conda.anaconda.org/conda-forge/noarch/nbstripout-0.6.1-pyhd8ed1ab_0.tar.bz2#53913d98739527409e0f3227ed7eef7d -https://conda.anaconda.org/conda-forge/linux-64/python-eccodes-1.4.2-py310hde88566_1.tar.bz2#7b16990bcd5abed05496fa41e22b7ac6 -https://conda.anaconda.org/conda-forge/noarch/requests-2.28.1-pyhd8ed1ab_1.tar.bz2#089382ee0e2dc2eae33a04cc3c2bddb0 -https://conda.anaconda.org/conda-forge/noarch/stackstac-0.4.3-pyhd8ed1ab_0.tar.bz2#6f26e2a166b5ecac6c330da16088205b -https://conda.anaconda.org/conda-forge/noarch/xmip-0.7.1-pyhd8ed1ab_0.conda#e70793265785700648629a38c1154b1c -https://conda.anaconda.org/conda-forge/noarch/adal-1.2.7-pyhd8ed1ab_0.tar.bz2#1a0f134d22bad81e93f1e130b35afb35 -https://conda.anaconda.org/conda-forge/noarch/aiobotocore-2.4.0-pyhd8ed1ab_0.tar.bz2#9adcdcd7539afff88018c18b650dee50 -https://conda.anaconda.org/conda-forge/linux-64/arrow-cpp-10.0.1-h27aab58_3_cpu.conda#10cf2576cacaa28b523f7438bcb13c58 -https://conda.anaconda.org/conda-forge/noarch/azure-core-1.26.2-pyhd8ed1ab_0.conda#e890bc111b6d4fdf12400ba997ecfa93 -https://conda.anaconda.org/conda-forge/noarch/cfgrib-0.9.10.3-pyhd8ed1ab_0.conda#05e07a08bca30b1467560cd57702d6be -https://conda.anaconda.org/conda-forge/noarch/dask-2022.12.1-pyhd8ed1ab_0.conda#5861b97a50edcd9c1332d21f2995eca1 -https://conda.anaconda.org/conda-forge/noarch/docker-py-6.0.0-pyhd8ed1ab_0.tar.bz2#8b0d1b5227ce39053aa69c3ff18417ec -https://conda.anaconda.org/conda-forge/noarch/erddapy-1.2.1-pyhd8ed1ab_0.tar.bz2#05c9b7407d77e382ff114b17b0eb8c21 -https://conda.anaconda.org/conda-forge/noarch/folium-0.14.0-pyhd8ed1ab_0.conda#48c8bb19df0d0268f1a9d30ffc56c5b0 -https://conda.anaconda.org/conda-forge/noarch/geogif-0.1.3-pyhd8ed1ab_0.tar.bz2#4ad11f1b2294ce15abaae195ca34b230 -https://conda.anaconda.org/conda-forge/noarch/gh-scoped-creds-4.1-pyhd8ed1ab_0.tar.bz2#726906d636cc2e711d79abd236ce441f -https://conda.anaconda.org/conda-forge/noarch/google-auth-2.15.0-pyh1a96a4e_0.conda#ce0b3b567b3b8f7a3ef5bd43b2fd1a5e -https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.0.4-pyhd8ed1ab_0.conda#9dea5ab3cc33084f7a3680a98859731e -https://conda.anaconda.org/conda-forge/noarch/jupyterhub-base-3.1.0-pyh2a2186d_0.conda#ca96c2cd4d1aaa98d9098d775e5012cb -https://conda.anaconda.org/conda-forge/noarch/msal-1.20.0-pyhd8ed1ab_0.tar.bz2#284f48b450bc1e527b6375f22234951b -https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.2.7-pyhd8ed1ab_0.conda#dce063b1f5d6193646fc2ac43f88b77f -https://conda.anaconda.org/conda-forge/noarch/pooch-1.6.0-pyhd8ed1ab_0.tar.bz2#6429e1d1091c51f626b5dcfdd38bf429 -https://conda.anaconda.org/conda-forge/noarch/pycamhd-0.7.0-py_0.tar.bz2#49407af9fedc76cd0046b331acf8c1c9 -https://conda.anaconda.org/conda-forge/noarch/pyct-0.4.6-py_0.tar.bz2#42d91c89bc3993ec88681cffd3c0e326 -https://conda.anaconda.org/conda-forge/noarch/pydap-3.3.0-pyhd8ed1ab_0.tar.bz2#9f35b5d14ce0299deb8eb6a282e07149 -https://conda.anaconda.org/conda-forge/noarch/pystac-client-0.5.1-pyhd8ed1ab_0.tar.bz2#a108fcc1f1eeec1619dc60ac6a126b5e -https://conda.anaconda.org/conda-forge/noarch/python-cmr-0.4.1-pyhd8ed1ab_0.tar.bz2#666d732881bc516d409450efdeeb699d -https://conda.anaconda.org/conda-forge/noarch/python-fsutil-0.9.3-pyhd8ed1ab_0.conda#f0a2879ea554681fd04daba600d1eb92 -https://conda.anaconda.org/conda-forge/noarch/python-gist-0.10.6-pyhd8ed1ab_0.tar.bz2#d166ece084acb7c59988847a02b1e498 -https://conda.anaconda.org/conda-forge/noarch/python-graphviz-0.20.1-pyh22cad53_0.tar.bz2#196447bc6fd769c3eb2d51de1aa866a5 -https://conda.anaconda.org/conda-forge/noarch/requests-oauthlib-1.3.1-pyhd8ed1ab_0.tar.bz2#61b279f051eef9c89d58f4d813e75e04 -https://conda.anaconda.org/conda-forge/noarch/rio-cogeo-3.5.0-pyhd8ed1ab_0.tar.bz2#9142b5401e05562c70f8ae11f3bd4590 -https://conda.anaconda.org/conda-forge/noarch/s3transfer-0.6.0-pyhd8ed1ab_0.tar.bz2#900e74d8547fbea3af028937df28ed77 -https://conda.anaconda.org/conda-forge/noarch/apprise-1.2.1-pyhd8ed1ab_0.conda#196c3076568241bcab917b537caf9c25 -https://conda.anaconda.org/conda-forge/linux-64/awscli-1.25.60-py310hff52083_0.tar.bz2#7fca00e32e7d64340bebb17799aafd16 -https://conda.anaconda.org/conda-forge/noarch/azure-datalake-store-0.0.51-pyh9f0ad1d_0.tar.bz2#0a6d240a3a8198dce8508a5409b4737e -https://conda.anaconda.org/conda-forge/noarch/boto3-1.24.59-pyhd8ed1ab_0.tar.bz2#ffb13a0a5fc8e17ce396f4dfcdf5dab5 -https://conda.anaconda.org/conda-forge/noarch/colorcet-3.0.1-pyhd8ed1ab_0.tar.bz2#1e424f22b3e2713068fe12d57f2dec5b -https://conda.anaconda.org/conda-forge/noarch/dask-gateway-2023.1.0-pyh8af1aa0_0.conda#8a0225016209c3a409929495574c4121 -https://conda.anaconda.org/conda-forge/noarch/google-api-core-2.11.0-pyhd8ed1ab_0.conda#72f60923cfbd91eec24e59c41454cecd -https://conda.anaconda.org/conda-forge/noarch/google-auth-oauthlib-0.8.0-pyhd8ed1ab_0.conda#1ec07f633554abcfcdbba1ea37ac3551 -https://conda.anaconda.org/conda-forge/noarch/intake-0.6.6-pyhd8ed1ab_0.tar.bz2#1dc29fb9182b0f3ce935a8bd4c341ed5 -https://conda.anaconda.org/conda-forge/noarch/ipyleaflet-0.17.2-pyhd8ed1ab_0.tar.bz2#fd8408ecf1e341f6aaafb7d3b5471ccc -https://conda.anaconda.org/conda-forge/noarch/ipyspin-1.0.1-pyhd8ed1ab_0.tar.bz2#cb4c1f334457ef5f88458c94c503f89e -https://conda.anaconda.org/conda-forge/noarch/ipytree-0.2.2-pyhd8ed1ab_0.tar.bz2#5cc19cec6c4598183f4a8278e2142810 -https://conda.anaconda.org/conda-forge/noarch/ipyurl-0.1.2-pyh3684270_1.tar.bz2#a72d315bc1ed6ddf0b2ace197b10886b -https://conda.anaconda.org/conda-forge/noarch/jupyter_server-1.23.5-pyhd8ed1ab_0.conda#e3ae1d46749f48a1875b560fca41cb0c -https://conda.anaconda.org/conda-forge/noarch/msal_extensions-1.0.0-pyhd8ed1ab_0.tar.bz2#db0e3cc6e5e99baf237a2ab73898f553 -https://conda.anaconda.org/conda-forge/noarch/msrest-0.7.1-pyhd8ed1ab_0.tar.bz2#a1733821b05a030e805e9a47e48df636 -https://conda.anaconda.org/conda-forge/noarch/nbconvert-pandoc-7.2.7-pyhd8ed1ab_0.conda#7d48776bb3fdfa6447267c413a480ccd -https://conda.anaconda.org/conda-forge/noarch/panel-0.14.2-pyhd8ed1ab_0.conda#fcf207d0b3e082897c3d3ccadfd1e5aa -https://conda.anaconda.org/conda-forge/noarch/parquet-cpp-1.5.1-2.tar.bz2#79a5f78c42817594ae016a7896521a97 -https://conda.anaconda.org/conda-forge/noarch/pop-tools-2021.5.28-pyhd8ed1ab_0.tar.bz2#a6abe9fd94707142081e479d97964dfb -https://conda.anaconda.org/conda-forge/noarch/python-benedict-0.24.3-pyhd8ed1ab_0.tar.bz2#102e8b853822b0b7210575c7ea47d91e -https://conda.anaconda.org/conda-forge/noarch/python-kubernetes-25.3.0-pyhd8ed1ab_0.tar.bz2#bc68c6abe3c6bfdedd8a33538e7b38dc -https://conda.anaconda.org/conda-forge/noarch/rechunker-0.5.0-pyhd8ed1ab_0.tar.bz2#6ba4c5fbad9837929bfcda5c16617214 -https://conda.anaconda.org/conda-forge/noarch/s3fs-2022.11.0-pyhd8ed1ab_0.tar.bz2#0f930e4b012f16cbd0f3b13bde776814 -https://conda.anaconda.org/conda-forge/noarch/trollimage-1.20.0-pyhd8ed1ab_0.conda#4827e3661e88b3732d19ed543f0d9dea -https://conda.anaconda.org/conda-forge/linux-64/xcape-0.1.4-py310h4828a9c_3.tar.bz2#0cad7067a8c4cfb0e4e222e504283daa -https://conda.anaconda.org/conda-forge/noarch/xgcm-0.8.1-pyhd8ed1ab_0.conda#3b4400fe7f2e6c6a969d511b39c9f2ea -https://conda.anaconda.org/conda-forge/noarch/xhistogram-0.3.2-pyhd8ed1ab_0.tar.bz2#bc7b89b54047f1d555163b597f0b79de -https://conda.anaconda.org/conda-forge/noarch/xmitgcm-0.5.2-pyhd8ed1ab_0.tar.bz2#fa9bab98df6ee06367c19eac79f17603 -https://conda.anaconda.org/conda-forge/noarch/xpublish-0.2.0-pyhd8ed1ab_0.tar.bz2#238914ef87505c7886ad6deac862a637 -https://conda.anaconda.org/conda-forge/noarch/azure-identity-1.12.0-pyhd8ed1ab_0.tar.bz2#221a093ddca5e5abf2090a68dd964266 -https://conda.anaconda.org/conda-forge/noarch/azure-storage-blob-12.14.1-pyhd8ed1ab_0.tar.bz2#a06388ac708101f9b44bb6f5652b7c18 -https://conda.anaconda.org/conda-forge/linux-64/cartopy-0.21.1-py310hcb7e713_0.conda#bd14eaad9bbf54b78e48ecb8b644fcf6 -https://conda.anaconda.org/conda-forge/noarch/datashader-0.14.3-pyh1a96a4e_0.conda#cba05faa9591451a9334f6239f4d363b -https://conda.anaconda.org/conda-forge/noarch/earthdata-0.2.2-pyhd8ed1ab_0.tar.bz2#d9c8dc3b164c2cbcf6a80cbbfa0f5688 -https://conda.anaconda.org/conda-forge/noarch/gcm_filters-0.3.0-pyhd8ed1ab_0.tar.bz2#359d7781246fb5f8ccb68cda84db9753 -https://conda.anaconda.org/conda-forge/noarch/google-cloud-core-2.3.2-pyhd8ed1ab_0.tar.bz2#7a590deea6b9b082c6a24e18c3c83dc9 -https://conda.anaconda.org/conda-forge/noarch/holoviews-1.15.3-pyhd8ed1ab_0.conda#7bd4522dcb7f1bcab13b94576ff5b0da -https://conda.anaconda.org/conda-forge/noarch/intake-esm-2022.9.18-pyhd8ed1ab_0.tar.bz2#821a4e9dbb2c98ee0be773d542279ea3 -https://conda.anaconda.org/conda-forge/noarch/intake-xarray-0.6.1-pyhd8ed1ab_0.tar.bz2#6cc318952c249b55ae83f8a994342672 -https://conda.anaconda.org/conda-forge/noarch/jupyter-resource-usage-0.7.0-pyhd8ed1ab_0.conda#c57567d49d926826b1f852712ac8acfa -https://conda.anaconda.org/conda-forge/noarch/jupyter-server-mathjax-0.2.6-pyh5bfe37b_1.conda#11ca195fc8a16770661a387bcce27c36 -https://conda.anaconda.org/conda-forge/noarch/jupyter-server-proxy-3.2.2-pyhd8ed1ab_0.tar.bz2#77b213af8a32bdc5b25c0c3fde58f889 -https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.18.0-pyhd8ed1ab_0.conda#be95d2cc7614462440e4e10b5b373067 -https://conda.anaconda.org/conda-forge/noarch/nbconvert-7.2.7-pyhd8ed1ab_0.conda#b019fe41e6f6b88e0557532514f39cff -https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.2-pyhd8ed1ab_0.tar.bz2#40be846cd4e78672a40e43db9dae753c -https://conda.anaconda.org/conda-forge/noarch/pangeo-dask-2023.1.4-hd8ed1ab_0.conda#bebae0ca0cc7802ed479ffb21fe1cb89 -https://conda.anaconda.org/conda-forge/linux-64/parcels-2.4.0-py310hff52083_0.tar.bz2#bb079d0edaf71f238d42a91616d13fca -https://conda.anaconda.org/conda-forge/noarch/patsy-0.5.3-pyhd8ed1ab_0.tar.bz2#50ef6b29b1fb0768ca82c5aeb4fb2d96 -https://conda.anaconda.org/conda-forge/noarch/prefect-2.7.7-pyhd8ed1ab_0.conda#ad50e9a20831fb0af1babab16e614f93 -https://conda.anaconda.org/conda-forge/noarch/properscoring-0.1-py_0.tar.bz2#6c230a99de487a59484fd8a1e4fea1f3 -https://conda.anaconda.org/conda-forge/linux-64/pyarrow-10.0.1-py310hea98ffe_3_cpu.conda#68febbbdf504f9105268f630eaea3af9 -https://conda.anaconda.org/conda-forge/linux-64/python-geotiepoints-1.5.1-py310h0a54255_0.conda#0f4e6f2e611e70b3d62618e736dee61b -https://conda.anaconda.org/conda-forge/noarch/rioxarray-0.13.3-pyhd8ed1ab_0.conda#9dd065a2e87736ed4f1c100716b7635a -https://conda.anaconda.org/conda-forge/linux-64/scikit-image-0.19.3-py310h769672d_2.tar.bz2#c0391107b0cd0010708d6969ed759e8b -https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.2.0-py310h209a8ca_0.conda#5a08a1f004445ee9bf58261feb16cc18 -https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.12.2-pyhd8ed1ab_0.conda#cf88f3a1c11536bc3c10c14ad00ccc42 -https://conda.anaconda.org/conda-forge/noarch/sparse-0.13.0-pyhd8ed1ab_0.tar.bz2#e9727043a1d08f997884851c9f428638 -https://conda.anaconda.org/conda-forge/noarch/xarrayutils-1.1.1-pyhd8ed1ab_0.tar.bz2#056a718565253012b9dbd25bed16abc4 -https://conda.anaconda.org/conda-forge/noarch/xrft-1.0.0-pyhd8ed1ab_0.tar.bz2#5a21f83b5aa6bbebe46d0ce35e4caad2 -https://conda.anaconda.org/conda-forge/noarch/adlfs-2022.11.2-pyhd8ed1ab_0.conda#6a789597d1269f5c6cfa89a6f54d6067 -https://conda.anaconda.org/conda-forge/noarch/argopy-0.1.12-pyhd8ed1ab_0.tar.bz2#7b0d7b4ca2b4bb892f708d800ca960ea -https://conda.anaconda.org/conda-forge/noarch/dask-glm-0.2.0-py_1.tar.bz2#7c9c5295a0499bf56bbf084578618af5 -https://conda.anaconda.org/conda-forge/noarch/geoviews-core-1.9.5-pyha770c72_0.tar.bz2#8bd65a48d838db0a95c3ca14728c3fb5 -https://conda.anaconda.org/conda-forge/noarch/google-cloud-storage-2.7.0-pyh1a96a4e_0.conda#b6073f255f6fb03c9248fef84715a74e -https://conda.anaconda.org/conda-forge/noarch/hvplot-0.8.2-pyhd8ed1ab_0.conda#71d0b1e7bbe769e41b56daa3392cf2f6 -https://conda.anaconda.org/conda-forge/noarch/intake-stac-0.4.0-pyhd8ed1ab_0.tar.bz2#d9a48c97623dc88751dbd266b89497e3 -https://conda.anaconda.org/conda-forge/noarch/jupyter-panel-proxy-0.1.0-py_0.tar.bz2#80c21feab6100e287707c371c752adea -https://conda.anaconda.org/conda-forge/noarch/mapclassify-2.4.3-pyhd8ed1ab_0.tar.bz2#908bbfb54da154042c5cbda77b37a3d1 -https://conda.anaconda.org/conda-forge/noarch/metpy-1.4.0-pyhd8ed1ab_0.conda#40cfd41f581d29def687307298186b5f -https://conda.anaconda.org/conda-forge/noarch/nbclassic-0.4.8-pyhd8ed1ab_0.tar.bz2#f4f150f83ed90a1b833e6081bbf38257 -https://conda.anaconda.org/conda-forge/noarch/nbdime-3.1.1-pyhd8ed1ab_0.tar.bz2#38dc061ffabe665b79f4c7c52cefa809 -https://conda.anaconda.org/conda-forge/noarch/pyspectral-0.12.3-pyhd8ed1ab_0.conda#34ba7a720c321e0cc37489749c9b75e3 -https://conda.anaconda.org/conda-forge/linux-64/statsmodels-0.13.5-py310hde88566_2.tar.bz2#521b762fdb5e47915251d460a8fc5814 -https://conda.anaconda.org/conda-forge/noarch/xarray-spatial-0.3.5-pyhd8ed1ab_0.tar.bz2#fad1ba75fd7013c74263fa59d6bfb01f -https://conda.anaconda.org/conda-forge/noarch/xarray_leaflet-0.1.16-pyhd8ed1ab_0.tar.bz2#f4dbd389e9329079da3bf2d88f974704 -https://conda.anaconda.org/conda-forge/noarch/xesmf-0.7.0-pyhd8ed1ab_0.conda#896a3c3b2ef4d3b2e4859ebb6d8263f8 -https://conda.anaconda.org/conda-forge/noarch/xskillscore-0.0.24-pyhd8ed1ab_0.tar.bz2#facc58b60c63642243013e12236e3ea7 -https://conda.anaconda.org/conda-forge/noarch/dask-ml-2022.5.27-pyhd8ed1ab_0.tar.bz2#3559c94d05b01996f189d08cf951e97b -https://conda.anaconda.org/conda-forge/noarch/gcsfs-2022.11.0-pyhd8ed1ab_0.tar.bz2#c23516ded441ef754ea1626a8485d9e0 -https://conda.anaconda.org/conda-forge/noarch/geopandas-0.12.2-pyhd8ed1ab_0.conda#ee3b330f13297f5839d46e1ca3e57d56 -https://conda.anaconda.org/conda-forge/noarch/jupyterlab-git-0.41.0-pyhd8ed1ab_1.conda#5985549f77be4aae95bfd9e1a7916144 -https://conda.anaconda.org/conda-forge/noarch/notebook-6.5.2-pyha770c72_1.tar.bz2#7bf26ca095481f206e6f9dd7681085fe -https://conda.anaconda.org/conda-forge/noarch/satpy-0.39.0-pyhd8ed1ab_0.conda#85dee44b48a001bed9312b84f9da1818 -https://conda.anaconda.org/conda-forge/noarch/seaborn-0.12.2-hd8ed1ab_0.conda#50847a47c07812f88581081c620f5160 -https://conda.anaconda.org/conda-forge/noarch/geocube-0.3.3-pyhd8ed1ab_0.tar.bz2#31854e4f9ae760269a328e9b9f42abaf -https://conda.anaconda.org/conda-forge/noarch/intake-geopandas-0.4.0-pyhd8ed1ab_0.tar.bz2#5d6429a927d1ef3c0d26d81f5d7b31f0 -https://conda.anaconda.org/conda-forge/noarch/jupyterlab-3.5.2-pyhd8ed1ab_0.conda#6c472ca91b5c19138f8706842f0aac14 -https://conda.anaconda.org/conda-forge/noarch/nbgitpuller-1.1.1-pyhd8ed1ab_0.tar.bz2#a2c72cf8c5fb4cd269bff97e9bf196e8 -https://conda.anaconda.org/conda-forge/noarch/dask-labextension-6.0.0-pyhd8ed1ab_0.tar.bz2#32a0ba2d4b9ed598d90463d0032aace3 -https://conda.anaconda.org/conda-forge/noarch/jupyterhub-singleuser-3.1.0-pyh2a2186d_0.conda#7607cbc55a1bc12bc9c78ce827c7bb8e -https://conda.anaconda.org/conda-forge/noarch/pangeo-notebook-2023.01.04-hd8ed1ab_0.conda#da5cfbe8cab863b9178bef5ccaeb7001 \ No newline at end of file diff --git a/jupyterlab3/pangeo/environment.yml b/jupyterlab3/pangeo/environment.yml new file mode 100644 index 0000000..262c97c --- /dev/null +++ b/jupyterlab3/pangeo/environment.yml @@ -0,0 +1,15 @@ +name: base +channels: + - defaults + - conda-forge +dependencies: + - pangeo-notebook=2023.01.04 + - gitpython=3.1.30 + - ipyleaflet=0.17.2 + - jupyterlab=3.6.1 + - jupyterlab-git=0.34.2 + - jupyter-packaging=0.12.3 + - jupyterlab_widgets=3.0.5 + - nodejs=18.15.0 + - plotly=5.5.0 + - xmltodict=0.13.0 \ No newline at end of file diff --git a/jupyterlab3/shared/environment.yml b/jupyterlab3/shared/environment.yml new file mode 100644 index 0000000..0c615d9 --- /dev/null +++ b/jupyterlab3/shared/environment.yml @@ -0,0 +1,14 @@ +name: base +channels: + - defaults + - conda-forge +dependencies: + - gitpython=3.1.26 + - ipyleaflet=0.17.2 + - jupyterlab=3.6.1 + - jupyterlab-git=0.34.2 + - jupyter-packaging=0.12.3 + - jupyterlab_widgets=1.0.2 + - nodejs=16.14.2 + - plotly=5.5.0 + - xmltodict=0.13.0 \ No newline at end of file From 1f5e7834d2ccff2f8daa8e282540a40140426529 Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Sun, 16 Apr 2023 18:17:30 -0700 Subject: [PATCH 19/25] Fixed path to pangeo image in devfile. --- devfiles/pangeo/devfile/devfile.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devfiles/pangeo/devfile/devfile.yaml b/devfiles/pangeo/devfile/devfile.yaml index 871ba79..d256bec 100644 --- a/devfiles/pangeo/devfile/devfile.yaml +++ b/devfiles/pangeo/devfile/devfile.yaml @@ -31,7 +31,7 @@ components: emptyDir: {} containers: - name: jupyter - image: 'mas.dit.maap-project.org/root/maap-workspaces/jupyterlab3-build/pangeo:develop' + image: 'mas.dit.maap-project.org/root/maap-workspaces/jupyterlab3/pangeo:develop' imagePullPolicy: Always resources: limits: From 80b035267230d65c0014f06342aaa7cffad48088 Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Sun, 16 Apr 2023 18:34:51 -0700 Subject: [PATCH 20/25] Removed unneeded build script from jupyterlab3-build folder. --- jupyterlab3-build/build-image.sh | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 jupyterlab3-build/build-image.sh diff --git a/jupyterlab3-build/build-image.sh b/jupyterlab3-build/build-image.sh deleted file mode 100644 index bc23659..0000000 --- a/jupyterlab3-build/build-image.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -set -ex -jupyterlab_dir=$(dirname $0) -BRANCH=$(git name-rev --name-only HEAD) -BRANCH=$(basename ${BRANCH}) -pushd ${jupyterlab_dir} -if [[ -z ${BASE_IMAGE_NAME} ]]; then - echo "WARNING: No value provided for BASE_IMAGE_NAME, will ./build with default miniconda3 image" - BASE_IMAGE_NAME=${CI_REGISTRY_IMAGE}/base_images/vanilla:${BRANCH} -fi -IMAGE_REF=${CI_REGISTRY_IMAGE}/pangeo/$(basename ${BASE_IMAGE_NAME}) -docker build --no-cache -t ${IMAGE_REF} --build-arg BASE_IMAGE=${BASE_IMAGE_NAME} -f docker/Dockerfile . -docker push ${IMAGE_REF} From 56567077dff37ba6885472cd61d729bb9776e3f4 Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Sun, 16 Apr 2023 18:50:04 -0700 Subject: [PATCH 21/25] Updated environment.yml file existence check in jupyterlab3 Dockerfile --- jupyterlab3/docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jupyterlab3/docker/Dockerfile b/jupyterlab3/docker/Dockerfile index 1b1c329..ecd3ab8 100644 --- a/jupyterlab3/docker/Dockerfile +++ b/jupyterlab3/docker/Dockerfile @@ -21,7 +21,7 @@ RUN apt-get clean && apt-get update && \ # Install workspace specific packages for conda environment RUN echo "Checking if environments.yml exists for ${BASE_IMAGE_TYPE}" \ - ; if [[ -d "/${BASE_IMAGE_TYPE}" ]]; then \ + ; if [[ -f "/${BASE_IMAGE_TYPE}/environment.yml" ]]; then \ mamba env update --name base --file "/${BASE_IMAGE_TYPE}/environment.yml" \ ; else \ mamba env update --name base --file "/shared/environment.yml" \ From f069eb4873f7561dff321f6249159b627252a6a0 Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Sun, 16 Apr 2023 18:55:42 -0700 Subject: [PATCH 22/25] Removed unneeded CACHE_BUST variable from base images build script. --- base_images/build-image.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/base_images/build-image.sh b/base_images/build-image.sh index 17d9931..16b1bdd 100755 --- a/base_images/build-image.sh +++ b/base_images/build-image.sh @@ -11,9 +11,8 @@ fi for dir in ${DIRS}; do pushd $base_image_dir/$dir IMAGE_NAME=$(basename $dir) - CACHE_BUST=$(date +%s) IMAGE_REF=${CI_REGISTRY_IMAGE}/base_images/${IMAGE_NAME}:${BRANCH} - docker build -t ${IMAGE_REF} --build-arg IMAGE_REF=${IMAGE_REF} --build-arg CACHE_BUST=${CACHE_BUST} -f docker/Dockerfile . + docker build -t ${IMAGE_REF} --build-arg IMAGE_REF=${IMAGE_REF} -f docker/Dockerfile . docker push ${IMAGE_REF} popd echo "$IMAGE_REF" >> built_images.txt From d77ee109f1f243ce036fcf3f23f4e386dd12d66d Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Sun, 16 Apr 2023 21:23:41 -0700 Subject: [PATCH 23/25] Updated how environments yml detection is handled. --- jupyterlab3/docker/Dockerfile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/jupyterlab3/docker/Dockerfile b/jupyterlab3/docker/Dockerfile index ecd3ab8..8c8f823 100644 --- a/jupyterlab3/docker/Dockerfile +++ b/jupyterlab3/docker/Dockerfile @@ -20,11 +20,13 @@ RUN apt-get clean && apt-get update && \ rm -rf /var/lib/apt/lists/* # Install workspace specific packages for conda environment -RUN echo "Checking if environments.yml exists for ${BASE_IMAGE_TYPE}" \ - ; if [[ -f "/${BASE_IMAGE_TYPE}/environment.yml" ]]; then \ - mamba env update --name base --file "/${BASE_IMAGE_TYPE}/environment.yml" \ +RUN echo "Checking if environment.yml exists for ${BASE_IMAGE_TYPE}" \ + ; if [ -f "/${BASE_IMAGE_TYPE}/environment.yml" ]; then \ + echo "Installing packages from '/${BASE_IMAGE_TYPE}/environment.yml'" \ + ; mamba env update --name base --file "/${BASE_IMAGE_TYPE}/environment.yml" \ ; else \ - mamba env update --name base --file "/shared/environment.yml" \ + echo "Installing packages from '/shared/environment.yml'" \ + ; mamba env update --name base --file "/shared/environment.yml" \ ; fi RUN npm install typescript -g From bf0eec44067eebc1ab6fe8827df7282b97afbecc Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Sun, 16 Apr 2023 21:25:58 -0700 Subject: [PATCH 24/25] Updated pinned versions needed for pangeo workspace. --- jupyterlab3/pangeo/environment.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/jupyterlab3/pangeo/environment.yml b/jupyterlab3/pangeo/environment.yml index 262c97c..c9d0588 100644 --- a/jupyterlab3/pangeo/environment.yml +++ b/jupyterlab3/pangeo/environment.yml @@ -1,15 +1,15 @@ name: base channels: - - defaults - conda-forge + - nodefaults dependencies: - - pangeo-notebook=2023.01.04 + - pangeo-notebook=2023.04.15 - gitpython=3.1.30 - ipyleaflet=0.17.2 - - jupyterlab=3.6.1 + - jupyterlab=3.6.3 - jupyterlab-git=0.34.2 - jupyter-packaging=0.12.3 - - jupyterlab_widgets=3.0.5 + - jupyterlab_widgets=3.0.7 - nodejs=18.15.0 - - plotly=5.5.0 + - plotly=5.14.1 - xmltodict=0.13.0 \ No newline at end of file From 0c44a8f0a9ffaed0e596717e62b405ef53154466 Mon Sep 17 00:00:00 2001 From: Anil Natha Date: Mon, 17 Apr 2023 09:24:49 -0700 Subject: [PATCH 25/25] Updated channels for shared environment.yml --- jupyterlab3/shared/environment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jupyterlab3/shared/environment.yml b/jupyterlab3/shared/environment.yml index 0c615d9..a9d5dba 100644 --- a/jupyterlab3/shared/environment.yml +++ b/jupyterlab3/shared/environment.yml @@ -1,7 +1,7 @@ name: base channels: - - defaults - conda-forge + - nodefaults dependencies: - gitpython=3.1.26 - ipyleaflet=0.17.2