id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type 708766975,MDExOlB1bGxSZXF1ZXN0NDkyOTMxMzk3,4458,Autodetect the engine only when `engine=None`,226037,closed,0,,,2,2020-09-25T08:53:27Z,2020-12-10T10:30:56Z,2020-09-28T15:42:01Z,MEMBER,,0,pydata/xarray/pulls/4458,"Always use the `engine` explicitly selected by the user and perform auto detection only when `engine=None`. - [x] Closes #4457 - [x] Tests added - [x] Passes `isort . && black . && mypy . && flake8` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [x] No new functions/methods The refactor complexity stems mostly from moving or duplicating some logic from `_get_engine_from_magic_number` to the backend stores. The current, rather ugly, code minimizes changes to the error conditions and messages. Later in the backend refactor the plugins will provide the functionalities to identify the format from the file content and the duplication should be eliminated. @jhamman do you think I need to acknowledge the CZI sponsorship in the changelog?","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4458/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 372924734,MDExOlB1bGxSZXF1ZXN0MjI0OTgxMjc5,2502,Fix tests to new coordinate names in cfgrib>=0.9.2,226037,closed,0,,,2,2018-10-23T10:24:05Z,2018-10-25T20:57:40Z,2018-10-23T18:28:48Z,MEMBER,,0,pydata/xarray/pulls/2502,"Fix `TestCfGrib` broken by a user-visible backward-incompatible change in *cfgrib>=0.9.2*. No other user visible coordinate name change is expected so the test can remain like it is. Sorry for the inconvenience! - [x] Noted in the discussion of #2500 - [x] Tests added - ~~Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API~~ ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2502/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 368003448,MDU6SXNzdWUzNjgwMDM0NDg=,2475,Please add support for GRIB files via ECMWF cfgrib / ecCodes,226037,closed,0,,,2,2018-10-09T01:04:24Z,2018-10-17T17:17:36Z,2018-10-17T17:14:21Z,MEMBER,,,,"The [*cfgrib* project](https://pypi.org/project/cfgrib/) offers to open a GRIB file as an `xarray.Dataset`: ``` >>> import cfgrib >>> cfgrib.open_dataset('era5-levels-members.grib') Dimensions: (air_pressure: 2, latitude: 61, longitude: 120, number: 10, time: 4) Coordinates: * number (number) int64 0 1 2 3 4 5 6 7 8 9 * time (time) datetime64[ns] 2017-01-01 ... 2017-01-02T12:00:00 step timedelta64[ns] ... * air_pressure (air_pressure) float64 850.0 500.0 * latitude (latitude) float64 90.0 87.0 84.0 81.0 ... -84.0 -87.0 -90.0 * longitude (longitude) float64 0.0 3.0 6.0 9.0 ... 351.0 354.0 357.0 valid_time (time) datetime64[ns] ... Data variables: z (number, time, air_pressure, latitude, longitude) float32 ... t (number, time, air_pressure, latitude, longitude) float32 ... Attributes: GRIB_edition: 1 GRIB_centre: ecmf GRIB_centreDescription: European Centre for Medium-Range Weather Forecasts GRIB_subCentre: 0 history: GRIB to CDM+CF via cfgrib-0.9.../ecCodes-2... ``` It would be very helpful to have a backend for it distributed with *xarray* to be selected via the `engine` keyword argument: ``` >>> import xarray as xr >>> xr.open_dataset('era5-levels-members.grib', engine='cfgrib') Dimensions: (air_pressure: 2, latitude: 61, longitude: 120, number: 10, time: 4) Coordinates: * number (number) int64 0 1 2 3 4 5 6 7 8 9 * time (time) datetime64[ns] 2017-01-01 ... 2017-01-02T12:00:00 step timedelta64[ns] ... * air_pressure (air_pressure) float64 850.0 500.0 * latitude (latitude) float64 90.0 87.0 84.0 81.0 ... -84.0 -87.0 -90.0 * longitude (longitude) float64 0.0 3.0 6.0 9.0 ... 351.0 354.0 357.0 valid_time (time) datetime64[ns] ... Data variables: z (number, time, air_pressure, latitude, longitude) float32 ... t (number, time, air_pressure, latitude, longitude) float32 ... Attributes: GRIB_edition: 1 GRIB_centre: ecmf GRIB_centreDescription: European Centre for Medium-Range Weather Forecasts GRIB_subCentre: 0 history: GRIB to CDM+CF via cfgrib-0.9.../ecCodes-2... ``` cc @StephanSiemen @iainrussell","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2475/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue