Skip to content

Nightly build is failing #3933

@github-actions

Description

@github-actions

The Nightly workflow is failing.
The tests failed.
Log:

Details
============================= test session starts ==============================
platform linux -- Python 3.13.11, pytest-9.0.0, pluggy-1.6.0
Matplotlib: 3.10.8
Freetype: 2.6.1
Dep Versions: Cartopy: 0.24.0, Dask: 2025.12.0, Matplotlib: 3.10.8, Numpy: 2.4.0,
	Pandas: 3.0.0rc1, Pint: 0.25.2.dev3+g9325ea272, Pooch: v1.8.2, Pyproj: 3.7.2,
	Scipy: 1.17.0rc1, Shapely: 2.1.2, Traitlets: 5.14.3,
	Xarray: 2025.12.1.dev20+g26ccc7f8f
rootdir: /home/runner/work/MetPy/MetPy
configfile: pyproject.toml
plugins: mpl-0.18.0
collected 1632 items

tests/calc/test_basic.py ............................................... [ 2%]
........................................................................ [ 7%]
....................... [ 8%]
tests/calc/test_calc_tools.py .......................................... [ 11%]
........................................................................ [ 15%]
............................................... [ 18%]
tests/calc/test_cross_sections.py ...........FF [ 19%]
tests/calc/test_indices.py ............................ [ 21%]
tests/calc/test_kinematics.py .......................................... [ 23%]
........................................ [ 26%]
tests/calc/test_thermo.py .............................................. [ 28%]
........................................................................ [ 33%]
........................................................................ [ 37%]
...........F......................... [ 40%]
tests/calc/test_turbulence.py .............................. [ 41%]
tests/interpolate/test_geometry.py ............. [ 42%]
tests/interpolate/test_grid.py ...................................... [ 44%]
tests/interpolate/test_interpolate_tools.py ....... [ 45%]
tests/interpolate/test_one_dimension.py ................... [ 46%]
tests/interpolate/test_points.py ........................ [ 48%]
tests/interpolate/test_slices.py ........ [ 48%]
tests/io/test_gempak.py .................................. [ 50%]
tests/io/test_gini.py .................. [ 51%]
tests/io/test_metar.py ........................................ [ 54%]
tests/io/test_nexrad.py ................................................ [ 57%]
........................................................................ [ 61%]
....................................................... [ 64%]
tests/io/test_station_data.py ....... [ 65%]
tests/io/test_text.py .... [ 65%]
tests/io/test_tools.py .. [ 65%]
tests/plots/test_cartopy_utils.py ....... [ 66%]
tests/plots/test_ctables.py .......... [ 66%]
tests/plots/test_declarative.py .............................F.......... [ 69%]
.......................................... [ 71%]
tests/plots/test_mapping.py ........................ [ 73%]
tests/plots/test_patheffects.py ........ [ 73%]
tests/plots/test_plot_areas.py ..... [ 74%]
tests/plots/test_plot_text.py ... [ 74%]
tests/plots/test_skewt.py .FFF.................................FF....... [ 77%]
..FF........ [ 77%]
tests/plots/test_station_plot.py .......................... [ 79%]
tests/plots/test_util.py .............. [ 80%]
tests/plots/test_wx_symbols.py .... [ 80%]
tests/remote/test_aws.py ........ [ 80%]
tests/test_cbook.py ... [ 81%]
tests/test_deprecation.py . [ 81%]
tests/test_packaging.py . [ 81%]
tests/test_testing.py ........ [ 81%]
tests/test_xarray.py .............................FF.................... [ 84%]
........................................................................ [ 89%]
........................................................................ [ 93%]
.............................FF................................ [ 97%]
tests/units/test_units.py .....................................x.. [100%]

=================================== FAILURES ===================================
_______________________ test_absolute_momentum_given_xy ________________________

