Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ linux_task_template: &LINUX_TASK_TEMPLATE
- echo "$(date +%Y).$(expr $(date +%U) / ${CACHE_PERIOD}):${CONDA_CACHE_BUILD}"
- uname -r
populate_script:
- export CONDA_OVERRIDE_LINUX="$(uname -r | cut -d'+' -f1)"
- bash miniconda.sh -b -p ${HOME}/miniconda
- conda config --set always_yes yes --set changeps1 no
- conda config --set show_channel_urls True
Expand Down Expand Up @@ -151,7 +150,6 @@ task:
<< : *IRIS_TEST_DATA_TEMPLATE
<< : *LINUX_TASK_TEMPLATE
tests_script:
- export CONDA_OVERRIDE_LINUX="$(uname -r | cut -d'+' -f1)"
- echo "[Resources]" > ${SITE_CFG}
- echo "test_data_dir = ${IRIS_TEST_DATA_DIR}/test_data" >> ${SITE_CFG}
- echo "doc_dir = ${CIRRUS_WORKING_DIR}/docs" >> ${SITE_CFG}
Expand All @@ -172,7 +170,6 @@ task:
<< : *IRIS_TEST_DATA_TEMPLATE
<< : *LINUX_TASK_TEMPLATE
tests_script:
- export CONDA_OVERRIDE_LINUX="$(uname -r | cut -d'+' -f1)"
- echo "[Resources]" > ${SITE_CFG}
- echo "test_data_dir = ${IRIS_TEST_DATA_DIR}/test_data" >> ${SITE_CFG}
- echo "doc_dir = ${CIRRUS_WORKING_DIR}/docs" >> ${SITE_CFG}
Expand All @@ -195,7 +192,6 @@ task:
name: "${CIRRUS_OS}: py${PY_VER} link check"
<< : *LINUX_TASK_TEMPLATE
tests_script:
- export CONDA_OVERRIDE_LINUX="$(uname -r | cut -d'+' -f1)"
- mkdir -p ${MPL_RC_DIR}
- echo "backend : agg" > ${MPL_RC_FILE}
- echo "image.cmap : viridis" >> ${MPL_RC_FILE}
Expand Down
16 changes: 12 additions & 4 deletions lib/iris/tests/integration/test_trajectory.py
Original file line number Diff line number Diff line change
Expand Up @@ -216,8 +216,10 @@ def setUp(self):
cube.coord("depth").bounds = b32
self.cube = cube
# define a latitude trajectory (put coords in a different order
# to the cube, just to be awkward)
latitudes = list(range(-90, 90, 2))
# to the cube, just to be awkward) although avoid south pole
# singularity as a sample point and the issue of snapping to
# multi-equidistant closest points from within orca antarctic hole
latitudes = list(range(-80, 90, 2))
longitudes = [-90] * len(latitudes)
self.sample_points = [
("longitude", longitudes),
Expand All @@ -226,7 +228,9 @@ def setUp(self):

def test_tri_polar(self):
# extract
sampled_cube = traj_interpolate(self.cube, self.sample_points)
sampled_cube = traj_interpolate(
self.cube, self.sample_points, method="nearest"
)
self.assertCML(
sampled_cube, ("trajectory", "tri_polar_latitude_slice.cml")
)
Expand Down Expand Up @@ -329,8 +333,12 @@ def test_hybrid_height(self):
# Put a lazy array into the cube so we can test deferred loading.
cube.data = as_lazy_data(cube.data)

# Use opionated grid-latitudes to avoid the issue of platform
# specific behaviour within SciPy cKDTree choosing a different
# equi-distant nearest neighbour point when there are multiple
# valid candidates.
traj = (
("grid_latitude", [20.5, 21.5, 22.5, 23.5]),
("grid_latitude", [20.4, 21.6, 22.6, 23.6]),
("grid_longitude", [31, 32, 33, 34]),
)
xsec = traj_interpolate(cube, traj, method="nearest")
Expand Down
45 changes: 40 additions & 5 deletions lib/iris/tests/results/trajectory/tri_polar_latitude_slice.cml
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,25 @@
</dimCoord>
</coord>
<coord datadims="[2]">
<auxCoord id="11ca7825" long_name="Latitude" points="[-78.1906, -78.1906, -78.1906, ..., 83.8392,
86.2794, 87.9471]" shape="(90,)" standard_name="latitude" units="Unit('degrees')" value_type="float32" var_name="nav_lat">
<auxCoord id="11ca7825" long_name="Latitude" points="[-78.1906, -78.1906, -75.9593, -73.8813,
-72.1291, -70.1934, -68.0573, -65.7033,
-64.0042, -62.1951, -60.2708, -58.2263,
-56.0568, -53.7579, -52.5588, -50.0592,
-47.4221, -46.0515, -44.6461, -41.7305,
-40.2206, -38.6764, -35.4861, -33.8412, -32.164,
-30.4554, -28.7163, -25.151, -23.3275, -21.4785,
-19.6058, -17.7195, -15.8603, -14.0676, -12.371,
-9.34114, -8.02666, -5.79855, -4.04952,
-2.07787, 0.0, 2.07787, 4.04952, 5.79855,
8.02666, 9.34114, 12.371, 14.0676, 15.8603,
17.7195, 19.6058, 21.4785, 23.3259, 25.1435,
28.674, 30.3802, 32.0435, 33.662, 36.7592,
38.2365, 39.6659, 42.3824, 43.6708, 46.1128,
48.3829, 50.4917, 52.4501, 54.269, 56.0526,
58.388, 59.8105, 61.9343, 63.6994, 66.2458,
68.1604, 70.0161, 71.9718, 73.7929, 75.9537,
78.0287, 80.0671, 82.3667, 83.8392, 86.2794,
87.9471]" shape="(85,)" standard_name="latitude" units="Unit('degrees')" value_type="float32" var_name="nav_lat">
<attributes>
<attribute name="nav_model" value="Default grid"/>
<attribute name="valid_max" value="89.6139"/>
Expand All @@ -86,8 +103,26 @@
</auxCoord>
</coord>
<coord datadims="[2]">
<auxCoord id="ee0adb2e" long_name="Longitude" points="[-84.0002, -90.0001, -90.0001, ..., -86.9366,
-88.8945, -100.0]" shape="(90,)" standard_name="longitude" units="Unit('degrees')" value_type="float32" var_name="nav_lon">
<auxCoord id="ee0adb2e" long_name="Longitude" points="[-90.0001, -90.0001, -90.0001, -90.0001,
-90.0001, -90.0001, -90.0001, -90.0001,
-90.0001, -90.0001, -90.0001, -90.0001,
-90.0001, -90.0001, -90.0001, -90.0001,
-90.0001, -90.0001, -90.0001, -90.0001,
-90.0001, -90.0001, -90.0001, -90.0001,
-90.0001, -90.0001, -90.0001, -90.0001,
-90.0001, -90.0001, -90.0001, -90.0001,
-90.0001, -90.0001, -90.0001, -90.0001,
-90.0001, -90.0001, -90.0001, -90.0001,
-90.0001, -90.0001, -90.0001, -90.0001,
-90.0001, -90.0001, -90.0001, -90.0001,
-90.0001, -90.0001, -90.0001, -90.0, -90.0,
-90.0001, -90.0011, -90.0025, -90.0048,
-90.0085, -90.0212, -90.0311, -90.0439,
-90.0804, -90.1049, -90.169, -90.2563, -90.3709,
-90.5171, -90.6991, -89.099, -89.604, -90.0221,
-89.24, -90.3704, -90.003, -90.3291, -89.7086,
-89.9471, -89.177, -91.0905, -91.5342, -88.873,
-89.8953, -86.9366, -88.8945, -100.0]" shape="(85,)" standard_name="longitude" units="Unit('degrees')" value_type="float32" var_name="nav_lon">
<attributes>
<attribute name="nav_model" value="Default grid"/>
<attribute name="valid_max" value="180.0"/>
Expand All @@ -109,6 +144,6 @@
<coord name="time"/>
</cellMethod>
</cellMethods>
<data checksum="0xe9325dcb" dtype="float64" shape="(1, 31, 90)"/>
<data checksum="0x3a8195d5" dtype="float64" shape="(1, 31, 85)"/>
</cube>
</cubes>
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ def _check_angles_calculation(
u_cube.rename("dx")
u_cube.data[...] = 0
v_cube = u_cube.copy()
v_cube.name("dy")
v_cube.rename("dy")

# Define 6 different vectors, repeated in each data row.
in_vu = np.array([(0, 1), (2, -1), (-1, -1), (-3, 1), (2, 0), (0, 0)])
Expand Down Expand Up @@ -71,7 +71,7 @@ def _check_angles_calculation(
ang_diffs = out_angs - expect_angs
# Fix for null vectors, and +/-360 differences.
ang_diffs[np.abs(out_mags) < 0.001] = 0.0
ang_diffs = ang_diffs % 360.0
ang_diffs[np.isclose(np.abs(ang_diffs), 360.0)] = 0.0
# Check that any differences are very small.
self.assertArrayAllClose(ang_diffs, 0.0)

Expand All @@ -97,7 +97,7 @@ def test_angles_from_grid(self):
u_cube.rename("dx")
u_cube.data[...] = 1.0
v_cube = u_cube.copy()
v_cube.name("dy")
v_cube.rename("dy")
v_cube.data[...] = 0.0

# Setup a fake angles result from the inner call to 'gridcell_angles'.
Expand Down
9 changes: 9 additions & 0 deletions noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,13 @@
#: Default cartopy cache directory.
CARTOPY_CACHE_DIR = os.environ.get("HOME") / Path(".local/share/cartopy")

# https://github.com/numpy/numpy/pull/19478
# https://github.com/matplotlib/matplotlib/pull/22099
#: Common session environment variables.
ENV = dict(
NPY_DISABLE_CPU_FEATURES="AVX512F,AVX512CD,AVX512VL,AVX512BW,AVX512DQ,AVX512_SKX"
)


def session_lockfile(session: nox.sessions.Session) -> Path:
"""Return the path of the session lockfile."""
Expand Down Expand Up @@ -210,6 +217,7 @@ def tests(session: nox.sessions.Session):
"""
prepare_venv(session)
session.install("--no-deps", "--editable", ".")
session.env.update(ENV)
session.run(
"python",
"-m",
Expand All @@ -232,6 +240,7 @@ def doctest(session: nox.sessions.Session):
"""
prepare_venv(session)
session.install("--no-deps", "--editable", ".")
session.env.update(ENV)
session.cd("docs")
session.run(
"make",
Expand Down
22 changes: 11 additions & 11 deletions requirements/ci/nox.lock/py38-linux-64.lock
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ https://conda.anaconda.org/conda-forge/linux-64/xorg-xextproto-7.3.0-h7f98852_10
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/xxhash-0.8.0-h7f98852_3.tar.bz2#52402c791f35e414e704b7a113f99605
https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.5-h516909a_1.tar.bz2#33f601066901f3e1a85af3522a8113f9
https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h516909a_0.tar.bz2#03a530e925414902547cf48da7756db8
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/gettext-0.19.8.1-h73d1719_1008.tar.bz2#af49250eca8e139378f8ff0ae9e57251
https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-12_linux64_openblas.tar.bz2#4f93ba28c628a2c27cf39c055e6b219c
https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.0.9-h7f98852_6.tar.bz2#c7c03a2592cac92246a13a0732bd1573
Expand Down Expand Up @@ -110,19 +110,19 @@ https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.10-h7f98852_
https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.12-py_0.tar.bz2#2489a97287f90176ecdc3ca982b4b0a0
https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyh9f0ad1d_0.tar.bz2#5f095bc6454094e96f146491fd03633b
https://conda.anaconda.org/conda-forge/noarch/cfgv-3.3.1-pyhd8ed1ab_0.tar.bz2#ebb5f5f7dc4f1a3780ef7ea7738db08c
https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.0.9-pyhd8ed1ab_0.tar.bz2#a57a3f6f2b0a7400e340f850c405df19
https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-2.0.10-pyhd8ed1ab_0.tar.bz2#ea77236c8031cfa821720b21b4cb0ceb
https://conda.anaconda.org/conda-forge/noarch/cloudpickle-2.0.0-pyhd8ed1ab_0.tar.bz2#3a8fc8b627d5fb6af827e126a10a86c6
https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.4-pyh9f0ad1d_0.tar.bz2#c08b4c1326b880ed44f3ffb04803332f
https://conda.anaconda.org/conda-forge/noarch/cycler-0.11.0-pyhd8ed1ab_0.tar.bz2#a50559fad0affdbb33729a68669ca1cb
https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.4-pyhd8ed1ab_0.tar.bz2#7b50d840543d9cdae100e91582c33035
https://conda.anaconda.org/conda-forge/noarch/filelock-3.4.2-pyhd8ed1ab_0.tar.bz2#d05900c9b0ef4c3d1cef2e8a5c49350e
https://conda.anaconda.org/conda-forge/noarch/filelock-3.4.2-pyhd8ed1ab_1.tar.bz2#d3f5797d3f9625c64860c93fc4359e64
https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.13.1-hba837de_1005.tar.bz2#fd3611672eb91bc9d24fd6fb970037eb
https://conda.anaconda.org/conda-forge/noarch/fsspec-2021.11.1-pyhd8ed1ab_0.tar.bz2#a510ec93fdb50775091d2afba98a8acb
https://conda.anaconda.org/conda-forge/linux-64/gst-plugins-base-1.18.5-hf529b03_2.tar.bz2#3cf866063f2803944ddaee8b1d6da531
https://conda.anaconda.org/conda-forge/noarch/idna-3.1-pyhd3deb0d_0.tar.bz2#9c9aea4b8391264477df484f798562d0
https://conda.anaconda.org/conda-forge/noarch/imagesize-1.3.0-pyhd8ed1ab_0.tar.bz2#be807e7606fff9436e5e700f6bffb7c6
https://conda.anaconda.org/conda-forge/noarch/iris-sample-data-2.4.0-pyhd8ed1ab_0.tar.bz2#18ee9c07cf945a33f92caf1ee3d23ad9
https://conda.anaconda.org/conda-forge/linux-64/libcurl-7.80.0-h2574ce0_0.tar.bz2#5d0784b790350f7939bb5d3f2c32e700
https://conda.anaconda.org/conda-forge/linux-64/libcurl-7.81.0-h2574ce0_0.tar.bz2#1f8655741d0269ca6756f131522da1e8
https://conda.anaconda.org/conda-forge/linux-64/libpq-13.5-hd57d9b9_1.tar.bz2#a0f425d61c7df890d6381ea352c3f1d7
https://conda.anaconda.org/conda-forge/noarch/locket-0.2.0-py_2.tar.bz2#709e8671651c7ec3d1ad07800339ff1d
https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyh9f0ad1d_0.tar.bz2#2ba8498c1018c1e9c61eb99b973dfe19
Expand All @@ -148,14 +148,14 @@ https://conda.anaconda.org/conda-forge/noarch/babel-2.9.1-pyh44b312d_0.tar.bz2#7
https://conda.anaconda.org/conda-forge/linux-64/cairo-1.16.0-h6cf1ce9_1008.tar.bz2#a43fb47d15e116f8be4be7e6b17ab59f
https://conda.anaconda.org/conda-forge/linux-64/certifi-2021.10.8-py38h578d9bd_1.tar.bz2#52a6cee65a5d10ed1c3f0af24fb48dd3
https://conda.anaconda.org/conda-forge/linux-64/cffi-1.15.0-py38h3931269_0.tar.bz2#9c491a90ae11d08ca97326a0ed876f3a
https://conda.anaconda.org/conda-forge/linux-64/curl-7.80.0-h2574ce0_0.tar.bz2#4d8fd67e5ab7e00fde8ad085464f43b7
https://conda.anaconda.org/conda-forge/linux-64/curl-7.81.0-h2574ce0_0.tar.bz2#3a95d393b490f82aa406f1892fad84d9
https://conda.anaconda.org/conda-forge/linux-64/docutils-0.16-py38h578d9bd_3.tar.bz2#a7866449fb9e5e4008a02df276549d34
https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.12.1-mpi_mpich_h9c45103_3.tar.bz2#4f1a733e563d27b98010b62888e149c9
https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.3.2-py38h1fd1430_1.tar.bz2#085365abfe53d5d13bb68b1dda0b439e
https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-h6ad9fb6_0.tar.bz2#45142dc44fcd04934f9ad68ce205e54d
https://conda.anaconda.org/conda-forge/linux-64/markupsafe-2.0.1-py38h497a2fe_1.tar.bz2#1ef7b5f4826ca48a15e2cd98a5c3436d
https://conda.anaconda.org/conda-forge/linux-64/mpi4py-3.1.3-py38he865349_0.tar.bz2#b1b3d6847a68251a1465206ab466b475
https://conda.anaconda.org/conda-forge/linux-64/numpy-1.21.5-py38h87f13fb_0.tar.bz2#07fef7a6a3c56e0410d047c0aa62416e
https://conda.anaconda.org/conda-forge/linux-64/numpy-1.22.0-py38h6ae9a64_0.tar.bz2#0731ced21afb9adab62eb7aaf7abaf1e
https://conda.anaconda.org/conda-forge/noarch/packaging-21.3-pyhd8ed1ab_0.tar.bz2#71f1ab2de48613876becddd496371c85
https://conda.anaconda.org/conda-forge/noarch/partd-1.2.0-pyhd8ed1ab_0.tar.bz2#0c32f563d7f22e3a34c95cad8cc95651
https://conda.anaconda.org/conda-forge/linux-64/pillow-6.2.1-py38hd70f55b_1.tar.bz2#80d719bee2b77a106b199150c0829107
Expand All @@ -167,7 +167,7 @@ https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.8.2-pyhd8ed1ab_0
https://conda.anaconda.org/conda-forge/linux-64/python-xxhash-2.0.2-py38h497a2fe_1.tar.bz2#977d03222271270ea8fe35388bf13752
https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0-py38h497a2fe_3.tar.bz2#131de7d638aa59fb8afbce59f1a8aa98
https://conda.anaconda.org/conda-forge/linux-64/qt-5.12.9-hda022c4_4.tar.bz2#afebab1f5049d66baaaec67d9ce893f0
https://conda.anaconda.org/conda-forge/linux-64/setuptools-60.2.0-py38h578d9bd_0.tar.bz2#cbaabcbc6fb460f1a515188e6d966fa2
https://conda.anaconda.org/conda-forge/linux-64/setuptools-60.3.1-py38h578d9bd_0.tar.bz2#adb15768b02db40b8f7234bfe0a6e7fc
https://conda.anaconda.org/conda-forge/linux-64/tornado-6.1-py38h497a2fe_2.tar.bz2#63b3b55c98b4239134e0be080f448944
https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-14.0.0-py38h497a2fe_0.tar.bz2#8da7787169411910df2a62dc8ef533e0
https://conda.anaconda.org/conda-forge/linux-64/virtualenv-20.4.7-py38h578d9bd_1.tar.bz2#37717ce393db8536ae2b613839af4274
Expand All @@ -184,7 +184,7 @@ https://conda.anaconda.org/conda-forge/linux-64/mo_pack-0.2.0-py38h6c62de6_1006.
https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.6.0-pyhd8ed1ab_0.tar.bz2#0941325bf48969e2b3b19d0951740950
https://conda.anaconda.org/conda-forge/linux-64/pandas-1.3.5-py38h43a58ef_0.tar.bz2#171cc96da3b1a0ebd4bf2b5586b7cda3
https://conda.anaconda.org/conda-forge/noarch/pip-21.3.1-pyhd8ed1ab_0.tar.bz2#e4fe2a9af78ff11f1aced7e62128c6a8
https://conda.anaconda.org/conda-forge/noarch/pygments-2.11.1-pyhd8ed1ab_0.tar.bz2#6f857f10fe2960dce20d59d71a290d51
https://conda.anaconda.org/conda-forge/noarch/pygments-2.11.2-pyhd8ed1ab_0.tar.bz2#caef60540e2239e27bf62569a5015e3b
https://conda.anaconda.org/conda-forge/linux-64/pyproj-3.3.0-py38hdd21e9b_0.tar.bz2#ceb8ec641cd5faa40b568f8ca008b6dc
https://conda.anaconda.org/conda-forge/linux-64/pyqt-impl-5.12.3-py38h0ffb2e6_8.tar.bz2#acfc7625a212c27f7decdca86fdb2aba
https://conda.anaconda.org/conda-forge/linux-64/python-stratify-0.2.post0-py38h6c62de6_1.tar.bz2#a350e3f4ca899e95122f66806e048858
Expand All @@ -205,15 +205,15 @@ https://conda.anaconda.org/conda-forge/linux-64/pyqtwebengine-5.12.1-py38h7400c1
https://conda.anaconda.org/conda-forge/linux-64/cartopy-0.20.1-py38h2f98cf7_5.tar.bz2#8f989133575134016a0def90ae965e85
https://conda.anaconda.org/conda-forge/linux-64/esmf-8.2.0-mpi_mpich_h4975321_100.tar.bz2#56f5c650937b1667ad0a557a0dff3bc4
https://conda.anaconda.org/conda-forge/linux-64/gtk2-2.24.33-h539f30e_1.tar.bz2#606777b4da3664d5c9415f5f165349fd
https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.52.5-hc3c00ef_0.tar.bz2#43694e152ee85559ddf64b1acb8801dd
https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.52.5-hc3c00ef_1.tar.bz2#9cd526f006d048eb912e09c5982393ea
https://conda.anaconda.org/conda-forge/noarch/nc-time-axis-1.4.0-pyhd8ed1ab_0.tar.bz2#9113b4e4fa2fa4a7f129c71a6f319475
https://conda.anaconda.org/conda-forge/linux-64/pre-commit-2.16.0-py38h578d9bd_0.tar.bz2#61e1e83f0eccef5e449db03c340ab6c2
https://conda.anaconda.org/conda-forge/linux-64/pyqt-5.12.3-py38h578d9bd_8.tar.bz2#88368a5889f31dff922a2d57bbfc3f5b
https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.7-pyhd8ed1ab_0.tar.bz2#be75bab4820a56f77ba1a3fc9139c36a
https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.8-pyhd8ed1ab_1.tar.bz2#53f1387c68c21cecb386e2cde51b3f7c
https://conda.anaconda.org/conda-forge/linux-64/esmpy-8.2.0-mpi_mpich_py38h9147699_101.tar.bz2#5a9de1dec507b6614150a77d1aabf257
https://conda.anaconda.org/conda-forge/linux-64/graphviz-2.50.0-h85b4f2f_1.tar.bz2#bc6418fd87ea67cf14417337ced3daa2
https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.5.1-py38h578d9bd_0.tar.bz2#0d78be9cf1c400ba8e3077cf060492f1
https://conda.anaconda.org/conda-forge/noarch/requests-2.26.0-pyhd8ed1ab_1.tar.bz2#358581cc782802270d77c454c73a811a
https://conda.anaconda.org/conda-forge/noarch/requests-2.27.1-pyhd8ed1ab_0.tar.bz2#7c1c427246b057b8fa97200ecdb2ed62
https://conda.anaconda.org/conda-forge/noarch/sphinx-4.3.2-pyh6c4a22f_0.tar.bz2#e8ffaea0961c0d7a6767f2394042043d
https://conda.anaconda.org/conda-forge/noarch/sphinx-copybutton-0.4.0-pyhd8ed1ab_0.tar.bz2#80fd2cc25ad45911b4e42d5b91593e2f
https://conda.anaconda.org/conda-forge/noarch/sphinx-gallery-0.10.1-pyhd8ed1ab_0.tar.bz2#4918585fe5e5341740f7e63c61743efb
Expand Down