Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unittest failure on debian sid #3453

Closed
avalentino opened this issue Mar 24, 2024 · 2 comments
Closed

Unittest failure on debian sid #3453

avalentino opened this issue Mar 24, 2024 · 2 comments
Labels
Area: Units Pertains to unit information Status: Upstream Needs work done in upstream project Type: Bug Something is not working like it should

Comments

@avalentino
Copy link
Contributor

What went wrong?

Unittests fail of debian sit (x86_64).
The issue seems to be linked to the update to numpy 1.26.
See also https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1067229.

Operating System

Windows

Version

main (6b4c6ec)

Python Version

3.11 and 3.12

Code to Reproduce

$ python3.11 -m pytest -W ignore::DeprecationWarning -k "not test_projection and not test_pyproj_projection and not test_no_projection and not test_globe and not test_geodetic and not test_unit_array and not test_units and not test_units_data and not test_magnitude_with_quantity and not test_convert_units and not test_convert_to_base_units and not test_missing_grid_mapping_invalid and not test_coordinates_basic_by_method and not test_coordinates_basic_by_property and not test_narr_example_variable_without_grid_mapping and not test_find_axis_name_ and not test_find_axis_number_ and not test_cf_parse_with_grid_mapping and not test_data_array_loc_ and not test_data_array_sel_ and not test_dataset_ and not test_check_axis_with_bad_unit and not test_auxilary_lat_lon_ and not test_zoom_xarray and not test_parse_grid_arguments_xarray and not test_absolute_momentum_xarray_units_attr and not test_precipitable_water and not test_mean_pressure_weighted and not test_weighted_continuous_average and not test_precipitable_water_xarray and not test_bunkers_motion and not test_bulk_shear and not test_critical_angle and not _4d and not test_interpolate_to_grid and not test_natural_neighbor_to_grid and not test_inverse_distance_to_grid and not test_interpolate_to_points and not test_natural_neighbor_to_points and not test_inverse_distance_to_points and not test_declarative_ and not test_no_field_error and not test_ndim_error_ and not test_projection_object and not test_colorfill and not test_global and not test_latlon and not test_plotobs_units_with_formatter and not test_attribute_error_ and not test_time_deltas and not test_latlon_default_units and not test_add_timestamp_xarray and not test_find_nn_triangles_point and not test_vorticity_grid_pole and not test_corfidi_motion and not test_corfidi_motion_override_llj and not test_corfidi_corfidi_llj_unaivalable and not test_corfidi_corfidi_cloudlayer_trimmed and not test_corfidi_motion_with_nans and not test_colorbar_kwargs" --ignore=tests/io/test_gempak.py --ignore=tests/io/test_gini.py --ignore=tests/io/test_metar.py --ignore=tests/io/test_nexrad.py --ignore=tests/io/test_station_data.py --ignore=tests/io/test_text.py

Errors, Traceback, and Logs

============================= test session starts ==============================
platform linux -- Python 3.11.8, pytest-8.1.1, pluggy-1.4.0
Matplotlib: 3.6.3
Freetype: 2.13.2
Dep Versions: Matplotlib 3.6.3, NumPy 1.26.4, Pandas 2.1.4, Pint 0.19.2
	PyProj 3.6.1, SciPy 1.11.4, Traitlets 5.5.0, Xarray 2024.2.0
rootdir: /home/antonio/debian/git/build-area/metpy-1.6.1+ds/.pybuild/cpython3_3.11_metpy/build
configfile: pyproject.toml
plugins: hypothesis-6.99.9, mpl-0.0.0, requests-mock-1.11.0
collected 1255 items / 268 deselected / 987 selected

tests/calc/test_basic.py ............................................... [  4%]
........................................................................ [ 12%]
......................                                                   [ 14%]
tests/calc/test_calc_tools.py .......................................... [ 18%]
......................FF...............................FFFFFFF.FFF...... [ 25%]
............................                                             [ 28%]
tests/calc/test_cross_sections.py ............                           [ 29%]
tests/calc/test_indices.py ....                                          [ 30%]
tests/calc/test_kinematics.py .......................................... [ 34%]
......FFFFFF.............                                                [ 37%]
tests/calc/test_thermo.py .............................................. [ 41%]
...............F.........................F.............................. [ 49%]
........................................................................ [ 56%]
.......FFFFF.............                                                [ 58%]
tests/calc/test_turbulence.py ...........................                [ 61%]
tests/interpolate/test_geometry.py ............                          [ 62%]
tests/interpolate/test_grid.py .......                                   [ 63%]
tests/interpolate/test_interpolate_tools.py ......                       [ 64%]
tests/interpolate/test_one_dimension.py ..................               [ 65%]
tests/interpolate/test_points.py ...                                     [ 66%]
tests/interpolate/test_slices.py ........                                [ 67%]
tests/io/test_tools.py ..                                                [ 67%]
tests/plots/test_cartopy_utils.py .......                                [ 67%]
tests/plots/test_ctables.py ..........                                   [ 68%]
tests/plots/test_declarative.py ...........                              [ 70%]
tests/plots/test_mapping.py ......................                       [ 72%]
tests/plots/test_mpl.py .                                                [ 72%]
tests/plots/test_patheffects.py ........                                 [ 73%]
tests/plots/test_plot_areas.py .....                                     [ 73%]
tests/plots/test_skewt.py ....................................           [ 77%]
tests/plots/test_station_plot.py ..........................              [ 80%]
tests/plots/test_util.py .............                                   [ 81%]
tests/plots/test_wx_symbols.py ....                                      [ 81%]
tests/test_cbook.py ..                                                   [ 81%]
tests/test_deprecation.py .                                              [ 82%]
tests/test_packaging.py .                                                [ 82%]
tests/test_testing.py ........                                           [ 82%]
tests/test_xarray.py ................................................... [ 88%]
........................................................................ [ 95%]
.............................................                            [100%]

=================================== FAILURES ===================================
__________________________ test_get_layer_heights_agl __________________________

    def test_get_layer_heights_agl():
        """Test get_layer_heights with interpolation."""
        heights = np.arange(300, 1200, 100) * units.m
        data = heights.m * 0.1 * units.degC
>       heights, data = get_layer_heights(heights, 500 * units.m, data, with_agl=True)

tests/calc/test_calc_tools.py:461: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
metpy/xarray.py:1330: in wrapper
    result = func(*bound_args.args, **bound_args.kwargs)
metpy/units.py:333: in wrapper
    return func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

height = <Quantity([ 300  400  500  600  700  800  900 1000 1100], 'meter')>
depth = <Quantity(500, 'meter')>, bottom = None, interpolate = True
with_agl = True
args = (<Quantity([ 30.  40.  50.  60.  70.  80.  90. 100. 110.], 'degree_Celsius')>,)

    @exporter.export
    @preprocess_and_wrap()
    @check_units('[length]')
    def get_layer_heights(height, depth, *args, bottom=None, interpolate=True, with_agl=False):
        """Return an atmospheric layer from upper air data with the requested bottom and depth.
    
        This function will subset an upper air dataset to contain only the specified layer using
        the height only.
    
        Parameters
        ----------
        height : array-like
            Atmospheric height
        depth : `pint.Quantity`
            Thickness of the layer
        args : array-like
            Atmospheric variable(s) measured at the given pressures
        bottom : `pint.Quantity`, optional
            Bottom of the layer
        interpolate : bool, optional
            Interpolate the top and bottom points if they are not in the given data. Defaults
            to True.
        with_agl : bool, optional
            Returns the height as above ground level by subtracting the minimum height in the
            provided height. Defaults to False.
    
        Returns
        -------
        `pint.Quantity, pint.Quantity`
            Height and data variables of the layer
    
        Notes
        -----
        Only functions on 1D profiles (not higher-dimension vertical cross sections or grids).
        Also, this will return Pint Quantities even when given xarray DataArray profiles.
    
        .. versionchanged:: 1.0
           Renamed ``heights`` parameter to ``height``
    
        """
        # Make sure pressure and datavars are the same length
        for datavar in args:
            if len(height) != len(datavar):
                raise ValueError('Height and data variables must have the same length.')
    
        # If we want things in AGL, subtract the minimum height from all height values
        if with_agl:
>           sfc_height = np.min(height)
E           TypeError: no implementation found for 'numpy.min' on types that implement __array_function__: [<class 'pint.quantity.build_quantity_class.<locals>.Quantity'>]

metpy/calc/tools.py:476: TypeError
_________________ test_get_layer_heights_agl_bottom_no_interp __________________

    def test_get_layer_heights_agl_bottom_no_interp():
        """Test get_layer_heights with no interpolation and a bottom."""
        heights_init = np.arange(300, 1200, 100) * units.m
        data = heights_init.m * 0.1 * units.degC
>       heights, data = get_layer_heights(heights_init, 500 * units.m, data, with_agl=True,
                                          interpolate=False, bottom=200 * units.m)

tests/calc/test_calc_tools.py:472: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
metpy/xarray.py:1330: in wrapper
    result = func(*bound_args.args, **bound_args.kwargs)
metpy/units.py:333: in wrapper
    return func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

height = <Quantity([ 300  400  500  600  700  800  900 1000 1100], 'meter')>
depth = <Quantity(500, 'meter')>, bottom = <Quantity(200, 'meter')>
interpolate = False, with_agl = True
args = (<Quantity([ 30.  40.  50.  60.  70.  80.  90. 100. 110.], 'degree_Celsius')>,)

    @exporter.export
    @preprocess_and_wrap()
    @check_units('[length]')
    def get_layer_heights(height, depth, *args, bottom=None, interpolate=True, with_agl=False):
        """Return an atmospheric layer from upper air data with the requested bottom and depth.
    
        This function will subset an upper air dataset to contain only the specified layer using
        the height only.
    
        Parameters
        ----------
        height : array-like
            Atmospheric height
        depth : `pint.Quantity`
            Thickness of the layer
        args : array-like
            Atmospheric variable(s) measured at the given pressures
        bottom : `pint.Quantity`, optional
            Bottom of the layer
        interpolate : bool, optional
            Interpolate the top and bottom points if they are not in the given data. Defaults
            to True.
        with_agl : bool, optional
            Returns the height as above ground level by subtracting the minimum height in the
            provided height. Defaults to False.
    
        Returns
        -------
        `pint.Quantity, pint.Quantity`
            Height and data variables of the layer
    
        Notes
        -----
        Only functions on 1D profiles (not higher-dimension vertical cross sections or grids).
        Also, this will return Pint Quantities even when given xarray DataArray profiles.
    
        .. versionchanged:: 1.0
           Renamed ``heights`` parameter to ``height``
    
        """
        # Make sure pressure and datavars are the same length
        for datavar in args:
            if len(height) != len(datavar):
                raise ValueError('Height and data variables must have the same length.')
    
        # If we want things in AGL, subtract the minimum height from all height values
        if with_agl:
>           sfc_height = np.min(height)
E           TypeError: no implementation found for 'numpy.min' on types that implement __array_function__: [<class 'pint.quantity.build_quantity_class.<locals>.Quantity'>]

metpy/calc/tools.py:476: TypeError
___________________________ test_angle_to_direction ____________________________

    def test_angle_to_direction():
        """Test single angle in degree."""
        expected_dirs = DIR_STRS[:-1]  # UND at -1
>       output_dirs = [angle_to_direction(angle) for angle in FULL_CIRCLE_DEGREES]

tests/calc/test_calc_tools.py:850: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/calc/test_calc_tools.py:850: in <listcomp>
    output_dirs = [angle_to_direction(angle) for angle in FULL_CIRCLE_DEGREES]