test_cross_xy = <xarray.Dataset> Size: 788B
Dimensions: (time: 1, isobaric: 5, index: 7)
Coordinates:

  • time ...4....
    v_wind (time, isobaric, index) float64 280B <Quantity([[[ 24....
    lambert_conformal <U1 4B ''

    def test_absolute_momentum_given_xy(test_cross_xy):
    """Test absolute momentum calculation."""
    momentum = absolute_momentum(test_cross_xy['u_wind'], test_cross_xy['v_wind'])
    true_momentum_values = np.array([[[169.22222693, 146.36354006, 145.75559124, 171.8710635,
    215.04876817, 265.73797007, 318.34138347],
    [156.27520858, 133.32107346, 132.62636169, 158.66828331,
    201.78218117, 252.41370282, 304.96242462],
    [143.32819023, 120.27860686, 119.49713214, 145.46550311,
    188.51559418, 239.08943557, 291.58346576],
    [130.38117188, 107.23614026, 106.36790259, 132.26272292,
    175.24900718, 225.76516831, 278.20450691],
    [117.43415353, 94.19367366, 93.23867305, 119.05994273,
    161.98242018, 212.44090106, 264.82554806]]])
    true_momentum = xr.DataArray(true_momentum_values * units('m/s'),
    coords=test_cross_xy['u_wind'].coords,
    dims=test_cross_xy['u_wind'].dims)

  assert_xarray_allclose(momentum, true_momentum)

tests/calc/test_cross_sections.py:323:


actual = <xarray.DataArray (time: 1, isobaric: 5, index: 7)> Size: 280B
<Quantity([[[169.22221086 146.36352646 145.75557749 171...t64 56B -1.5e+06 -1.269e+06 ... -2.677e+05 -939.1
Attributes:
grid_mapping: lambert_conformal
_metpy_axis: x
desired = <xarray.DataArray (time: 1, isobaric: 5, index: 7)> Size: 280B
<Quantity([[[169.22222693 146.36354006 145.75559124 171...6B -4.995e+05 9.84e+04 ... 2.428e+06 3e+06
y (index) float64 56B -1.5e+06 -1.269e+06 ... -2.677e+05 -939.1

def assert_xarray_allclose(actual, desired):
    """Check that the xarrays are almost equal, including coordinates and attributes."""
    xr.testing.assert_allclose(actual, desired)
    assert desired.metpy.coordinates_identical(actual)
  assert desired.attrs == actual.attrs
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

E AssertionError

/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/metpy/testing.py:338: AssertionError
___________________ test_absolute_momentum_xarray_units_attr ___________________

def test_absolute_momentum_xarray_units_attr():
    """Test absolute momentum when `u` and `v` are DataArrays with a `units` attribute."""
    data = xr.open_dataset(get_test_data('narr_example.nc', False))
    data = data.metpy.parse_cf().squeeze()

    start = (37.0, -105.0)
    end = (35.5, -65.0)
    cross = cross_section(data, start, end)

    u = cross['u_wind'][0].sel(index=slice(0, 2))
    v = cross['v_wind'][0].sel(index=slice(0, 2))

    momentum = absolute_momentum(u, v)
    true_momentum_values = np.array([137.46164031, 134.11450232, 133.85196023])
    true_momentum = xr.DataArray(units.Quantity(true_momentum_values, 'm/s'),
                                 coords=u.coords)
  assert_xarray_allclose(momentum, true_momentum)

tests/calc/test_cross_sections.py:343:


actual = <xarray.DataArray (index: 3)> Size: 24B
<Quantity([137.46164031 134.11450232 133.85196023], 'meter / second')>
Coordin... grid_spacing: 32.463 km
_CoordinateAxisType: GeoX
_metpy_axis: x
desired = <xarray.DataArray (index: 3)> Size: 24B
<Quantity([137.46164031 134.11450232 133.85196023], 'meter / second')>
Coordin... (index) float64 24B 1.818e+05 2.18e+05 2.541e+05
y (index) float64 24B -1.454e+06 -1.447e+06 -1.44e+06

def assert_xarray_allclose(actual, desired):
    """Check that the xarrays are almost equal, including coordinates and attributes."""
    xr.testing.assert_allclose(actual, desired)
    assert desired.metpy.coordinates_identical(actual)
  assert desired.attrs == actual.attrs
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

E AssertionError

/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/metpy/testing.py:338: AssertionError
__________________________ test_cape_cin_value_error ___________________________

def test_cape_cin_value_error():
    """Test a profile that originally caused a ValueError in #1190."""
    pressure = np.array([1012.0, 1009.0, 1002.0, 1000.0, 925.0, 896.0, 855.0, 850.0, 849.0,
                         830.0, 775.0, 769.0, 758.0, 747.0, 741.0, 731.0, 712.0, 700.0, 691.0,
                         671.0, 636.0, 620.0, 610.0, 601.0, 594.0, 587.0, 583.0, 580.0, 571.0,
                         569.0, 554.0, 530.0, 514.0, 506.0, 502.0, 500.0, 492.0, 484.0, 475.0,
                         456.0, 449.0, 442.0, 433.0, 427.0, 400.0, 395.0, 390.0, 351.0, 300.0,
                         298.0, 294.0, 274.0, 250.0]) * units.hPa
    temperature = np.array([27.8, 25.8, 24.2, 24, 18.8, 16, 13, 12.6, 12.6, 11.6, 9.2, 8.6,
                            8.4, 9.2, 10, 9.4, 7.4, 6.2, 5.2, 3.2, -0.3, -2.3, -3.3, -4.5,
                            -5.5, -6.1, -6.1, -6.1, -6.3, -6.3, -7.7, -9.5, -9.9, -10.3,
                            -10.9, -11.1, -11.9, -12.7, -13.7, -16.1, -16.9, -17.9, -19.1,
                            -19.9, -23.9, -24.7, -25.3, -29.5, -39.3, -39.7, -40.5, -44.3,
                            -49.3]) * units.degC
    dewpoint = np.array([19.8, 16.8, 16.2, 16, 13.8, 12.8, 10.1, 9.7, 9.7,
                         8.6, 4.2, 3.9, 0.4, -5.8, -32, -34.6, -35.6, -34.8,
                         -32.8, -10.8, -9.3, -10.3, -9.3, -10.5, -10.5, -10, -16.1,
                         -19.1, -23.3, -18.3, -17.7, -20.5, -27.9, -32.3, -33.9, -34.1,
                         -35.9, -26.7, -37.7, -43.1, -33.9, -40.9, -46.1, -34.9, -33.9,
                         -33.7, -33.3, -42.5, -50.3, -49.7, -49.5, -58.3, -61.3]) * units.degC
    cape, cin = surface_based_cape_cin(pressure, temperature, dewpoint)
    expected_cape, expected_cin = 2161.912443 * units('joules/kg'), 0.0 * units('joules/kg')
  assert_almost_equal(cape, expected_cape, 3)

tests/calc/test_thermo.py:2383:


actual = np.float64(2161.9161164494735), desired = 2161.912443, decimal = 3

def assert_almost_equal(actual, desired, decimal=7):
    """Check that values are almost equal, including units.

    Wrapper around :func:`numpy.testing.assert_almost_equal`
    """
    actual, desired = check_and_drop_units(actual, desired)
  numpy.testing.assert_almost_equal(actual, desired, decimal)

E AssertionError:
E Arrays are not almost equal to 3 decimals
E ACTUAL: np.float64(2161.9161164494735)
E DESIRED: 2161.912443

/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/metpy/testing.py:311: AssertionError
_________________________________ test_latlon __________________________________

args = (), kwargs = {}

def wrapper(*args, **kwargs):
  store.return_value[test_name] = obj(*args, **kwargs)
                                    ^^^^^^^^^^^^^^^^^^^^

/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/pytest_mpl/plugin.py:126:


/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/metpy/testing.py:129: in wrapped
return test_func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/plots/test_declarative.py:856: in test_latlon
pc.draw()
/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/metpy/plots/declarative.py:188: in draw
panel.draw()
/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/metpy/plots/declarative.py:512: in draw
p.draw()
/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/metpy/plots/declarative.py:892: in draw
self._build()
/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/metpy/plots/declarative.py:1009: in _build
x_like, y_like, imdata = self.plotdata
^^^^^^^^^^^^^


self = <metpy.plots.ImagePlot object at 0x7f6d97959e00>

@property
def plotdata(self):
    """Return the data for plotting.

    The two dimension coordinates and the data array

    """
    x_like = self.griddata[self.griddata.dims[1]]

    # At least currently imshow with cartopy does not like this
    if 'degree' in x_like.units:
        x_like = x_like.data
      x_like[x_like > 180] -= 360
        ^^^^^^^^^^^^^^^^^^^^

E ValueError: assignment destination is read-only

/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/metpy/plots/declarative.py:1003: ValueError
_____________________________ test_skewt_api_units _____________________________
Error: Image files did not match.
RMS Value: 0.3200205754702029
Expected:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_skewt_api_units/baseline.png
Actual:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_skewt_api_units/result.png
Difference:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_skewt_api_units/result-failed-diff.png
Tolerance:
0.32
_______________________ test_skewt_default_aspect_empty ________________________
Error: Image files did not match.
RMS Value: 0.006643478190611888
Expected:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_skewt_default_aspect_empty/baseline.png
Actual:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_skewt_default_aspect_empty/result.png
Difference:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_skewt_default_aspect_empty/result-failed-diff.png
Tolerance:
0.0
_________________________ test_skewt_mixing_line_args __________________________
Error: Image files did not match.
RMS Value: 0.006643478190611888
Expected:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_skewt_mixing_line_args/baseline.png
Actual:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_skewt_mixing_line_args/result.png
Difference:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_skewt_mixing_line_args/result-failed-diff.png
Tolerance:
0.0
_______________________ test_stuve_default_aspect_empty ________________________
Error: Image files did not match.
RMS Value: 0.004006168083848877
Expected:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_stuve_default_aspect_empty/baseline.png
Actual:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_stuve_default_aspect_empty/result.png
Difference:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_stuve_default_aspect_empty/result-failed-diff.png
Tolerance:
0.0
_________________________ test_stuve_mixing_line_args __________________________
Error: Image files did not match.
RMS Value: 0.004006168083848877
Expected:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_stuve_mixing_line_args/baseline.png
Actual:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_stuve_mixing_line_args/result.png
Difference:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_stuve_mixing_line_args/result-failed-diff.png
Tolerance:
0.0
______________________ test_emagram_default_aspect_empty _______________________
Error: Image files did not match.
RMS Value: 0.005555555555555556
Expected:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_emagram_default_aspect_empty/baseline.png
Actual:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_emagram_default_aspect_empty/result.png
Difference:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_emagram_default_aspect_empty/result-failed-diff.png
Tolerance:
0.001
________________________ test_emagram_mixing_line_args _________________________
Error: Image files did not match.
RMS Value: 0.005555555555555556
Expected:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_emagram_mixing_line_args/baseline.png
Actual:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_emagram_mixing_line_args/result.png
Difference:
/home/runner/work/MetPy/MetPy/test_output/test_skewt.test_emagram_mixing_line_args/result-failed-diff.png
Tolerance:
0.001
____________________________ test_dataset_quantify _____________________________

test_ds_generic = <xarray.Dataset> Size: 2kB
Dimensions: (a: 1, b: 3, c: 3, d: 5, e: 5)
Coordinates:

  • a (a) int64 8B 0

  • b ...e) int64 40B 0 1 2 3 4
    Data variables:
    test (a, b, c, d, e) float64 2kB 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0

    def test_dataset_quantify(test_ds_generic):
    """Test quantify method for converting data to Quantity on Datasets."""
    result = test_ds_generic.metpy.quantify()
    assert is_quantity(result['test'].data)
    assert result['test'].data.units == units.kelvin

  assert 'units' not in result['test'].attrs

E AssertionError: assert 'units' not in {'units': 'kelvin'}
E + where {'units': 'kelvin'} = <xarray.DataArray 'test' (a: 1, b: 3, c: 3, d: 5, e: 5)> Size: 2kB\n<Quantity([[[[[0. 0. 0. 0. 0.]\n [0. 0. 0. 0. 0.]...64 24B 0 1 2\n * d (d) int64 40B 0 1 2 3 4\n * e (e) int64 40B 0 1 2 3 4\nAttributes:\n units: kelvin.attrs

tests/test_xarray.py:217: AssertionError
___________________________ test_dataset_dequantify ____________________________

def test_dataset_dequantify():
    """Test dequantify method for converting data away from Quantity on Datasets."""
    original = xr.Dataset({
        'test': ('x', units.Quantity([280, 290, 300], 'K')),
        'x': np.arange(3)
    }, attrs={'test': 'test'})
    result = original.metpy.dequantify()
    assert isinstance(result['test'].data, np.ndarray)
  assert result['test'].attrs['units'] == 'kelvin'
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

E KeyError: 'units'

tests/test_xarray.py:233: KeyError
_______________________ test_update_attribute_dictionary _______________________

test_ds_generic = <xarray.Dataset> Size: 2kB
Dimensions: (a: 1, b: 3, c: 3, d: 5, e: 5)
Coordinates:

  • a (a) int64 8B 0

  • b ...e) int64 40B 0 1 2 3 4
    Data variables:
    test (a, b, c, d, e) float64 2kB 0.0 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0

    def test_update_attribute_dictionary(test_ds_generic):
    """Test update_attribute using dictionary."""
    descriptions = {
    'test': 'Filler data',
    'c': 'The third coordinate'
    }
    test_ds_generic.c.attrs['units'] = 'K'
    test_ds_generic.a.attrs['standard_name'] = 'air_temperature'
    result = test_ds_generic.metpy.update_attribute('description', descriptions)

    # Test attribute updates
    assert 'description' not in result['a'].attrs
    assert 'description' not in result['b'].attrs
    assert result['c'].attrs['description'] == 'The third coordinate'
    assert 'description' not in result['d'].attrs
    assert 'description' not in result['e'].attrs
    
  assert result['test'].attrs['descr</pre></details>The documentation build failed.

Log:

python override_check.py
Override check successful.
Running Sphinx v8.1.3
loading translations [en]... done
making output directory... done
Using Sphinx-Gallery to convert rst text blocks to markdown for .ipynb files.
Converting `source_suffix = ['.rst', '.md']` to `source_suffix = {'.rst': 'restructuredtext', '.md': 'restructuredtext'}`.
[autosummary] generating autosummary for: api/index.rst, api/references.rst, devel/CONTRIBUTING.md, devel/benchmarking.rst, devel/index.rst, devel/infrastructureguide.rst, devel/roadmap.rst, index.rst, userguide/SUPPORT.md, userguide/apichange.rst, userguide/citing.rst, userguide/gempak.rst, userguide/index.rst, userguide/installguide.rst, userguide/media.rst, userguide/startingguide.rst, userguide/upgradeguide.rst
[autosummary] generating autosummary for: /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.calc.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.constants.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.interpolate.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.io.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.plots.ctables.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.plots.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.remote.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.units.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.xarray.rst
[autosummary] generating autosummary for: /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.calc.absolute_momentum.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.calc.absolute_vorticity.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.calc.add_height_to_pressure.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.calc.add_pressure_to_height.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.calc.advection.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.calc.ageostrophic_wind.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.calc.altimeter_to_sea_level_pressure.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.calc.altimeter_to_station_pressure.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.calc.angle_to_direction.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.calc.apparent_temperature.rst, ..., /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.plots.read_colortable.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.plots.scattertext.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.plots.wx_code_to_numeric.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.remote.GOESArchive.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.remote.MLWPArchive.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.remote.NEXRADLevel2Archive.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.remote.NEXRADLevel3Archive.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.units.pandas_dataframe_to_unit_arrays.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.units.setup_registry.rst, /home/runner/work/MetPy/MetPy/docs/api/generated/metpy.xarray.grid_deltas_from_dataarray.rst
loading intersphinx inventory 'cartopy' from https://cartopy.readthedocs.io/stable/objects.inv ...
loading intersphinx inventory 'matplotlib' from https://matplotlib.org/stable/objects.inv ...
loading intersphinx inventory 'numpy' from https://numpy.org/doc/stable/objects.inv ...
loading intersphinx inventory 'pandas' from https://pandas.pydata.org/docs/objects.inv ...
loading intersphinx inventory 'pint' from https://pint.readthedocs.io/en/stable/objects.inv ...
loading intersphinx inventory 'pyproj' from https://pyproj4.github.io/pyproj/stable/objects.inv ...
loading intersphinx inventory 'python' from https://docs.python.org/3/objects.inv ...
loading intersphinx inventory 'scipy' from https://docs.scipy.org/doc/scipy/objects.inv ...
loading intersphinx inventory 'xarray' from https://docs.xarray.dev/en/stable/objects.inv ...
generating gallery...
generating gallery for examples... [ 12%] XArray_Projections.py
/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/cartopy/io/__init__.py:241: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/10m_physical/ne_10m_coastline.zip
  warnings.warn(f'Downloading: {url}', DownloadWarning)
/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/cartopy/io/__init__.py:241: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/10m_physical/ne_10m_lakes.zip
  warnings.warn(f'Downloading: {url}', DownloadWarning)
/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/cartopy/io/__init__.py:241: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/10m_physical/ne_10m_rivers_lake_centerlines.zip
  warnings.warn(f'Downloading: {url}', DownloadWarning)
generating gallery for examples... [ 25%] sigma_to_pressure_interpolation.py
/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/cartopy/io/__init__.py:241: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/50m_physical/ne_50m_coastline.zip
  warnings.warn(f'Downloading: {url}', DownloadWarning)
/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/cartopy/io/__init__.py:241: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/10m_cultural/ne_10m_admin_1_states_provinces_lakes.zip
  warnings.warn(f'Downloading: {url}', DownloadWarning)
generating gallery for examples... [ 38%] Advanced_Sounding.py
generating gallery for examples... [ 50%] cross_section.py
/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/cartopy/io/__init__.py:241: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/50m_cultural/ne_50m_admin_1_states_provinces_lakes.zip
  warnings.warn(f'Downloading: {url}', DownloadWarning)
generating gallery for examples... [ 62%] Four_Panel_Map.py
/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/cartopy/io/__init__.py:241: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/50m_cultural/ne_50m_admin_0_boundary_lines_land.zip
  warnings.warn(f'Downloading: {url}', DownloadWarning)
generating gallery for examples... [ 75%] isentropic_example.py
generating gallery for examples... [ 88%] meteogram_metpy.py
generating gallery for examples... [100%] Advanced_Sounding_With_Complex_Layout.py
Ignoring fixed x limits to fulfill fixed data aspect with adjustable data limits.
Ignoring fixed x limits to fulfill fixed data aspect with adjustable data limits.

generating gallery for examples/calculations... [ 5%] Parse_Angles.py
generating gallery for examples/calculations... [ 9%] Dewpoint_and_Mixing_Ratio.py
generating gallery for examples/calculations... [ 14%] Angle_to_Direction.py
generating gallery for examples/calculations... [ 18%] Wind_Speed.py
generating gallery for examples/calculations... [ 23%] Divergence.py
generating gallery for examples/calculations... [ 27%] Vorticity.py
generating gallery for examples/calculations... [ 32%] Absolute_Vorticity.py
generating gallery for examples/calculations... [ 36%] Total_Deformation.py
generating gallery for examples/calculations... [ 41%] Shearing_Deformation.py
generating gallery for examples/calculations... [ 45%] Stretching_Deformation.py
generating gallery for examples/calculations... [ 50%] Static_Stability.py
generating gallery for examples/calculations... [ 55%] Mean_Pressure_Weighted.py
generating gallery for examples/calculations... [ 59%] Mountain_Problem.py
generating gallery for examples/calculations... [ 64%] Bulk_Shear.py
generating gallery for examples/calculations... [ 68%] Thickness_Hydrostatic.py
generating gallery for examples/calculations... [ 73%] Equivalent_Potential_Temperature.py
generating gallery for examples/calculations... [ 77%] Advection.py
generating gallery for examples/calculations... [ 82%] Gradient.py
generating gallery for examples/calculations... [ 86%] QVector.py
generating gallery for examples/calculations... [ 91%] Smoothing.py
generating gallery for examples/calculations... [ 95%] High_Low_Analysis.py
/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/cartopy/io/init.py:241: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/110m_physical/ne_110m_ocean.zip
warnings.warn(f'Downloading: {url}', DownloadWarning)
/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/cartopy/io/init.py:241: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/110m_physical/ne_110m_land.zip
warnings.warn(f'Downloading: {url}', DownloadWarning)
/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/cartopy/io/init.py:241: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/110m_physical/ne_110m_coastline.zip
warnings.warn(f'Downloading: {url}', DownloadWarning)
generating gallery for examples/calculations... [100%] Sounding_Calculations.py

generating gallery for examples/formats... [ 33%] GINI_Water_Vapor.py
generating gallery for examples/formats... [ 67%] NEXRAD_Level_3_File.py
Ignoring fixed x limits to fulfill fixed data aspect with adjustable data limits.
Ignoring fixed x limits to fulfill fixed data aspect with adjustable data limits.
generating gallery for examples/formats... [100%] NEXRAD_Level_2_File.py
Ignoring fixed x limits to fulfill fixed data aspect with adjustable data limits.
Ignoring fixed x limits to fulfill fixed data aspect with adjustable data limits.

generating gallery for examples/gridding... [ 20%] Find_Natural_Neighbors_Verification.py
generating gallery for examples/gridding... [ 40%] Wind_SLP_Interpolation.py
/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/cartopy/io/init.py:241: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/50m_physical/ne_50m_ocean.zip
warnings.warn(f'Downloading: {url}', DownloadWarning)
generating gallery for examples/gridding... [ 60%] Point_Interpolation.py
generating gallery for examples/gridding... [ 80%] Inverse_Distance_Verification.py
Ignoring fixed y limits to fulfill fixed data aspect with adjustable data limits.
Ignoring fixed x limits to fulfill fixed data aspect with adjustable data limits.
generating gallery for examples/gridding... [100%] Natural_Neighbor_Verification.py
Ignoring fixed x limits to fulfill fixed data aspect with adjustable data limits.
Ignoring fixed x limits to fulfill fixed data aspect with adjustable data limits.
Ignoring fixed x limits to fulfill fixed data aspect with adjustable data limits.

generating gallery for examples/plots... [ 6%] Simplified_Image_Plot.py
generating gallery for examples/plots... [ 12%] raster_declarative.py
generating gallery for examples/plots... [ 18%] US_Counties.py
generating gallery for examples/plots... [ 24%] Simple_Fronts_Plot.py
generating gallery for examples/plots... [ 29%] spc_convective_outlook.py
generating gallery for examples/plots... [ 35%] Combined_plotting.py
generating gallery for examples/plots... [ 41%] surface_declarative.py
generating gallery for examples/plots... [ 47%] upperair_declarative.py
generating gallery for examples/plots... [ 53%] nhc_wind_probabilities.py
generating gallery for examples/plots... [ 59%] Skew-T_Layout.py
generating gallery for examples/plots... [ 65%] Hodograph_Inset.py
generating gallery for examples/plots... [ 71%] Sounding_LCL_Dataset.py
generating gallery for examples/plots... [ 76%] Plotting_Surface_Analysis.py
/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/cartopy/io/init.py:241: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/110m_physical/ne_110m_lakes.zip
warnings.warn(f'Downloading: {url}', DownloadWarning)
generating gallery for examples/plots... [ 82%] Simple_Sounding.py
generating gallery for examples/plots... [ 88%] Mesonet_Stationplot.py
/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/cartopy/io/init.py:241: DownloadWarning: Downloading: https://naturalearth.s3.amazonaws.com/10m_physical/ne_10m_land.zip
warnings.warn(f'Downloading: {url}', DownloadWarning)
generating gallery for examples/plots... [ 94%] Station_Plot.py
generating gallery for examples/plots... [100%] Station_Plot_with_Layout.py

generating gallery for examples/remote... [ 50%] ml_forecast.py
generating gallery for examples/remote... [100%] basic.py

generating gallery for tutorials... [ 20%] unit_tutorial.py
generating gallery for tutorials... [ 40%] area_tutorial.py
generating gallery for tutorials... [ 60%] upperair_soundings.py
generating gallery for tutorials... [ 80%] xarray_tutorial.py
WARNING:
../tutorials/xarray_tutorial.py unexpectedly failed to execute correctly:

Traceback (most recent call last):
  File "/home/runner/work/MetPy/MetPy/tutorials/xarray_tutorial.py", line 284, in <module>
    cape, cin = mpcalc.surface_based_cape_cin(
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        data_at_point['isobaric3'][::-1],
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        data_at_point['Temperature_isobaric'][::-1],
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        dewpoint[::-1]
        ^^^^^^^^^^^^^^
    )
    ^
  File "/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/metpy/xarray.py", line 1323, in wrapper
    _mutate_arguments(bound_args, xr.DataArray, lambda arg, _: arg.metpy.unit_array)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/metpy/units.py", line 226, in _mutate_arguments
    bound_args.arguments[arg_name] = mutate_arg(arg_val, arg_name)
                                     ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/metpy/xarray.py", line 1323, in <lambda>
    _mutate_arguments(bound_args, xr.DataArray, lambda arg, _: arg.metpy.unit_array)
                                                               ^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/metpy/xarray.py", line 162, in unit_array
    if is_quantity(self._data_array.data):
                   ^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/xarray/core/dataarray.py", line 779, in data
    return self.variable.data
           ^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/xarray/core/variable.py", line 456, in data
    duck_array = self._data.get_duck_array()
  File "/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/xarray/core/indexing.py", line 966, in get_duck_array
    duck_array = self.array.get_duck_array()
  File "/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/xarray/core/indexing.py", line 920, in get_duck_array
    return self.array.get_duck_array()
           ~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/xarray/core/indexing.py", line 760, in get_duck_array
    array = self.array[self.key]
            ~~~~~~~~~~^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/xarray/backends/netCDF4_.py", line 117, in __getitem__
    return indexing.explicit_indexing_adapter(
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        key, self.shape, indexing.IndexingSupport.OUTER, self._getitem
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/xarray/core/indexing.py", line 1151, in explicit_indexing_adapter
    raw_key, numpy_indices = decompose_indexer(key, shape, indexing_support)
                             ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/xarray/core/indexing.py", line 1201, in decompose_indexer
    return _decompose_outer_indexer(indexer, shape, indexing_support)
  File "/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/xarray/core/indexing.py", line 1427, in _decompose_outer_indexer
    bk_slice, np_slice = _decompose_slice(k, s)
                         ~~~~~~~~~~~~~~~~^^^^^^
  File "/opt/hostedtoolcache/Python/3.13.11/x64/lib/python3.13/site-packages/xarray/core/indexing.py", line 1229, in _decompose_slice
    exact_stop = range(start, stop, step)[-1]
                 ~~~~~~~~~~~~~~~~~~~~~~~~^^^^
IndexError: range object index out of range

Extension error (sphinx_gallery.gen_gallery):
Handler <function generate_gallery_rst at 0x7f5e288f1120> for event 'builder-inited' threw an exception (exception: range object index out of range)
make: *** [Makefile:34: html] Error 2


Linkchecker output:

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type: MaintenanceUpdates and clean ups (but not wrong)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions