id,node_id,number,state,locked,title,user,body,created_at,updated_at,closed_at,merged_at,merge_commit_sha,assignee,milestone,draft,head,base,author_association,auto_merge,repo,url,merged_by 489956446,MDExOlB1bGxSZXF1ZXN0NDg5OTU2NDQ2,4442,closed,0,Fix DataArray.to_dataframe when the array has MultiIndex,10563614," - [X] Closes #3008 - [x] Tests added - [x] Passes `isort . && black . && mypy . && flake8` - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` ",2020-09-20T20:45:12Z,2021-02-20T00:08:42Z,2021-02-20T00:08:42Z,2021-02-20T00:08:42Z,eb7e112d45a9edebd8e5fb4f873e3e6adb18824a,,,0,eb34d2b09577df2561666ecf0b178ae89fd8780e,9a4313b4b75c181eade5a61f1a2f053b9d1bb293,CONTRIBUTOR,,13221727,https://github.com/pydata/xarray/pull/4442, 493761942,MDExOlB1bGxSZXF1ZXN0NDkzNzYxOTQy,4467,open,0,Tolerance,10563614," - [x] Closes #4465 - [x] Tests added - [ ] Passes `isort . && black . && mypy . && flake8` - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] New functions/methods are listed in `api.rst` ",2020-09-27T18:57:34Z,2022-06-09T14:50:17Z,,,1598fa6bdf66ad1c66450cf7f4dbe1159d4881e0,35968931,,0,9d5f8ac781cb381cfccfc9f945019fb5ff834aaf,d1e4164f3961d7bbb3eb79037e96cae14f7182f8,CONTRIBUTOR,,13221727,https://github.com/pydata/xarray/pull/4467, 498123546,MDExOlB1bGxSZXF1ZXN0NDk4MTIzNTQ2,4489,open,0,Alignment with tolerance2,10563614," - [x] Closes #2217 - [x] Tests added - [ ] Passes `isort . && black . && mypy . && flake8` - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] New functions/methods are listed in `api.rst` Reading #2217, I've implemented fast algorithms for union and intersection of arrays with numerical tolerance. This works fine in the ""normal"" case, when each array has all its values different (outside the tolerance) and the first and second arrays have some values in common within the tolerance. Conversely, the behavior is not well defined when one array has some values that are within the tolerance (or are equal) of each other. In this case, the behavior of union and intersection is not well defined anyway. The ""bad"" cases could be checked to raise an Exception (duplicate values within the tolerance), but this is not implemented yet. I've also implemented a function to test index equality within the tolerance. At last, the logic of xarray.align has been changed to deal with the tolerance. It was not possible to avoid some changes in align. I'd appreciate some tests and code review, because there are certainly some rough corners I've not though about.",2020-10-05T21:17:53Z,2023-12-14T19:22:57Z,,,7f6a061bace18038bde8d3b76869bf22c4aa4dd4,,,0,368c7d4e79dea8689bbd57cc7745ce1830e3e32e,d1e4164f3961d7bbb3eb79037e96cae14f7182f8,CONTRIBUTOR,,13221727,https://github.com/pydata/xarray/pull/4489, 1067602992,PR_kwDOAMm_X84_olQw,7085,closed,0,solve a bug when the units attribute is not a string ,10563614," - [ ] Closes #xxxx - [x] Tests added - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` - [ ] New functions/methods are listed in `api.rst` We faced a sort of bug with a colleague of mine. It seems to be legal to set a numeric value to the units attributes in an xarray or a netcdf file. xarray accepts to save such an array to netcdf: xr.DataArray([1, 2, 3], attrs={'units': 1}, name='x').to_csv('tmp.nc'). Reading this netcdf file with xarray.open_dataset raises an error. It is unlikely to have a scalar for the units, but at least it happened to us (the value was NaN) and this raised an exception very difficult to understand. This raises an exception because ```""since"" in attrs[""units""]``` was called twice in xarray codebase (in coding_times.py and in conventions.py) without checking for the type of the attribute. This PR solves this improbable bug ",2022-09-26T19:27:08Z,2022-09-28T19:13:11Z,2022-09-28T19:13:11Z,2022-09-28T19:13:11Z,2c43663aae1292b88b1abb399eff8484a9f562a0,,,0,d14fda131fd56fad1bb803cc2882c4b7ab5746f4,5ba830d02099659a81afe08c4bfc03b4bed62ff2,CONTRIBUTOR,"{""enabled_by"": {""login"": ""TomNicholas"", ""id"": 35968931, ""node_id"": ""MDQ6VXNlcjM1OTY4OTMx"", ""avatar_url"": ""https://avatars.githubusercontent.com/u/35968931?v=4"", ""gravatar_id"": """", ""url"": ""https://api.github.com/users/TomNicholas"", ""html_url"": ""https://github.com/TomNicholas"", ""followers_url"": ""https://api.github.com/users/TomNicholas/followers"", ""following_url"": ""https://api.github.com/users/TomNicholas/following{/other_user}"", ""gists_url"": ""https://api.github.com/users/TomNicholas/gists{/gist_id}"", ""starred_url"": ""https://api.github.com/users/TomNicholas/starred{/owner}{/repo}"", ""subscriptions_url"": ""https://api.github.com/users/TomNicholas/subscriptions"", ""organizations_url"": ""https://api.github.com/users/TomNicholas/orgs"", ""repos_url"": ""https://api.github.com/users/TomNicholas/repos"", ""events_url"": ""https://api.github.com/users/TomNicholas/events{/privacy}"", ""received_events_url"": ""https://api.github.com/users/TomNicholas/received_events"", ""type"": ""User"", ""site_admin"": false}, ""merge_method"": ""squash"", ""commit_title"": ""Fix bug with netcdf when units attribute is not a string (#7085)"", ""commit_message"": ""* solve a bug when the units attribute is not a string (it happens that it is np.nan)\r\n\r\n* [pre-commit.ci] auto fixes from pre-commit.com hooks\r\n\r\nfor more information, see https://pre-commit.ci\r\n\r\n* update the bug fixes section\r\n\r\nCo-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>\r\nCo-authored-by: Anderson Banihirwe \r\nCo-authored-by: Tom Nicholas ""}",13221727,https://github.com/pydata/xarray/pull/7085,