metpy/xarray.py:1330: in wrapper
    result = func(*bound_args.args, **bound_args.kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

input_angle = <Quantity([0.], 'degree')>, full = False, level = 3

    @exporter.export
    @preprocess_and_wrap()
    def angle_to_direction(input_angle, full=False, level=3):
        """Convert the meteorological angle to directional text.
    
        Works for angles greater than or equal to 360 (360 -> N | 405 -> NE)
        and rounds to the nearest angle (355 -> N | 404 -> NNE)
    
        Parameters
        ----------
        input_angle : float or array-like
            Angles such as 0, 25, 45, 360, 410, etc.
        full : bool
            True returns full text (South), False returns abbreviated text (S)
        level : int
            Level of detail (3 = N/NNE/NE/ENE/E... 2 = N/NE/E/SE... 1 = N/E/S/W)
    
        Returns
        -------
        direction
            The directional text
    
        Examples
        --------
        >>> from metpy.calc import angle_to_direction
        >>> from metpy.units import units
        >>> angle_to_direction(225. * units.deg)
        'SW'
    
        """
        try:  # strip units temporarily
            origin_units = input_angle.units
            input_angle = input_angle.m
        except AttributeError:  # no units associated
            origin_units = units.degree
    
        if not hasattr(input_angle, '__len__') or isinstance(input_angle, str):
            input_angle = [input_angle]
            scalar = True
        else:
            scalar = False
    
        np_input_angle = np.array(input_angle).astype(float)
        origshape = np_input_angle.shape
        ndarray = len(origshape) > 1
        # clean any numeric strings, negatives, and None does not handle strings with alphabet
        input_angle = units.Quantity(np_input_angle, origin_units)
        input_angle[input_angle < 0] = np.nan
    
        # Normalize between 0 - 360
        norm_angles = input_angle % MAX_DEGREE_ANGLE
    
        if level == 3:
            nskip = 1
        elif level == 2:
            nskip = 2
        elif level == 1:
            nskip = 4
        else:
            err_msg = 'Level of complexity cannot be less than 1 or greater than 3!'
            raise ValueError(err_msg)
    
        angle_dict = {
            i * BASE_DEGREE_MULTIPLIER.m * nskip: dir_str
            for i, dir_str in enumerate(DIR_STRS[::nskip])
        }
        angle_dict[MAX_DEGREE_ANGLE.m] = 'N'  # handle edge case of 360.
        angle_dict[UND_ANGLE] = UND
    
        # round to the nearest angles for dict lookup
        # 0.001 is subtracted so there's an equal number of dir_str from
        # np.arange(0, 360, 22.5), or else some dir_str will be preferred
    
        # without the 0.001, level=2 would yield:
        # ['N', 'N', 'NE', 'E', 'E', 'E', 'SE', 'S', 'S',
        #  'S', 'SW', 'W', 'W', 'W', 'NW', 'N']
    
        # with the -0.001, level=2 would yield:
        # ['N', 'N', 'NE', 'NE', 'E', 'E', 'SE', 'SE',
        #  'S', 'S', 'SW', 'SW', 'W', 'W', 'NW', 'NW']
    
>       multiplier = np.round((norm_angles / BASE_DEGREE_MULTIPLIER / nskip) - 0.001).m
E       TypeError: no implementation found for 'numpy.round' on types that implement __array_function__: [<class 'pint.quantity.build_quantity_class.<locals>.Quantity'>]

metpy/calc/tools.py:1887: TypeError

[CUT]

______________________ test_gdi_no_950_raises_valueerror _______________________

index_xarray_data = <xarray.Dataset> Size: 812B
Dimensions:         (isobaric: 3, time: 1, y: 2, x: 3)
Coordinates:
  * isobaric        (i... float64 144B <Quantity([[[[180. 18...
    wind_speed      (time, isobaric, y, x) float64 144B <Quantity([[[[20. 20....

    def test_gdi_no_950_raises_valueerror(index_xarray_data):
        """GDI requires a 950hPa or higher measurement.
    
        Ensure error is raised if this data is not provided.
        """
        with pytest.raises(ValueError):
            pressure = index_xarray_data.isobaric
            temperature = index_xarray_data.temperature
            dewpoint = index_xarray_data.dewpoint
            relative_humidity = relative_humidity_from_dewpoint(temperature, dewpoint)
            mixrat = mixing_ratio_from_relative_humidity(pressure, temperature, relative_humidity)
>           galvez_davison_index(
                pressure,
                temperature,
                mixrat,
                pressure[0]
            )

tests/calc/test_thermo.py:2540: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
metpy/xarray.py:1546: in wrapper
    return func(*bound_args.args, **bound_args.kwargs)
metpy/xarray.py:1330: in wrapper
    result = func(*bound_args.args, **bound_args.kwargs)
metpy/units.py:333: in wrapper
    return func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

pressure = <Quantity([[[[850. 850. 850.]
   [850. 850. 850.]]]


 [[[700. 700. 700.]
   [700. 700. 700.]]]


 [[[500. 500. 500.]
   [500. 500. 500.]]]], 'hectopascal')>
temperature = <Quantity([[[[296. 295. 294.]
   [293. 292. 291.]]]


 [[[286. 285. 284.]
   [283. 282. 281.]]]


 [[[276. 275. 274.]
   [273. 272. 271.]]]], 'kelvin')>
mixing_ratio = <Quantity([[[[0.01855934 0.01741586 0.01633673]
   [0.01531859 0.01435824 0.01345267]]]


 [[[0.01175802 0.01098516 0....93331 0.00833035]]]


 [[[0.00819126 0.00761249 0.0070708 ]
   [0.00656404 0.00609019 0.00564733]]]], 'dimensionless')>
surface_pressure = <Quantity(850.0, 'hectopascal')>, vertical_dim = 0

    @exporter.export
    @add_vertical_dim_from_xarray
    @preprocess_and_wrap(broadcast=('pressure', 'temperature', 'mixing_ratio'))
    @check_units('[pressure]', '[temperature]', '[dimensionless]', '[pressure]')
    def galvez_davison_index(pressure, temperature, mixing_ratio, surface_pressure,
                             vertical_dim=0):
        """
        Calculate GDI from the pressure, temperature, mixing ratio, and surface pressure.
    
        Calculation of the GDI relies on temperatures and mixing ratios at 950,
        850, 700, and 500 hPa. These four levels define three layers: A) Boundary,
        B) Trade Wind Inversion (TWI), C) Mid-Troposphere.
    
        GDI formula derived from [Galvez2015]_:
    
        .. math:: GDI = CBI + MWI + II + TC
    
        where:
    
        * :math:`CBI` is the Column Buoyancy Index
        * :math:`MWI` is the Mid-tropospheric Warming Index
        * :math:`II` is the Inversion Index
        * :math:`TC` is the Terrain Correction [optional]
    
        .. list-table:: GDI Values & Corresponding Convective Regimes
            :widths: 15 75
            :header-rows: 1
    
            * - GDI Value
              - Expected Convective Regime
            * - >=45
              - Scattered to widespread thunderstorms likely.
            * - 35 to 45
              - Scattered thunderstorms and/or scattered to widespread rain showers.
            * - 25 to 35
              - Isolated to scattered thunderstorms and/or scattered showers.
            * - 15 to 25
              - Isolated thunderstorms and/or isolated to scattered showers.
            * - 5 to 10
              - Isolated to scattered showers.
            * - <5
              - Strong TWI likely, light rain possible.
    
        Parameters
        ----------
        pressure : `pint.Quantity`
            Pressure level(s)
    
        temperature : `pint.Quantity`
            Temperature corresponding to pressure
    
        mixing_ratio : `pint.Quantity`
            Mixing ratio values corresponding to pressure
    
        surface_pressure : `pint.Quantity`
            Pressure of the surface.
    
        vertical_dim : int, optional
            The axis corresponding to vertical, defaults to 0. Automatically determined from
            xarray DataArray arguments.
    
        Returns
        -------
        `pint.Quantity`
            GDI Index
    
        Examples
        --------
        >>> from metpy.calc import mixing_ratio_from_relative_humidity
        >>> from metpy.units import units
        >>> # pressure
        >>> p = [1008., 1000., 950., 900., 850., 800., 750., 700., 650., 600.,
        ...      550., 500., 450., 400., 350., 300., 250., 200.,
        ...      175., 150., 125., 100., 80., 70., 60., 50.,
        ...      40., 30., 25., 20.] * units.hPa
        >>> # temperature
        >>> T = [29.3, 28.1, 23.5, 20.9, 18.4, 15.9, 13.1, 10.1, 6.7, 3.1,
        ...      -0.5, -4.5, -9.0, -14.8, -21.5, -29.7, -40.0, -52.4,
        ...      -59.2, -66.5, -74.1, -78.5, -76.0, -71.6, -66.7, -61.3,
        ...      -56.3, -51.7, -50.7, -47.5] * units.degC
        >>> # relative humidity
        >>> rh = [.85, .65, .36, .39, .82, .72, .75, .86, .65, .22, .52,
        ...       .66, .64, .20, .05, .75, .76, .45, .25, .48, .76, .88,
        ...       .56, .88, .39, .67, .15, .04, .94, .35] * units.dimensionless
        >>> # calculate mixing ratio
        >>> mixrat = mixing_ratio_from_relative_humidity(p, T, rh)
        >>> galvez_davison_index(p, T, mixrat, p[0])
        <Quantity(-8.78797532, 'dimensionless')>
        """
>       if np.any(np.max(pressure, axis=vertical_dim) < 950 * units.hectopascal):
E       TypeError: no implementation found for 'numpy.max' on types that implement __array_function__: [<class 'pint.quantity.build_quantity_class.<locals>.Quantity'>]

metpy/calc/thermo.py:4586: TypeError
=========================== short test summary info ============================
FAILED tests/calc/test_calc_tools.py::test_get_layer_heights_agl - TypeError:...
FAILED tests/calc/test_calc_tools.py::test_get_layer_heights_agl_bottom_no_interp
FAILED tests/calc/test_calc_tools.py::test_angle_to_direction - TypeError: no...
FAILED tests/calc/test_calc_tools.py::test_angle_to_direction_edge - TypeErro...
FAILED tests/calc/test_calc_tools.py::test_angle_to_direction_list - TypeErro...
FAILED tests/calc/test_calc_tools.py::test_angle_to_direction_arr - TypeError...
FAILED tests/calc/test_calc_tools.py::test_angle_to_direction_full - TypeErro...
FAILED tests/calc/test_calc_tools.py::test_angle_to_direction_invalid_scalar
FAILED tests/calc/test_calc_tools.py::test_angle_to_direction_invalid_arr - T...
FAILED tests/calc/test_calc_tools.py::test_angle_to_direction_level_3 - TypeE...
FAILED tests/calc/test_calc_tools.py::test_angle_to_direction_level_2 - TypeE...
FAILED tests/calc/test_calc_tools.py::test_angle_to_direction_level_1 - TypeE...
FAILED tests/calc/test_kinematics.py::test_storm_relative_helicity_no_storm_motion
FAILED tests/calc/test_kinematics.py::test_storm_relative_helicity_storm_motion
FAILED tests/calc/test_kinematics.py::test_storm_relative_helicity_with_interpolation
FAILED tests/calc/test_kinematics.py::test_storm_relative_helicity - TypeErro...
FAILED tests/calc/test_kinematics.py::test_storm_relative_helicity_agl - Type...
FAILED tests/calc/test_kinematics.py::test_storm_relative_helicity_masked - T...
FAILED tests/calc/test_thermo.py::test_lfc_ml2 - TypeError: no implementation...
FAILED tests/calc/test_thermo.py::test_lfc_and_el_below_lcl - TypeError: no i...
FAILED tests/calc/test_thermo.py::test_gdi - TypeError: no implementation fou...
FAILED tests/calc/test_thermo.py::test_gdi_xarray - TypeError: no implementat...
FAILED tests/calc/test_thermo.py::test_gdi_arrays - TypeError: no implementat...
FAILED tests/calc/test_thermo.py::test_gdi_profile - TypeError: no implementa...
FAILED tests/calc/test_thermo.py::test_gdi_no_950_raises_valueerror - TypeErr...
=============== 25 failed, 962 passed, 268 deselected in 13.41s ================
@avalentino avalentino added the Type: Bug Something is not working like it should label Mar 24, 2024
@dopplershift
Copy link
Member

I think this is actually a problem with Pint. I can reproduce by rolling back to pint 0.19.2. Updating to Pint 0.22 seems to clean it all up with that version of numpy. Feel free to re-open if that seems incorrect.

@dopplershift dopplershift added Area: Units Pertains to unit information Status: Upstream Needs work done in upstream project labels Mar 26, 2024
@avalentino
Copy link
Contributor Author

Thanks @dopplershift

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: Units Pertains to unit information Status: Upstream Needs work done in upstream project Type: Bug Something is not working like it should
Projects
None yet
Development

No branches or pull requests

2 participants