Skip to content

Nightly build is failing #3870

@github-actions

Description

@github-actions

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

Details
============================= test session starts ==============================
platform linux -- Python 3.13.7, pytest-8.4.0, pluggy-1.6.0
Matplotlib: 3.10.5
Freetype: 2.6.1
Dep Versions: Cartopy: 0.24.0, Dask: 2025.7.0, Matplotlib: 3.10.5, Numpy: 2.3.2,
	Pandas: 2.3.2, Pint: 0.26.dev5+g6e0d03862, Pooch: v1.8.2, Pyproj: 3.7.2,
	Scipy: 1.16.1, Shapely: 2.1.1, Traitlets: 5.14.3, Xarray: 2025.8.1.dev16+g98732e764
rootdir: /home/runner/work/MetPy/MetPy
configfile: pyproject.toml
plugins: mpl-0.17.0
collected 1632 items

tests/calc/test_basic.py ............................................... [ 2%]
........................................................................ [ 7%]
......................F [ 8%]
tests/calc/test_calc_tools.py .......................................... [ 11%]
........................................................................ [ 15%]
............................................... [ 18%]
tests/calc/test_cross_sections.py EEEEEEEEEEEEF [ 19%]
tests/calc/test_indices.py ............................ [ 21%]
tests/calc/test_kinematics.py ...........E.E........E.................E. [ 23%]
.E....................E....EEEEEEEEEE... [ 26%]
tests/calc/test_thermo.py .............................................. [ 28%]
........................................................................ [ 33%]
........................................................................ [ 37%]
..................................... [ 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 EE...EEE [ 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 .............................................. [ 77%]
............ [ 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 ................................................... [ 84%]
........................................................................ [ 89%]
......................FF.............................................FF. [ 93%]
FF............................................................. [ 97%]
tests/units/test_units.py .....................................x.. [100%]

==================================== ERRORS ====================================
_______ ERROR at setup of test_distances_from_cross_section_given_lonlat _______

@pytest.fixture()
@needs_cartopy
def test_cross_lonlat():
    """Return cross section on a lon/lat grid with no time coordinate for use in tests."""
    data_u = np.linspace(-40, 40, 5 * 6 * 7).reshape((5, 6, 7)) * units.knots
    data_v = np.linspace(40, -40, 5 * 6 * 7).reshape((5, 6, 7)) * units.knots
    ds = xr.Dataset(
        {
            'u_wind': (['isobaric', 'lat', 'lon'], data_u),
            'v_wind': (['isobaric', 'lat', 'lon'], data_v)
        },
        coords={
            'isobaric': xr.DataArray(
                np.linspace(1000, 500, 5),
                name='isobaric',
                dims=['isobaric'],
                attrs={'units': 'hPa'}
            ),
            'lat': xr.DataArray(
                np.linspace(30, 45, 6),
                name='lat',
                dims=['lat'],
                attrs={'units': 'degrees_north'}
            ),
            'lon': xr.DataArray(
                np.linspace(255, 275, 7),
                name='lon',
                dims=['lon'],
                attrs={'units': 'degrees_east'}
            )
        }
    )

    start, end = (30.5, 255.5), (44.5, 274.5)
  return cross_section(ds.metpy.parse_cf(), start, end, steps=7, interp_type='nearest')
                         ^^^^^^^^^^^^^^^^^^^

tests/calc/test_cross_sections.py:53:


/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/metpy/xarray.py:812: in parse_cf
subset = xr.merge([self.parse_cf(single_varname, coordinates=coordinates)
/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/xarray/structure/merge.py:1024: in merge
merge_result = merge_core(
/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/xarray/structure/merge.py:746: in merge_core
variables, out_indexes = merge_collected(
/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/xarray/structure/merge.py:326: in merge_collected
emit_user_level_warning(


message = "In a future version of xarray the default value for compat will change from compat='no_conflicts' to compat='override...ults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set compat explicitly."
category = <class 'FutureWarning'>

def emit_user_level_warning(message, category=None) -> None:
    """Emit a warning at the user level by inspecting the stack trace."""
    stacklevel = find_stack_level()
  return warnings.warn(message, category=category, stacklevel=stacklevel)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

E FutureWarning: In a future version of xarray the default value for compat will change from compat='no_conflicts' to compat='override'. This is likely to lead to different results when combining overlapping variables with the same name. To opt in to new defaults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set compat explicitly.

/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/xarray/core/utils.py:1194: FutureWarning
_________ ERROR at setup of test_distances_from_cross_section_given_xy _________

@pytest.fixture()
@needs_cartopy
def test_cross_xy():
    """Return cross section on a x/y grid with a time coordinate for use in tests."""
    data_u = np.linspace(-25, 25, 5 * 6 * 7).reshape((1, 5, 6, 7)) * units('m/s')
    data_v = np.linspace(25, -25, 5 * 6 * 7).reshape((1, 5, 6, 7)) * units('m/s')
    ds = xr.Dataset(
        {
            'u_wind': (['time', 'isobaric', 'y', 'x'], data_u),
            'v_wind': (['time', 'isobaric', 'y', 'x'], data_v),
            'lambert_conformal': ([], '')
        },
        coords={
            'time': xr.DataArray(
                np.array(['2018-07-01T00:00'], dtype='datetime64[ns]'),
                name='time',
                dims=['time']
            ),
            'isobaric': xr.DataArray(
                np.linspace(1000, 500, 5),
                name='isobaric',
                dims=['isobaric'],
                attrs={'units': 'hPa'}
            ),
            'y': xr.DataArray(
                np.linspace(-1500, 0, 6),
                name='y',
                dims=['y'],
                attrs={'units': 'km'}
            ),
            'x': xr.DataArray(
                np.linspace(-500, 3000, 7),
                name='x',
                dims=['x'],
                attrs={'units': 'km'}
            )
        }
    )
    ds['u_wind'].attrs = ds['v_wind'].attrs = {
        'grid_mapping': 'lambert_conformal'
    }
    ds['lambert_conformal'].attrs = {
        'grid_mapping_name': 'lambert_conformal_conic',
        'standard_parallel': 50.0,
        'longitude_of_central_meridian': -107.0,
        'latitude_of_projection_origin': 50.0,
        'earth_shape': 'spherical',
        'earth_radius': 6367470.21484375
    }

    start, end = ((36.46, -112.45), (42.95, -68.74))
  return cross_section(ds.metpy.parse_cf(), start, end, steps=7)
                         ^^^^^^^^^^^^^^^^^^^

tests/calc/test_cross_sections.py:107:


/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/metpy/xarray.py:812: in parse_cf
subset = xr.merge([self.parse_cf(single_varname, coordinates=coordinates)
/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/xarray/structure/merge.py:1024: in merge
merge_result = merge_core(
/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/xarray/structure/merge.py:746: in merge_core
variables, out_indexes = merge_collected(
/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/xarray/structure/merge.py:326: in merge_collected
emit_user_level_warning(


message = "In a future version of xarray the default value for compat will change from compat='no_conflicts' to compat='override...ults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set compat explicitly."
category = <class 'FutureWarning'>

def emit_user_level_warning(message, category=None) -> None:
    """Emit a warning at the user level by inspecting the stack trace."""
    stacklevel = find_stack_level()
  return warnings.warn(message, category=category, stacklevel=stacklevel)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

E FutureWarning: In a future version of xarray the default value for compat will change from compat='no_conflicts' to compat='override'. This is likely to lead to different results when combining overlapping variables with the same name. To opt in to new defaults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set compat explicitly.

/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/xarray/core/utils.py:1194: FutureWarning
_____ ERROR at setup of test_distances_from_cross_section_given_bad_coords _____

@pytest.fixture()
@needs_cartopy
def test_cross_xy():
    """Return cross section on a x/y grid with a time coordinate for use in tests."""
    data_u = np.linspace(-25, 25, 5 * 6 * 7).reshape((1, 5, 6, 7)) * units('m/s')
    data_v = np.linspace(25, -25, 5 * 6 * 7).reshape((1, 5, 6, 7)) * units('m/s')
    ds = xr.Dataset(
        {
            'u_wind': (['time', 'isobaric', 'y', 'x'], data_u),
            'v_wind': (['time', 'isobaric', 'y', 'x'], data_v),
            'lambert_conformal': ([], '')
        },
        coords={
            'time': xr.DataArray(
                np.array(['2018-07-01T00:00'], dtype='datetime64[ns]'),
                name='time',
                dims=['time']
            ),
            'isobaric': xr.DataArray(
                np.linspace(1000, 500, 5),
                name='isobaric',
                dims=['isobaric'],
                attrs={'units': 'hPa'}
            ),
            'y': xr.DataArray(
                np.linspace(-1500, 0, 6),
                name='y',
                dims=['y'],
                attrs={'units': 'km'}
            ),
            'x': xr.DataArray(
                np.linspace(-500, 3000, 7),
                name='x',
                dims=['x'],
                attrs={'units': 'km'}
            )
        }
    )
    ds['u_wind'].attrs = ds['v_wind'].attrs = {
        'grid_mapping': 'lambert_conformal'
    }
    ds['lambert_conformal'].attrs = {
        'grid_mapping_name': 'lambert_conformal_conic',
        'standard_parallel': 50.0,
        'longitude_of_central_meridian': -107.0,
        'latitude_of_projection_origin': 50.0,
        'earth_shape': 'spherical',
        'earth_radius': 6367470.21484375
    }

    start, end = ((36.46, -112.45), (42.95, -68.74))
  return cross_section(ds.metpy.parse_cf(), start, end, steps=7)
                         ^^^^^^^^^^^^^^^^^^^

tests/calc/test_cross_sections.py:107:


/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/metpy/xarray.py:812: in parse_cf
subset = xr.merge([self.parse_cf(single_varname, coordinates=coordinates)
/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/xarray/structure/merge.py:1024: in merge
merge_result = merge_core(
/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/xarray/structure/merge.py:746: in merge_core
variables, out_indexes = merge_collected(
/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/xarray/structure/merge.py:326: in merge_collected
emit_user_level_warning(


message = "In a future version of xarray the default value for compat will change from compat='no_conflicts' to compat='override...ults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set compat explicitly."
category = <class 'FutureWarning'>

def emit_user_level_warning(message, category=None) -> None:
    """Emit a warning at the user level by inspecting the stack trace."""
    stacklevel = find_stack_level()
  return warnings.warn(message, category=category, stacklevel=stacklevel)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

E FutureWarning: In a future version of xarray the default value for compat will change from compat='no_conflicts' to compat='override'. This is likely to lead to different results when combining overlapping variables with the same name. To opt in to new defaults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set compat explicitly.

/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/xarray/core/utils.py:1194: FutureWarning
_________ ERROR at setup of test_latitude_from_cross_section_given_lat _________

@pytest.fixture()
@needs_cartopy
def test_cross_lonlat():
    """Return cross section on a lon/lat grid with no time coordinate for use in tests."""
    data_u = np.linspace(-40, 40, 5 * 6 * 7).reshape((5, 6, 7)) * units.knots
    data_v = np.linspace(40, -40, 5 * 6 * 7).reshape((5, 6, 7)) * units.knots
    ds = xr.Dataset(
        {
            'u_wind': (['isobaric', 'lat', 'lon'], data_u),
            'v_wind': (['isobaric', 'lat', 'lon'], data_v)
        },
        coords={
            'isobaric': xr.DataArray(
                np.linspace(1000, 500, 5),
                name='isobaric',
                dims=['isobaric'],
                attrs={'units': 'hPa'}
            ),
            'lat': xr.DataArray(
                np.linspace(30, 45, 6),
                name='lat',
                dims=['lat'],
                attrs={'units': 'degrees_north'}
            ),
            'lon': xr.DataArray(
                np.linspace(255, 275, 7),
                name='lon',
                dims=['lon'],
                attrs={'units': 'degrees_east'}
            )
        }
    )

    start, end = (30.5, 255.5), (44.5, 274.5)
  return cross_section(ds.metpy.parse_cf(), start, end, steps=7, interp_type='nearest')
                         ^^^^^^^^^^^^^^^^^^^

tests/calc/test_cross_sections.py:53:


/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/metpy/xarray.py:812: in parse_cf
subset = xr.merge([self.parse_cf(single_varname, coordinates=coordinates)
/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/xarray/structure/merge.py:1024: in merge
merge_result = merge_core(
/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/xarray/structure/merge.py:746: in merge_core
variables, out_indexes = merge_collected(
/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/xarray/structure/merge.py:326: in merge_collected
emit_user_level_warning(


message = "In a future version of xarray the default value for compat will change from compat='no_conflicts' to compat='override...ults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set compat explicitly."
category = <class 'FutureWarning'>

def emit_user_level_warning(message, category=None) -> None:
    """Emit a warning at the user level by inspecting the stack trace."""
    stacklevel = find_stack_level()
  return warnings.warn(message, category=category, stacklevel=stacklevel)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

E FutureWarning: In a future version of xarray the default value for compat will change from compat='no_conflicts' to compat='override'. This is likely to lead to different results when combining overlapping variables with the same name. To opt in to new defaults and get rid of these warnings now use `set_options(use_new_combine_kwarg_defaults=True) or set compat explicitly.

/opt/hostedtoolcache/Python/3.13.7/x64/lib/python3.13/site-packages/xarray/core/utils.py:1194: FutureWarning
__________ ERROR at setup of test_latitude_from_cross_section_given_y __________

@pytest.fixture()
@needs_cartopy
def test_cross_xy():
    """Return cross section on a x/y grid with a time coordinate for use in tests."""
    data_u = np.linspace(-25, 25, 5 * 6 * 7).reshape((1, 5, 6, 7)) * units('m/s')
    data_v = np.linspace(25, -25, 5 * 6 * 7).reshape((1, 5, 6, 7)) * units('m/s')
    ds = xr.Dataset(
        {
            'u_wind': (['time', 'isobaric', 'y', 'x'], data_u),
            'v_wind': (['time', 'isobaric', 'y', 'x'], data_v),
            'lambert_conformal': ([], '')
        },
        coords={
            'time': xr.DataArray(
                np.array(['2018-07-01T00:00'], dtype='datetime64[ns]'),
                name='time',
                dims=['time']
            ),
            'isobaric': xr.DataArray(
                np.linspace(1000, 500, 5),
                name='isobaric',
                dims=['isobar</pre></details>

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