diff --git a/cfgrib/xarray_to_grib.py b/cfgrib/xarray_to_grib.py index 06e6554..5cdccc1 100644 --- a/cfgrib/xarray_to_grib.py +++ b/cfgrib/xarray_to_grib.py @@ -253,7 +253,11 @@ def canonical_dataset_to_grib(dataset, path, mode="wb", no_warn=False, grib_keys # validate Dataset keys, DataArray names, and attr keys/values xr.backends.api._validate_dataset_names(dataset) # type: ignore - xr.backends.api._validate_attrs(dataset) # type: ignore + # _validate_attrs takes the engine name as its 2nd arg from xarray 2024.09.0 + try: + xr.backends.api._validate_attrs(dataset) # type: ignore + except TypeError: + xr.backends.api._validate_attrs(dataset, "cfgrib") # type: ignore real_grib_keys = {str(k)[5:]: v for k, v in dataset.attrs.items() if str(k)[:5] == "GRIB_"} real_grib_keys.update(grib_keys)