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 1705163672,PR_kwDOAMm_X85QQiiY,7834,Use `numpy.can_cast` instead of casting and checking,132147,closed,0,,,5,2023-05-11T06:36:06Z,2023-06-26T05:06:30Z,2023-06-26T05:06:29Z,CONTRIBUTOR,,1,pydata/xarray/pulls/7834,"In numpy >= 1.24 unsafe casting raises a RuntimeWarning for an operation that xarray does often to check if casting is safe. `numpy.can_cast` looks like an alternative approach designed for this exact case. - [ ] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] New functions/methods are listed in `api.rst` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/7834/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1071806607,PR_kwDOAMm_X84va6lN,6049,Attempt datetime coding using cftime when pandas fails,132147,closed,0,,,2,2021-12-06T07:12:35Z,2022-01-04T00:28:15Z,2021-12-24T11:48:22Z,CONTRIBUTOR,,0,pydata/xarray/pulls/6049,"A netCDF4 dataset we use has a time variable defined as: ``` double time(time) ; time:axis = ""T"" ; time:bounds = ""time_bnds"" ; time:calendar = ""gregorian"" ; time:long_name = ""time"" ; time:standard_name = ""time"" ; time:units = ""days since 1970-01-01 00:00:00 00"" ; ``` Note the `units` attribute, specifically a timezone offset of `00` without any `+-` sign. xarray can successfully open this dataset and parse the time units, making a time variable with the expeced values. However, attempting to save this dataset (e.g. after slicing some geographic bounds or selecting a subset of variables), xarray would raise an error trying to reformat the time `units`. This fix applies the same logic used in the decoding step to the encoding step - specifically, attempt to use `pandas` but if that fails then use `cftime`. The decoding step catches `ValueError` to do this, but `ValueError` was not caught in the encode workflow. - [x] Tests added - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst`","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6049/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull