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 2262478932,PR_kwDOAMm_X85tqpUi,8974,Raise errors on new warnings from within xarray,5635139,closed,0,,,2,2024-04-25T01:50:48Z,2024-04-29T12:18:42Z,2024-04-29T02:50:21Z,MEMBER,,0,pydata/xarray/pulls/8974," Notes are inline. - [x] Closes https://github.com/pydata/xarray/issues/8494 - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` --- Done with some help from an LLM — quite good for doing tedious tasks that we otherwise wouldn't want to do — can paste in all the warnings output and get a decent start on rules for exclusions","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8974/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2052840951,I_kwDOAMm_X856W933,8566,Use `ddof=1` for `std` & `var`,5635139,open,0,,,2,2023-12-21T17:47:21Z,2023-12-27T16:58:46Z,,MEMBER,,,,"### What is your issue? I've discussed this a bunch with @dcherian (though I'm not sure he necessarily agrees, I'll let him comment) Currently xarray uses `ddof=0` for `std` & `var`. This is: - Rarely what someone actually wants — xarray data is almost always a sample of some underlying distribution, for which `ddof=1` is correct - Inconsistent with [pandas](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.var.html) OTOH: - It is consistent with [numpy](https://numpy.org/doc/stable/reference/generated/numpy.var.html) - It wouldn't be a painless change — folks who don't read deprecation messages would see values change very slightly Any thoughts?","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8566/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue 2033367994,PR_kwDOAMm_X85hj9np,8533,Offer a fixture for unifying DataArray & Dataset tests,5635139,closed,0,,,2,2023-12-08T22:06:28Z,2023-12-18T21:30:41Z,2023-12-18T21:30:40Z,MEMBER,,0,pydata/xarray/pulls/8533,Some tests are literally copy & pasted between DataArray & Dataset tests. This change allows them to use a single test. Not everything will be able to use this — sometimes we want to check specifics — but some will — I've change the `.cumulative` tests to use this fixture.,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8533/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 907845790,MDU6SXNzdWU5MDc4NDU3OTA=,5413,Does the PyPI release job fire twice for each release?,5635139,closed,0,,,2,2021-06-01T04:01:17Z,2023-12-04T19:22:32Z,2023-12-04T19:22:32Z,MEMBER,,,," I was attempting to copy the great work here for numbagg and spotted this! Do we fire twice for each release? Maybe that's fine though? https://github.com/pydata/xarray/actions/workflows/pypi-release.yaml ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5413/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 2021810083,PR_kwDOAMm_X85g8r6c,8508,Implement `np.clip` as `__array_function__`,5635139,closed,0,,,2,2023-12-02T02:20:11Z,2023-12-03T05:27:38Z,2023-12-03T05:27:33Z,MEMBER,,0,pydata/xarray/pulls/8508,"Would close https://github.com/pydata/xarray/issues/2570 Because of https://numpy.org/neps/nep-0018-array-function-protocol.html#partial-implementation-of-numpy-s-api, no option is ideal: - Don't do anything — don't implement `__array_function__`. Any numpy function that's not a `ufunc` — such as `np.clip` will materialize the array into memory. - Implement `__array_function__` and lose the ability to call any non-ufunc-numpy-func that we don't explicitly configure here. So `np.lexsort(da)` wouldn't work, for example; and users would have to run `np.lexsort(da.values)`. - Implement `__array_function__`, and attempt to handle the functions we don't explicitly configure by coercing to numpy arrays. This requires writing code to walk a tree of objects looking for arrays to coerce. It seems to go against the original numpy proposal. @shoyer is this summary accurate?","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8508/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1964877168,PR_kwDOAMm_X85d8EmN,8381,Allow writing to zarr with differently ordered dims,5635139,closed,0,,,2,2023-10-27T06:47:59Z,2023-11-25T21:02:20Z,2023-11-15T18:09:08Z,MEMBER,,0,pydata/xarray/pulls/8381," Is this reasonable? - [x] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8381/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2000154383,PR_kwDOAMm_X85fzju6,8466,Move Sphinx directives out of `See also`,5635139,open,0,,,2,2023-11-18T01:57:17Z,2023-11-21T18:25:05Z,,MEMBER,,0,pydata/xarray/pulls/8466,"This is potentially causing the `See also` to not render the links? (Does anyone know this better? It doesn't seem easy to build the docs locally...) ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8466/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 400444797,MDExOlB1bGxSZXF1ZXN0MjQ1NjMwOTUx,2687,Enable resampling on PeriodIndex,5635139,closed,0,,,2,2019-01-17T20:13:25Z,2023-11-17T20:38:44Z,2023-11-17T20:38:44Z,MEMBER,,0,pydata/xarray/pulls/2687,"This allows resampling with `PeriodIndex` objects by keeping the `group` as an index rather than coercing to a DataArray (which coerces any non-native types to objects) I'm still getting one failure around the name of the IndexVariable still being `__resample_dim__` after resample, but wanted to socialize the approach of allowing a `name` argument to `IndexVariable` - is this reasonable? - [x] Closes https://github.com/pydata/xarray/issues/1270 - [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/2687/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1986758555,PR_kwDOAMm_X85fGE95,8438,Rename `to_array` to `to_dataarray`,5635139,closed,0,,,2,2023-11-10T02:58:21Z,2023-11-10T06:15:03Z,2023-11-10T06:15:02Z,MEMBER,,0,pydata/xarray/pulls/8438,"This is a _very_ minor nit, so I'm not sure it's worth changing. What do others think? (I would have opened an issue but it's just as quick to just do the PR) ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8438/reactions"", ""total_count"": 3, ""+1"": 3, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1931582554,PR_kwDOAMm_X85cLpap,8285,Add `min_weight` param to `rolling_exp` functions,5635139,closed,0,,,2,2023-10-08T01:09:59Z,2023-10-14T07:24:48Z,2023-10-14T07:24:48Z,MEMBER,,0,pydata/xarray/pulls/8285,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8285/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1916391948,PR_kwDOAMm_X85bYlaM,8242,Add modules to `check-untyped`,5635139,closed,0,,,2,2023-09-27T21:56:45Z,2023-09-29T17:43:07Z,2023-09-29T16:39:34Z,MEMBER,,0,pydata/xarray/pulls/8242,"In reviewing https://github.com/pydata/xarray/pull/8241, I realize that we actually want `check-untyped-defs`, which is a bit less strict, but lets us add some more modules on. I did have to add a couple of ignores, think it's a reasonable tradeoff to add big modules like `computation` on. Errors with this enabled are actual type errors, not just `mypy` pedanticness, so would be good to get as much as possible into this list... ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8242/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1459938761,PR_kwDOAMm_X85DdsG-,7311,Add numba to nightly upstream,5635139,closed,0,,,2,2022-11-22T14:04:54Z,2023-09-28T16:48:16Z,2023-01-15T18:07:48Z,MEMBER,,0,pydata/xarray/pulls/7311,"I saw that we didn't have this while investigating https://github.com/numba/numba/issues/8615. We should probably wait until that's resolved before merging this (this doesn't solve that issue). ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/7311/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 430194200,MDExOlB1bGxSZXF1ZXN0MjY4MTM4OTg1,2875,DOC: More on pandas comparison,5635139,closed,0,,,2,2019-04-07T21:24:44Z,2023-09-28T16:46:14Z,2023-09-28T16:46:14Z,MEMBER,,1,pydata/xarray/pulls/2875,"Follow up from the mailing list: - Added some more thoughts on the multi-dimensional comparison. Some of this is opinionated (in concepts not arguments) so I'd appreciate feedback on both the concepts and language. - Removed some of the specific comparison with `NDPanel` etc, given those are removed - Placeholder for something on the Explicit API (wanted to get this version out, consistent with me leaving less work hanging)","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2875/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1895568528,PR_kwDOAMm_X85aSh-V,8181,Set dev version above released version,5635139,closed,0,,,2,2023-09-14T02:56:26Z,2023-09-14T20:54:36Z,2023-09-14T20:47:08Z,MEMBER,,0,pydata/xarray/pulls/8181,Pandas asserts that the xarray version that's running is above `2022.`; locally it was set to `999` which failed this. It only applies when developing locally.,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8181/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1203835220,I_kwDOAMm_X85HwRFU,6484,Should we raise a more informative error on no zarr dir?,5635139,closed,0,,,2,2022-04-13T22:05:07Z,2022-09-20T22:38:46Z,2022-09-20T22:38:46Z,MEMBER,,,,"### What happened? Currently if someone supplies a path that doesn't exist, we get quite a long stack trace, without really saying that the path doesn't exist. ### What did you expect to happen? Possibly a `FileNotFoundError` ### Minimal Complete Verifiable Example ```Python xr.open_zarr('x.zarr') ``` ### Relevant log output ```Python In [1]: xr.open_zarr('x.zarr') :1: RuntimeWarning: Failed to open Zarr store with consolidated metadata, falling back to try reading non-consolidated metadata. This is typically much slower for opening a dataset. To silence this warning, consider: 1. Consolidating metadata in this existing store with zarr.consolidate_metadata(). 2. Explicitly setting consolidated=False, to avoid trying to read consolidate metadata, or 3. Explicitly setting consolidated=True, to raise an error in this case instead of falling back to try reading non-consolidated metadata. xr.open_zarr('x.zarr') --------------------------------------------------------------------------- KeyError Traceback (most recent call last) ~/Library/Caches/pypoetry/virtualenvs/-x204KUJE-py3.9/lib/python3.9/site-packages/xarray/backends/zarr.py in open_group(cls, store, mode, synchronizer, group, consolidated, consolidate_on_close, chunk_store, storage_options, append_dim, write_region, safe_chunks, stacklevel) 347 try: --> 348 zarr_group = zarr.open_consolidated(store, **open_kwargs) 349 except KeyError: ~/Library/Caches/pypoetry/virtualenvs/-x204KUJE-py3.9/lib/python3.9/site-packages/zarr/convenience.py in open_consolidated(store, metadata_key, mode, **kwargs) 1186 # setup metadata store -> 1187 meta_store = ConsolidatedMetadataStore(store, metadata_key=metadata_key) 1188 ~/Library/Caches/pypoetry/virtualenvs/-x204KUJE-py3.9/lib/python3.9/site-packages/zarr/storage.py in __init__(self, store, metadata_key) 2643 # retrieve consolidated metadata -> 2644 meta = json_loads(store[metadata_key]) 2645 ~/Library/Caches/pypoetry/virtualenvs/-x204KUJE-py3.9/lib/python3.9/site-packages/zarr/storage.py in __getitem__(self, key) 894 else: --> 895 raise KeyError(key) 896 KeyError: '.zmetadata' During handling of the above exception, another exception occurred: GroupNotFoundError Traceback (most recent call last) in () ----> 1 xr.open_zarr('x.zarr') ~/Library/Caches/pypoetry/virtualenvs/-x204KUJE-py3.9/lib/python3.9/site-packages/xarray/backends/zarr.py in open_zarr(store, group, synchronizer, chunks, decode_cf, mask_and_scale, decode_times, concat_characters, decode_coords, drop_variables, consolidated, overwrite_encoded_chunks, chunk_store, storage_options, decode_timedelta, use_cftime, **kwargs) 750 } 751 --> 752 ds = open_dataset( 753 filename_or_obj=store, 754 group=group, ~/Library/Caches/pypoetry/virtualenvs/-x204KUJE-py3.9/lib/python3.9/site-packages/xarray/backends/api.py in open_dataset(filename_or_obj, engine, chunks, cache, decode_cf, mask_and_scale, decode_times, decode_timedelta, use_cftime, concat_characters, decode_coords, drop_variables, backend_kwargs, *args, **kwargs) 493 494 overwrite_encoded_chunks = kwargs.pop(""overwrite_encoded_chunks"", None) --> 495 backend_ds = backend.open_dataset( 496 filename_or_obj, 497 drop_variables=drop_variables, ~/Library/Caches/pypoetry/virtualenvs/-x204KUJE-py3.9/lib/python3.9/site-packages/xarray/backends/zarr.py in open_dataset(self, filename_or_obj, mask_and_scale, decode_times, concat_characters, decode_coords, drop_variables, use_cftime, decode_timedelta, group, mode, synchronizer, consolidated, chunk_store, storage_options, stacklevel) 798 799 filename_or_obj = _normalize_path(filename_or_obj) --> 800 store = ZarrStore.open_group( 801 filename_or_obj, 802 group=group, ~/Library/Caches/pypoetry/virtualenvs/-x204KUJE-py3.9/lib/python3.9/site-packages/xarray/backends/zarr.py in open_group(cls, store, mode, synchronizer, group, consolidated, consolidate_on_close, chunk_store, storage_options, append_dim, write_region, safe_chunks, stacklevel) 363 stacklevel=stacklevel, 364 ) --> 365 zarr_group = zarr.open_group(store, **open_kwargs) 366 elif consolidated: 367 # TODO: an option to pass the metadata_key keyword ~/Library/Caches/pypoetry/virtualenvs/-x204KUJE-py3.9/lib/python3.9/site-packages/zarr/hierarchy.py in open_group(store, mode, cache_attrs, synchronizer, path, chunk_store, storage_options) 1180 if contains_array(store, path=path): 1181 raise ContainsArrayError(path) -> 1182 raise GroupNotFoundError(path) 1183 1184 elif mode == 'w': GroupNotFoundError: group not found at path '' ``` ### Anything else we need to know? _No response_ ### Environment INSTALLED VERSIONS ------------------ commit: None python: 3.9.12 (main, Mar 26 2022, 15:44:31) [Clang 13.1.6 (clang-1316.0.21.2)] python-bits: 64 OS: Darwin OS-release: 21.3.0 machine: arm64 processor: arm byteorder: little LC_ALL: en_US.UTF-8 LANG: None LOCALE: ('en_US', 'UTF-8') libhdf5: None libnetcdf: None xarray: 2022.3.0 pandas: 1.4.1 numpy: 1.22.3 scipy: None netCDF4: None pydap: None h5netcdf: None h5py: None Nio: None zarr: 2.11.1 cftime: None nc_time_axis: None PseudoNetCDF: None rasterio: None cfgrib: None iris: None bottleneck: None dask: 2021.12.0 distributed: 2021.12.0 matplotlib: None cartopy: None seaborn: None numbagg: None fsspec: 2021.11.1 cupy: None pint: None sparse: None setuptools: 60.9.3 pip: 21.3.1 conda: None pytest: 6.2.5 IPython: 7.32.0 sphinx: None","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6484/reactions"", ""total_count"": 4, ""+1"": 4, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 1221395426,PR_kwDOAMm_X843GAxX,6544,"Attempt to improve CI caching, v2",5635139,closed,0,,,2,2022-04-29T18:40:31Z,2022-06-10T14:36:12Z,2022-06-10T11:33:00Z,MEMBER,,1,pydata/xarray/pulls/6544,Reverts pydata/xarray#6543 as discussed.,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6544/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1218276081,PR_kwDOAMm_X8427ENH,6536,Remove duplicate tests,5635139,closed,0,,,2,2022-04-28T06:43:18Z,2022-04-29T17:49:06Z,2022-04-29T17:47:04Z,MEMBER,,0,pydata/xarray/pulls/6536,"Merge this in a few days when we know nothing is missing ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6536/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1218065176,PR_kwDOAMm_X8426XPm,6532,Restrict annotations to a single run in GHA,5635139,closed,0,,,2,2022-04-28T01:30:51Z,2022-04-28T06:38:10Z,2022-04-28T03:17:22Z,MEMBER,,0,pydata/xarray/pulls/6532,"Currently we get a lot of duplicates: ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6532/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1200356907,I_kwDOAMm_X85Hi_4r,6473,RTD concurrency limit,5635139,closed,0,,,2,2022-04-11T18:14:05Z,2022-04-19T06:29:24Z,2022-04-19T06:29:24Z,MEMBER,,,,"### What is your issue? From https://github.com/pydata/xarray/pull/6472, and some PRs this weekend: Is anyone familiar with what's going on with RTD? Did our concurrency limit drop? Are there alternatives (e.g. running the tests on GHA even if the actual docs get built on RTD?). If we have to pay RTD for a subscription for a bit until we make changes then we could do that (I'm happy to given my recently poor contribution track-record!)","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6473/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 1207211171,I_kwDOAMm_X85H9JSj,6499,Added `automerge`,5635139,closed,0,,,2,2022-04-18T16:24:35Z,2022-04-18T18:21:39Z,2022-04-18T16:24:41Z,MEMBER,,,,"### What is your issue? @pydata/xarray Because our pipeline takes a while, it can be helpful to have an option to ""merge when tests pass"" — I've now set that up. So you can click here and it'll do just that. Someone annoyingly / confusingly, the ""required checks"" need to be specified manually, in https://github.com/pydata/xarray/settings/branch_protection_rules/2465574 — there's no option for just ""all checks"". So if we change the checks — e.g. add Python 3.11 — that list needs to be updated. If we remove a check from the our CI and don't update the list, it won't be possible to merge the PR without clicking the red ""Admin Override"" box — so we should keep it up to date. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6499/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 1207198806,PR_kwDOAMm_X842XpSv,6498,Restrict stalebot on projects & milestones,5635139,closed,0,,,2,2022-04-18T16:11:10Z,2022-04-18T16:25:08Z,2022-04-18T16:11:12Z,MEMBER,,0,pydata/xarray/pulls/6498,"Closes #6497 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6498/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1200531581,PR_kwDOAMm_X842B792,6474,Fix `Number` import,5635139,closed,0,,,2,2022-04-11T21:04:47Z,2022-04-11T22:18:31Z,2022-04-11T21:07:51Z,MEMBER,,0,pydata/xarray/pulls/6474,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6474/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1098504712,PR_kwDOAMm_X84ww9To,6152,Add pyupgrade onto pre-commit,5635139,closed,0,,,2,2022-01-10T23:52:30Z,2022-01-19T20:40:16Z,2022-01-19T20:39:39Z,MEMBER,,0,pydata/xarray/pulls/6152," - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` This auto-fixes problems, so the bar to add it on is low...","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6152/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1076340035,PR_kwDOAMm_X84vp0L8,6060,Add release notes for 0.20.2,5635139,closed,0,,,2,2021-12-10T02:03:24Z,2021-12-10T02:58:58Z,2021-12-10T02:04:29Z,MEMBER,,0,pydata/xarray/pulls/6060," ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6060/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 976210502,MDExOlB1bGxSZXF1ZXN0NzE3MjAxNTUz,5728,Type annotate tests,5635139,closed,0,,,2,2021-08-21T19:56:06Z,2021-08-22T04:00:14Z,2021-08-22T03:32:22Z,MEMBER,,0,pydata/xarray/pulls/5728," - [x] Passes `pre-commit run --all-files` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` Following on from https://github.com/pydata/xarray/pull/5690 & https://github.com/pydata/xarray/pull/5694, this type annotates most test files; though probably not most tests — I haven't done the huge files. They require between zero and a dozen fixes, and just ignoring assignment ignores some but not all the errors (I didn't end up using it much). It also does useful things — fixes a bunch more annotations!","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5728/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 974282338,MDExOlB1bGxSZXF1ZXN0NzE1NjEwMDE3,5714,Whatsnew for float-to-top,5635139,closed,0,,,2,2021-08-19T05:21:00Z,2021-08-19T17:26:14Z,2021-08-19T17:26:11Z,MEMBER,,0,pydata/xarray/pulls/5714," ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5714/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 930516190,MDExOlB1bGxSZXF1ZXN0Njc4MTkyMTUz,5537,Fix junit test results,5635139,closed,0,,,2,2021-06-25T21:32:02Z,2021-06-25T22:51:02Z,2021-06-25T22:21:41Z,MEMBER,,0,pydata/xarray/pulls/5537," - [x] Passes `pre-commit run --all-files` (may require some iteration)","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5537/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 907746039,MDExOlB1bGxSZXF1ZXN0NjU4NTQzMjYx,5412,Add junit test results to CI,5635139,closed,0,,,2,2021-05-31T22:52:11Z,2021-06-03T03:46:00Z,2021-06-03T03:18:28Z,MEMBER,,0,pydata/xarray/pulls/5412," - [x] Passes `pre-commit run --all-files` I'm not sure this is the best approach; potentially the comment this app adds is too noisy: https://github.com/marketplace/actions/publish-unit-test-results. But it would be good to get an idea of the test results from the PR page and to understand where the test suite spends its time","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5412/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 907723038,MDExOlB1bGxSZXF1ZXN0NjU4NTI0NTM4,5410,Promote backend test fixture to conftest,5635139,closed,0,,,2,2021-05-31T21:28:39Z,2021-06-02T16:17:02Z,2021-06-02T16:16:59Z,MEMBER,,0,pydata/xarray/pulls/5410,"Also adds an example of parameterizing a test in dataset.py - [x] Passes `pre-commit run --all-files` This uses the backend fixture (though not the `dataset` fixture, like https://github.com/pydata/xarray/pull/5350/files did)","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5410/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 897112103,MDExOlB1bGxSZXF1ZXN0NjQ5MTQ4MDkx,5353,Use dict in docs Dataset construction,5635139,closed,0,,,2,2021-05-20T16:48:07Z,2021-05-21T22:37:28Z,2021-05-21T22:37:25Z,MEMBER,,0,pydata/xarray/pulls/5353," - [x] Passes `pre-commit run --all-files` As discussed in other issues — I find this way significantly easier to read, particularly when we're passing tuples of tuples as part of the construction. I did these manually but can write something to do it more broadly if people agree.","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5353/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 895918276,MDU6SXNzdWU4OTU5MTgyNzY=,5348,v0.18.2,5635139,closed,0,,,2,2021-05-19T21:21:18Z,2021-05-20T01:51:12Z,2021-05-19T21:35:47Z,MEMBER,,,,"I'm about to release this as v0.18.2: https://github.com/pydata/xarray/compare/v0.18.1...max-sixty:release-0.18.2?expand=1 given https://github.com/pydata/xarray/issues/5346 Let me know any thoughts @pydata/xarray , thanks","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/5348/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 728893769,MDU6SXNzdWU3Mjg4OTM3Njk=,4535,Support operations with pandas Offset objects,5635139,closed,0,,,2,2020-10-24T22:49:57Z,2021-03-06T23:02:01Z,2021-03-06T23:02:01Z,MEMBER,,,," **Is your feature request related to a problem? Please describe.** Currently xarray objects containting datetimes don't operate with pandas' offset objects: ```python times = pd.date_range(""2000-01-01"", freq=""6H"", periods=10) ds = xr.Dataset( { ""foo"": ([""time"", ""x"", ""y""], np.random.randn(10, 5, 3)), ""bar"": (""time"", np.random.randn(10), {""meta"": ""data""}), ""time"": times, } ) ds.attrs[""dsmeta""] = ""dsdata"" ds.resample(time=""24H"").mean(""time"").time + to_offset(""8H"") ``` raises: ``` --------------------------------------------------------------------------- TypeError Traceback (most recent call last) in ----> 1 ds.resample(time=""24H"").mean(""time"").time + to_offset(""8H"") /usr/local/lib/python3.8/site-packages/xarray/core/dataarray.py in func(self, other) 2763 2764 variable = ( -> 2765 f(self.variable, other_variable) 2766 if not reflexive 2767 else f(other_variable, self.variable) /usr/local/lib/python3.8/site-packages/xarray/core/variable.py in func(self, other) 2128 with np.errstate(all=""ignore""): 2129 new_data = ( -> 2130 f(self_data, other_data) 2131 if not reflexive 2132 else f(other_data, self_data) TypeError: unsupported operand type(s) for +: 'numpy.ndarray' and 'pandas._libs.tslibs.offsets.Hour' ``` This is an issue because pandas resampling has deprecated `loffset` — from our test suite: ``` xarray/tests/test_dataset.py::TestDataset::test_resample_loffset /Users/maximilian/workspace/xarray/xarray/tests/test_dataset.py:3844: FutureWarning: 'loffset' in .resample() and in Grouper() is deprecated. >>> df.resample(freq=""3s"", loffset=""8H"") becomes: >>> from pandas.tseries.frequencies import to_offset >>> df = df.resample(freq=""3s"").mean() >>> df.index = df.index.to_timestamp() + to_offset(""8H"") ds.bar.to_series().resample(""24H"", loffset=""-12H"").mean() ``` ...and so we'll need to support something like this in order to maintain existing behavior. **Describe the solution you'd like** I'm not completely sure; I think probably supporting the operations between xarray objects containing datetime objects and pandas' offset objects. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4535/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 817091683,MDExOlB1bGxSZXF1ZXN0NTgwNjQyNzYw,4964,Some refinements to How To Release,5635139,closed,0,,,2,2021-02-26T06:47:17Z,2021-02-26T21:53:28Z,2021-02-26T19:11:43Z,MEMBER,,0,pydata/xarray/pulls/4964,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4964/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 572995385,MDU6SXNzdWU1NzI5OTUzODU=,3811,Don't warn on empty reductions,5635139,closed,0,,,2,2020-02-28T20:45:38Z,2021-02-21T23:05:46Z,2021-02-21T23:05:46Z,MEMBER,,,," Numpy warns when computing over an all-NaN slice. We handle that case reasonably and so should handle and discard the warning. #### MCVE Code Sample ```python In [1]: import xarray as xr In [2]: import numpy as np In [3]: da = xr.DataArray(np.asarray([np.nan]*3)) In [4]: da Out[4]: array([nan, nan, nan]) Dimensions without coordinates: dim_0 In [6]: da.mean() [...]/python3.6/site-packages/xarray/core/nanops.py:142: RuntimeWarning: Mean of empty slice return np.nanmean(a, axis=axis, dtype=dtype) Out[6]: array(nan) ``` #### Expected Output No warning #### Problem Description Somewhat discussed in https://github.com/pydata/xarray/issues/1164, and https://github.com/pydata/xarray/issues/1652, but starting a separate issue as it's more important than just noise in the test suite, and not covered by the existing work on comparisons & arithmetic #### Output of ``xr.show_versions()``
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3811/reactions"", ""total_count"": 2, ""+1"": 2, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 684078209,MDExOlB1bGxSZXF1ZXN0NDcyMDQ3Mzk0,4369,Silencing numpy warnings,5635139,closed,0,,,2,2020-08-22T22:31:11Z,2021-02-21T23:05:00Z,2020-09-02T22:26:32Z,MEMBER,,0,pydata/xarray/pulls/4369," - [x] Closes #3811 - [x] Tests added - [x] Passes `isort . && black . && mypy . && flake8` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` Is this the right approach? Or should we be using `np.errstate` machinery? ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4369/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 777580305,MDExOlB1bGxSZXF1ZXN0NTQ3ODM3MTU1,4752,Replace bare assert with assert_identical,5635139,closed,0,,,2,2021-01-03T05:59:05Z,2021-01-05T04:18:33Z,2021-01-04T02:13:05Z,MEMBER,,0,pydata/xarray/pulls/4752," - [x] closes #3908 - [x] Passes `isort . && black . && mypy . && flake8` IIRC `assert_identical` shows nice pytest error messages. This was a quick regex but did a quick check that it looked reasonable.","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4752/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 777588292,MDExOlB1bGxSZXF1ZXN0NTQ3ODQyOTEy,4754,Write black diff on errors,5635139,closed,0,,,2,2021-01-03T07:17:45Z,2021-01-03T20:57:22Z,2021-01-03T20:57:19Z,MEMBER,,0,pydata/xarray/pulls/4754," - [x] Passes `isort . && black . && mypy . && flake8` - [ ] User visible changes (including notable bug fixes) are documented in `whats-new.rst` Inspired by @Illviljan in https://github.com/pydata/xarray/pull/4750 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4754/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 298620060,MDExOlB1bGxSZXF1ZXN0MTcwMjEyMDc3,1927,Some backend tests require dask,5635139,closed,0,,,2,2018-02-20T14:46:30Z,2020-11-08T21:08:43Z,2020-11-08T19:40:35Z,MEMBER,,0,pydata/xarray/pulls/1927," - [x] Closes https://github.com/pydata/xarray/issues/1923 (remove if there is no corresponding issue, which should only be the case for minor changes) - [x] Tests passed (for all non-documentation changes) LMK if these are the right ones - I basically added the decorator to anything that was failing. Though not sure we need to be 100% accurate here - worst case we could skip the file - either people are writing backend code and have dask installed, or they're not...","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/1927/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 576692586,MDU6SXNzdWU1NzY2OTI1ODY=,3837,Should we run tests on docstrings?,5635139,closed,0,,,2,2020-03-06T04:35:16Z,2020-09-11T12:34:34Z,2020-09-11T12:34:34Z,MEMBER,,,,"Currently almost none of the docstrings pass running `pytest --doctest-modules xarray/core`, though mostly for easy reasons. Should we run these in CI? I've recently started using docstring tests in another project, and they've work pretty well. CC @keewis ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3837/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 688638584,MDExOlB1bGxSZXF1ZXN0NDc1ODUyMjQ5,4388,Pin pre-commit versions,5635139,closed,0,,,2,2020-08-30T02:19:55Z,2020-08-31T16:31:54Z,2020-08-31T16:31:49Z,MEMBER,,0,pydata/xarray/pulls/4388," - [x] Passes `isort . && black . && mypy . && flake8` - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` I had some issues with the version changing — this approach seems more explicit and less likely to cause hard-to-debug issues","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4388/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 665834531,MDExOlB1bGxSZXF1ZXN0NDU2Nzg2OTQz,4273,Add requires_scipy to least_squares test,5635139,closed,0,,,2,2020-07-26T18:23:34Z,2020-08-16T18:00:33Z,2020-08-16T18:00:29Z,MEMBER,,0,pydata/xarray/pulls/4273," - [x] Passes `isort . && black . && mypy . && flake8` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4273/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 655282530,MDExOlB1bGxSZXF1ZXN0NDQ3ODE5MjIx,4217,"Add release summary, some touch-ups",5635139,closed,0,,,2,2020-07-11T21:28:51Z,2020-07-26T19:17:02Z,2020-07-23T15:26:40Z,MEMBER,,0,pydata/xarray/pulls/4217," This PR: - Proposes adding a Release Summary with a PR. This is something that maybe more people read than anything else we send, and yet it's the least reviewed text of anything I write; and I'm making guesses on what's important. - Proposes pasting the release summary into the GH Release page; to the extent people follow xarray by following our releases, it's nice to have something there. - Some touch-ups ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/4217/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 132579684,MDU6SXNzdWUxMzI1Nzk2ODQ=,755,count docstring mistakenly includes skipna,5635139,closed,0,,,2,2016-02-10T00:49:34Z,2020-07-24T16:09:25Z,2020-07-24T16:09:25Z,MEMBER,,,,"Is this a mistake or am I missing something? http://xray.readthedocs.org/en/stable/generated/xarray.DataArray.count.html?highlight=count#xarray.DataArray.count > skipna : bool, optional > If True, skip missing values (as marked by NaN). By default, only skips missing values for float dtypes; other dtypes either do not have a sentinel missing value (int) or skipna=True has not been implemented (object, datetime64 or timedelta64). ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/755/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 586450690,MDU6SXNzdWU1ODY0NTA2OTA=,3881,Flaky test: test_uamiv_format_write,5635139,closed,0,,,2,2020-03-23T19:13:34Z,2020-03-23T20:32:15Z,2020-03-23T20:32:15Z,MEMBER,,,,"I've seen a couple of failures recently on this test. Flaky tests are really annoying and would be great to fix or if impossible, remove it. Does anyone have any ideas what's causing this? ``` ________________ TestPseudoNetCDFFormat.test_uamiv_format_write ________________ self = def test_uamiv_format_write(self): fmtkw = {""format"": ""uamiv""} expected = open_example_dataset( ""example.uamiv"", engine=""pseudonetcdf"", backend_kwargs=fmtkw ) with self.roundtrip( expected, save_kwargs=fmtkw, open_kwargs={""backend_kwargs"": fmtkw}, allow_cleanup_failure=True, ) as actual: > assert_identical(expected, actual) E AssertionError: Left and right Dataset objects are not identical E E E E Differing attributes: E L WTIME: 190117 E R WTIME: 190118 xarray/tests/test_backends.py:3563: AssertionError ```","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3881/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 571802536,MDExOlB1bGxSZXF1ZXN0MzgwNjIyMzgy,3802,Raise on multiple string args to groupby,5635139,closed,0,,,2,2020-02-27T03:50:03Z,2020-02-29T20:48:07Z,2020-02-29T20:47:12Z,MEMBER,,0,pydata/xarray/pulls/3802," - [x] Tests added - [x] Passes `isort -rc . && black . && mypy . && flake8` - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API From the comment: While we don't generally check the type of every arg, passing multiple dimensions as multiple arguments is common enough, and the consequences hidden enough (strings evaluate as true) to warrant checking here. A future version could make squeeze kwarg only, but would face backward-compat issues.","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3802/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 551727037,MDExOlB1bGxSZXF1ZXN0MzY0Mzk2MTk3,3707,remove PR pre-black instructions,5635139,closed,0,,,2,2020-01-18T06:01:15Z,2020-01-29T21:39:10Z,2020-01-29T17:21:31Z,MEMBER,,0,pydata/xarray/pulls/3707,I don't think these should be needed any longer,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3707/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 512873086,MDExOlB1bGxSZXF1ZXN0MzMyNzkyOTM2,3451,Remove deprecated behavior from dataset.drop docstring,5635139,closed,0,,,2,2019-10-26T19:06:16Z,2019-10-29T15:03:53Z,2019-10-29T14:49:17Z,MEMBER,,0,pydata/xarray/pulls/3451,"I'm less up to speed on this behavior, but IIUC this part of the docstring refers to [deprecated behavior](https://github.com/pydata/xarray/compare/master...max-sixty:drop-docstring?expand=1#diff-921db548d18a549f6381818ed08298c9R3586-R3592)—is that correct or am I missing something? xref https://github.com/pydata/xarray/issues/3266 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3451/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 508791645,MDU6SXNzdWU1MDg3OTE2NDU=,3414,Allow ellipsis in place of xr.ALL_DIMS?,5635139,closed,0,,,2,2019-10-18T00:44:48Z,2019-10-28T21:14:42Z,2019-10-28T21:14:42Z,MEMBER,,,,"@crusaderky had a [good idea](https://github.com/pydata/xarray/issues/1081#issuecomment-540477534) to allow ellipsis (`...`) as a placeholder for 'other dims' in transpose. What about using it as a placeholder for `xr.ALL_DIMS` in groupby etc operations? I find it nicer than custom sentinel values, and I think should be fairly low-confusion—thoughts?","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3414/reactions"", ""total_count"": 2, ""+1"": 2, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 509490043,MDExOlB1bGxSZXF1ZXN0MzMwMDQ0MDY2,3419,Python3.6 idioms,5635139,closed,0,,,2,2019-10-19T18:15:48Z,2019-10-21T01:32:07Z,2019-10-21T00:16:58Z,MEMBER,,0,pydata/xarray/pulls/3419," - [x] Passes `black . && mypy . && flake8` - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API Use python 3.6+ idioms; most changes are f-strings Mostly from `pyupgrade --py36-plus **/*.py`","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3419/reactions"", ""total_count"": 1, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 1, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 490746942,MDExOlB1bGxSZXF1ZXN0MzE1MjY5NjIw,3292,Remove some deprecations,5635139,closed,0,,,2,2019-09-08T12:14:31Z,2019-09-08T22:58:28Z,2019-09-08T22:58:16Z,MEMBER,,0,pydata/xarray/pulls/3292," - [x] Closes some of #3280 - [x] Passes `black . && mypy . && flake8` - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3292/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 478715330,MDExOlB1bGxSZXF1ZXN0MzA1NzcyMTc4,3195,Update black instructions,5635139,closed,0,,,2,2019-08-08T22:28:59Z,2019-08-09T00:27:28Z,2019-08-09T00:27:09Z,MEMBER,,0,pydata/xarray/pulls/3195,"This needed updating with the relevant commit post-black change I also added a line to apply the patch of manual changes we made on top of the black changes. It makes the list of steps a bit burdensome. But I've tested them a couple of times and, where people have lots of code changes, it's still going to be much easier than resolving manually. I generally wouldn't want to suggest people curl data from the internet (even if we trust the individual). I think it's probably OK in this instance: the address contains a hash of the contents, and it's only being fed into `git apply -`, not executed. But lmk if that's still a security concern. I'll update the issue I opened on `black` with the above issue; we should have done one commit with only the `black` changes, and then another with any manual changes.","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3195/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 467015096,MDU6SXNzdWU0NjcwMTUwOTY=,3098,Codecov bot comments?,5635139,closed,0,,,2,2019-07-11T17:21:46Z,2019-07-18T01:12:38Z,2019-07-18T01:12:38Z,MEMBER,,,,"ref https://github.com/pydata/xarray/pull/3090#issuecomment-510323490 Do we want the bot commenting on the PR, at least while the early checks are wrong? People can always click on `Details` in the Codecov check (e.g. https://codecov.io/gh/pydata/xarray/compare/8f0d9e5c9909c93a90306ed7cb5a80c1c2e1c97d...ab6960f623017afdc99c34bcbb69b402aea3f7d4/diff) to see a full report. Happy to PR to disable, lmk","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3098/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 423511704,MDU6SXNzdWU0MjM1MTE3MDQ=,2833,Integrate has undefined name 'dim',5635139,closed,0,,,2,2019-03-20T23:09:19Z,2019-07-05T07:10:37Z,2019-07-05T07:10:37Z,MEMBER,,,,"https://github.com/pydata/xarray/blob/master/xarray/core/dataset.py#L4085 Should that be called `coord` or `dim`? Currently there's a variable that's undefined: ```python raise ValueError('Coordinate {} does not exist.'.format(dim)) ``` I would have made a quick fix but not sure the correct name","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2833/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 448340294,MDU6SXNzdWU0NDgzNDAyOTQ=,2990,Some minor errors in repo / flake8,5635139,closed,0,,,2,2019-05-24T20:24:04Z,2019-06-24T18:18:25Z,2019-06-24T18:18:24Z,MEMBER,,,,"Currently we use pycodestyle: https://github.com/pydata/xarray/blob/ccd0b047ea8ca89c68ab6cfa942557e676e7d402/.travis.yml#L63 I think we used to use flake8. I can't find / remember the reason we moved to pycodestyle. master has some non-trivial issues that flake would catch, including a test overwritting another and undefined variables: ``` flake8 xarray --ignore=I,W503,W504,F401,E265,E402 xarray/core/options.py:62:8: F632 use ==/!= to compare str, bytes, and int literals xarray/core/dataset.py:4148:69: F821 undefined name 'dim' xarray/backends/netCDF4_.py:177:12: F632 use ==/!= to compare str, bytes, and int literals xarray/tests/test_dataarray.py:1264:9: F841 local variable 'foo' is assigned to but never used xarray/tests/test_dataarray.py:1270:18: F821 undefined name 'x' xarray/tests/test_dataarray.py:1301:5: F811 redefinition of unused 'test_reindex_fill_value' from line 1262 xarray/tests/test_dataarray.py:1647:16: F632 use ==/!= to compare str, bytes, and int literals xarray/tests/test_dataarray.py:1648:16: F632 use ==/!= to compare str, bytes, and int literals xarray/tests/test_dataset.py:4759:8: F632 use ==/!= to compare str, bytes, and int literals xarray/tests/test_dataset.py:4761:10: F632 use ==/!= to compare str, bytes, and int literals xarray/tests/test_distributed.py:62:9: F811 redefinition of unused 'loop' from line 12 xarray/tests/test_distributed.py:92:9: F811 redefinition of unused 'loop' from line 12 xarray/tests/test_distributed.py:117:49: F811 redefinition of unused 'loop' from line 12 xarray/tests/test_distributed.py:141:53: F811 redefinition of unused 'loop' from line 12 xarray/tests/test_distributed.py:152:51: F811 redefinition of unused 'loop' from line 12 ``` Happy to fix these in a PR. For ensuring these don't crop up again, any objection to flake8?","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2990/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 455275723,MDExOlB1bGxSZXF1ZXN0Mjg3NTU4MTE3,3019,Update issue templates,5635139,closed,0,,,2,2019-06-12T15:19:04Z,2019-06-15T03:35:23Z,2019-06-15T03:35:17Z,MEMBER,,0,pydata/xarray/pulls/3019,"This: - Updates to the [newer GitHub format](https://help.github.com/en/articles/about-issue-and-pull-request-templates) - Strengthens the language around MCVE. It doesn't say people *have* to, but makes it less of a suggestion - Only contains 'Bug Report'. Should we have others? I don't immediately see how they'd be different (I realize because I did this from the GH website, it created from this repo rather than my own fork. That's a mistake.)","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3019/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 454313971,MDExOlB1bGxSZXF1ZXN0Mjg2NzkwNDg5,3011,"Pytest capture uses match, not message",5635139,closed,0,,,2,2019-06-10T18:46:43Z,2019-06-11T15:01:23Z,2019-06-11T15:01:19Z,MEMBER,,0,pydata/xarray/pulls/3011," - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API `message` was always going being ignored, and with the newer pytest version raises a warning that an unknown kwarg is supplied","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/3011/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 393807679,MDExOlB1bGxSZXF1ZXN0MjQwNzE4NDAx,2629,Flake fixed,5635139,closed,0,,,2,2018-12-24T04:23:47Z,2019-06-10T19:09:44Z,2018-12-25T01:21:50Z,MEMBER,,0,pydata/xarray/pulls/2629,Towards https://github.com/pydata/xarray/issues/2627,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2629/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 365526259,MDU6SXNzdWUzNjU1MjYyNTk=,2451,"Shift changes non-float arrays to object, even for shift=0",5635139,closed,0,,,2,2018-10-01T15:50:38Z,2019-03-04T16:31:57Z,2019-03-04T16:31:57Z,MEMBER,,,," ```python In [15]: xr.DataArray(np.random.randint(2,size=(100,100)).astype(bool)).shift(dim_0=0) Out[15]: array([[False, True, True, ..., True, True, False], [False, True, False, ..., False, True, True], [False, True, False, ..., False, True, False], ..., [False, True, False, ..., False, True, True], [True, False, True, ..., False, False, False], [False, True, True, ..., True, True, False]], dtype=object) # <-- could be bool Dimensions without coordinates: dim_0, dim_1 ``` #### Problem description This causes memory bloat #### Expected Output As above with `dtype=bool` #### Output of ``xr.show_versions()``
In [16]: xr.show_versions() INSTALLED VERSIONS ------------------ commit: f9c4169150286fa1aac020ab965380ed21fe1148 python: 2.7.15.final.0 python-bits: 64 OS: Darwin OS-release: 18.0.0 machine: x86_64 processor: i386 byteorder: little LC_ALL: None LANG: en_US.UTF-8 LOCALE: None.None xarray: 0.10.9+12.gf9c41691 pandas: 0.22.0 numpy: 1.14.2 scipy: 1.0.0 netCDF4: None h5netcdf: None h5py: None Nio: None zarr: None cftime: None PseudonetCDF: None rasterio: None iris: None bottleneck: 1.2.1 cyordereddict: None dask: None distributed: None matplotlib: 2.1.2 cartopy: None seaborn: 0.8.1 setuptools: 39.2.0 pip: 18.0 conda: None pytest: 3.6.3 IPython: 5.8.0 sphinx: None
The `shift=0` is mainly theoretical. To avoid casting to `object` in practical scenarios, we could add a `fill_value` argument (e.g. `fill_value=False`) and fill with that rather than `NaN` CC @Ivocrnkovic","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2451/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 402783087,MDExOlB1bGxSZXF1ZXN0MjQ3Mzg4NzMx,2703,deprecate compat & encoding,5635139,closed,0,,,2,2019-01-24T16:14:21Z,2019-02-01T03:16:13Z,2019-02-01T03:16:10Z,MEMBER,,0,pydata/xarray/pulls/2703,"Still need to adjust the tests - [x] Closes https://github.com/pydata/xarray/issues/1188 - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2703/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 399340074,MDExOlB1bGxSZXF1ZXN0MjQ0NzkwMjQ5,2677,Small typo,5635139,closed,0,,,2,2019-01-15T13:15:31Z,2019-01-15T15:40:19Z,2019-01-15T13:29:54Z,MEMBER,,0,pydata/xarray/pulls/2677,@fujiisoup is this a small typo?,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2677/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 367493434,MDExOlB1bGxSZXF1ZXN0MjIwOTA5OTkx,2470,fill_value in shift,5635139,closed,0,,,2,2018-10-06T20:33:29Z,2018-12-28T01:07:17Z,2018-12-27T22:58:30Z,MEMBER,,0,pydata/xarray/pulls/2470," - [x] Closes #https://github.com/pydata/xarray/issues/2451 - [x] Tests added - [x] Tests passed - [x] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API (remove if this change should not be visible to users, e.g., if it is an internal clean-up, or if this is part of a larger project that will be documented later) Should we be more defensive around which fill_values can be passed? Currently, if the array and float values have incompatible dtypes, we don't preemtively warn or cast, apart from the case of `np.nan`, which then uses the default filler","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2470/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 367424540,MDU6SXNzdWUzNjc0MjQ1NDA=,2468,LooseVersion check on xarray in tests seems unstable,5635139,closed,0,,,2,2018-10-06T05:07:47Z,2018-10-10T13:47:23Z,2018-10-10T13:47:23Z,MEMBER,,,,"There's an elegant check against the xarray version to decide whether to run a test, so the test 'comes online' at 0.12: https://github.com/pydata/xarray/blob/638b251c622359b665208276a2cb23b0fbc5141b/xarray/tests/test_dataarray.py#L2029 But unfortunately, this seems very unstable in tests, because without a release, `LooseVersion` can't interpret the strings correctly (e.g. `LooseVersion ('0.10.9+29.g33d9391a')`) - A lot of the time it raises: https://travis-ci.org/max-sixty/xarray/jobs/437913418#L1036 - Occasionally it runs the test, failing to return that we're prior to 0.12: https://travis-ci.org/max-sixty/xarray/jobs/437914645#L5036 Here's the bug in the python issue tracker: https://bugs.python.org/issue14894 Is that synopsis correct? Should we attempt to take another approach? I'll disable it in my current check so tests can pass, but lmk thoughts.","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2468/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 367486218,MDExOlB1bGxSZXF1ZXN0MjIwOTA1MTkw,2469,isort,5635139,closed,0,,,2,2018-10-06T19:05:54Z,2018-10-08T01:38:00Z,2018-10-07T22:39:14Z,MEMBER,,0,pydata/xarray/pulls/2469,Do we want to keep `isort` up to date? I think it's a balance between consistency vs. overhead,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2469/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 271131362,MDU6SXNzdWUyNzExMzEzNjI=,1691,Coordinates passed as sets raise with a bad error message,5635139,closed,0,,,2,2017-11-03T22:06:28Z,2018-08-08T15:56:57Z,2018-08-08T15:56:57Z,MEMBER,,,,"If a coordinate is passed as a `set`, xr raises with a bad error message: ```python In [12]: xr.Dataset(dict(date=[1,2,3], sec={4})) --------------------------------------------------------------------------- MissingDimensionsError Traceback (most recent call last) in () ----> 1 xr.Dataset(dict(date=[1,2,3], sec={4})) /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/xarray/core/dataset.py in __init__(self, data_vars, coords, attrs, compat) 360 coords = {} 361 if data_vars is not None or coords is not None: --> 362 self._set_init_vars_and_dims(data_vars, coords, compat) 363 if attrs is not None: 364 self.attrs = attrs /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/xarray/core/dataset.py in _set_init_vars_and_dims(self, data_vars, coords, compat) 378 379 variables, coord_names, dims = merge_data_and_coords( --> 380 data_vars, coords, compat=compat) 381 382 self._variables = variables /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/xarray/core/merge.py in merge_data_and_coords(data, coords, compat, join) 363 objs = [data, coords] 364 explicit_coords = coords.keys() --> 365 return merge_core(objs, compat, join, explicit_coords=explicit_coords) 366 367 /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/xarray/core/merge.py in merge_core(objs, compat, join, priority_arg, explicit_coords, indexes) 425 coerced = coerce_pandas_values(objs) 426 aligned = deep_align(coerced, join=join, copy=False, indexes=indexes) --> 427 expanded = expand_variable_dicts(aligned) 428 429 coord_names, noncoord_names = determine_coords(coerced) /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/xarray/core/merge.py in expand_variable_dicts(list_of_variable_dicts) 211 var_dicts.append(coords) 212 --> 213 var = as_variable(var, name=name) 214 sanitized_vars[name] = var 215 /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/xarray/core/variable.py in as_variable(obj, name) 103 'cannot set variable %r with %r-dimensional data ' 104 'without explicit dimension names. Pass a tuple of ' --> 105 '(dims, data) instead.' % (name, data.ndim)) 106 obj = Variable(name, obj, fastpath=True) 107 else: MissingDimensionsError: cannot set variable 'sec' with 0-dimensional data without explicit dimension names. Pass a tuple of (dims, data) instead. ``` But OK if a list: ```python In [13]: xr.Dataset(dict(date=[1,2,3], sec=[4])) Out[13]: Dimensions: (date: 3, sec: 1) Coordinates: * date (date) int64 1 2 3 * sec (sec) int64 4 Data variables: *empty* ``` #### Problem description There may be reasons to not allow sets: they're not ordered, so unless you're constructing your data using the `coords`, you'll get random results The error message should be better though. And I would vote to handle sets the same as lists #### Expected Output #### Output of ``xr.show_versions()``
INSTALLED VERSIONS ------------------ commit: None python: 3.6.1.final.0 python-bits: 64 OS: Darwin OS-release: 17.0.0 machine: x86_64 processor: i386 byteorder: little LC_ALL: None LANG: en_US.UTF-8 LOCALE: en_US.UTF-8 xarray: 0.10.0rc1-2-gf83361c pandas: 0.21.0 numpy: 1.13.3 scipy: 0.19.1 netCDF4: None h5netcdf: None Nio: None bottleneck: 1.2.1 cyordereddict: None dask: None matplotlib: 2.0.2 cartopy: None seaborn: 0.8.1 setuptools: 36.5.0 pip: 9.0.1 conda: None pytest: 3.2.3 IPython: 6.2.1 sphinx: None
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/1691/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 161991202,MDU6SXNzdWUxNjE5OTEyMDI=,890,BUG: Dataset constructor puts lists in coords rather that data_vars,5635139,closed,0,,,2,2016-06-23T18:28:44Z,2018-07-31T18:28:29Z,2018-07-31T18:28:29Z,MEMBER,,,,"I'd expect `a` to be a data_vars rather than a coord here: ``` python In [9]: xr.Dataset(data_vars={'a': [2,3]}, attrs={'name':'hello'}) Out[9]: Dimensions: (a: 2) Coordinates: * a (a) int64 2 3 Data variables: *empty* Attributes: name: hello ``` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/890/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 211860631,MDU6SXNzdWUyMTE4NjA2MzE=,1294,python 3.6 tests break with bottleneck installed,5635139,closed,0,,,2,2017-03-04T06:35:24Z,2017-12-10T01:52:34Z,2017-12-10T01:52:34Z,MEMBER,,,,"Installing 3.6 environment (from the ci path in xarray): tests pass on master Then installing bottleneck: 3 tests in test_dataarray.py fail on master I can debug further unless anyone has a view","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/1294/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 194243942,MDExOlB1bGxSZXF1ZXN0OTcwNTcwMzI=,1157,PERF: Use len rather than size,5635139,closed,0,,,2,2016-12-08T04:23:24Z,2016-12-09T18:36:50Z,2016-12-09T18:36:50Z,MEMBER,,0,pydata/xarray/pulls/1157,Potential mitigation for https://github.com/pandas-dev/pandas/issues/14822,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/1157/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 125092434,MDU6SXNzdWUxMjUwOTI0MzQ=,708,'to_array' creates a read-only numpy array,5635139,closed,0,,,2,2016-01-06T01:46:12Z,2016-01-06T02:42:32Z,2016-01-06T02:42:32Z,MEMBER,,,,"Is this intended? It's creating some problems downstream with pandas, but maybe that's a pandas issue? Note the `WRITEABLE : False` here: ``` python In [126]: ds=xray.Dataset({'a':xray.DataArray(pd.np.random.rand(5,3))}, coords={'b': xray.DataArray(pd.np.random.rand(5))}) In [127]: ds.to_array('d').b.values.flags Out[127]: C_CONTIGUOUS : True F_CONTIGUOUS : True OWNDATA : False WRITEABLE : False ALIGNED : True UPDATEIFCOPY : False ``` Without the `to_array`, it's fine: ``` python In [128]: ds.b.values.flags Out[128]: C_CONTIGUOUS : True F_CONTIGUOUS : True OWNDATA : True WRITEABLE : True ALIGNED : True UPDATEIFCOPY : False ``` xref https://github.com/pydata/pandas/issues/11502 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/708/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 124176573,MDU6SXNzdWUxMjQxNzY1NzM=,689,Should Dataset enforce some ordering of dims in its variables?,5635139,closed,0,,,2,2015-12-29T07:41:02Z,2015-12-29T21:20:56Z,2015-12-29T21:20:56Z,MEMBER,,,,"I'm not sure on this one. I'm currently having a bunch of issues with this sort of Dataset: (notice the dims are `(d, c)` and `(c, d)` for different variables) ``` python Dimensions: (c: 193, d: 6781) Coordinates: * d (d) object 5218 5219 5220 5221 5222 5223 5224 ... * c (c) object LDS. ... j (c, d) bool False False False False ... Data variables: r (d, c) float64 nan -0.05083 nan ... s (d, c) float64 nan -0.05083 nan ... n (c, d) float64 nan nan nan nan nan ... ``` In my case, this is particularly painful when passing the result of `ds.r.to_pandas()` into a function expecting a DataFrame with a certain orientation when that orientation isn't reliable. Is this a problem generally? If it is, I could imagine a few solutions - enforce ordering, offer a method on a DataSet to align the dims, offer a `kwarg` on `.to_pandas()` to allow specifying the dims-axis mapping, etc ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/689/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 122171841,MDU6SXNzdWUxMjIxNzE4NDE=,679,Is 'name' an xray supported attribute? ,5635139,closed,0,,,2,2015-12-15T01:34:48Z,2015-12-15T03:16:37Z,2015-12-15T03:16:37Z,MEMBER,,,,"If it is, a Dataset constructor should take a list of DataArrays, and use their names as keys? (and anywhere else you need to provide a dict-like mapping with names) If it's not, we potentially shouldn't be using it in the internals. I think it's the first, given it's in the [docs](http://xray.readthedocs.org/en/stable/generated/xray.DataArray.name.html) (although not [throughout](http://xray.readthedocs.org/en/stable/data-structures.html#dataarray) the docs). ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/679/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 115979105,MDU6SXNzdWUxMTU5NzkxMDU=,652,ENH: Apply numpy function to named axes,5635139,closed,0,,,2,2015-11-09T22:11:19Z,2015-11-10T16:18:24Z,2015-11-10T16:18:24Z,MEMBER,,,,"I'm currently transitioning sequences of pandas `Panel`s over to xray `Dataset`s. Part of our process applies a set of functions to Panels; for example: ``` python panel = panel.apply(lambda x: x.rank(ascending=False), axis=(1, 2)) df = np.nanpercentile(panel, q=75, axis=2) ``` One of the benefits of xray is the clarity that comes from named axes. Is there a way of applying a function over named axes? For example: ``` python result = data_array.apply(np.argsort, axis=('Risk', 'Dates')) result = data_array.apply(np.nanpercentile, axis='Dates') ``` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/652/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue