html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue https://github.com/pydata/xarray/pull/7862#issuecomment-1573764660,https://api.github.com/repos/pydata/xarray/issues/7862,1573764660,IC_kwDOAMm_X85dzb40,85085,2023-06-02T13:44:43Z,2023-06-02T13:44:43Z,CONTRIBUTOR,"@kmuehlbauer thanks for adding tests! I'm not sure what the mypy error is either, I'm afraid...","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1720045908 https://github.com/pydata/xarray/pull/7862#issuecomment-1561308333,https://api.github.com/repos/pydata/xarray/issues/7862,1561308333,IC_kwDOAMm_X85dD6yt,85085,2023-05-24T14:51:23Z,2023-05-24T14:51:23Z,CONTRIBUTOR,"> So it looks like the changes here with the fix in my branch will get your issue resolved @tomwhite, right? Yes - thanks! > I'm a bit worried, that this might break other users workflows, if they depend on the current conversion to floating point for some reason. The floating point default is preserved if you do e.g. `xr.Dataset({""a"": np.array([], dtype=object)})`. The change here will only convert to string if there is extra metadata present that says it is a string.","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1720045908 https://github.com/pydata/xarray/pull/7862#issuecomment-1561240314,https://api.github.com/repos/pydata/xarray/issues/7862,1561240314,IC_kwDOAMm_X85dDqL6,85085,2023-05-24T14:12:49Z,2023-05-24T14:12:49Z,CONTRIBUTOR,"> Could you verify the above example, please? The code looks fine, and I get the same result when I run it with this PR. Your fix in https://github.com/kmuehlbauer/xarray/tree/preserve-vlen-string-dtype changes the metadata so it is correctly preserved as `metadata: {'element_type': }`. I feel less qualified to evaluate the impact of the netcdf4 fix. ","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1720045908 https://github.com/pydata/xarray/pull/7862#issuecomment-1561143111,https://api.github.com/repos/pydata/xarray/issues/7862,1561143111,IC_kwDOAMm_X85dDSdH,85085,2023-05-24T13:23:18Z,2023-05-24T13:23:18Z,CONTRIBUTOR,"Thanks for taking a look @kmuehlbauer and for the useful example code. I hadn't considered the netcdf cases, so thanks for pointing those out. > Engine `netcdf4` does not roundtrip here, losing the dtype metadata information. There is special casing for h5netcdf backend, though. Could netcdf4 do the same special-casing as h5netcdf? ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1720045908 https://github.com/pydata/xarray/pull/7019#issuecomment-1554332081,https://api.github.com/repos/pydata/xarray/issues/7019,1554332081,IC_kwDOAMm_X85cpTmx,85085,2023-05-19T10:01:06Z,2023-05-19T10:01:06Z,CONTRIBUTOR,Thanks for all your hard work on this @TomNicholas!,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1368740629 https://github.com/pydata/xarray/issues/7813#issuecomment-1536054499,https://api.github.com/repos/pydata/xarray/issues/7813,1536054499,IC_kwDOAMm_X85bjlTj,85085,2023-05-05T10:30:38Z,2023-05-05T10:30:38Z,CONTRIBUTOR,Ah I understand better now. This makes sense - if `ChunkManager` has a name then the implementation could use that to name tasks.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1694956396 https://github.com/pydata/xarray/issues/7813#issuecomment-1534281206,https://api.github.com/repos/pydata/xarray/issues/7813,1534281206,IC_kwDOAMm_X85bc0X2,85085,2023-05-04T08:22:05Z,2023-05-04T08:22:05Z,CONTRIBUTOR,"If you hover over a node in the SVG representation you'll get a tooltip that shows the call stack and the line number of the top-level user function that invoked the computation. Does that help at all? (That said, I'm open to changing the way it is displayed, or how tasks are named in general.) BTW should this be moved to a cubed issue?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1694956396 https://github.com/pydata/xarray/pull/7424#issuecomment-1516345065,https://api.github.com/repos/pydata/xarray/issues/7424,1516345065,IC_kwDOAMm_X85aYZbp,85085,2023-04-20T13:37:13Z,2023-04-20T13:37:13Z,CONTRIBUTOR,Related issue: https://github.com/data-apis/array-api/issues/621,"{""total_count"": 1, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 1}",,1522810384 https://github.com/pydata/xarray/pull/7019#issuecomment-1477628301,https://api.github.com/repos/pydata/xarray/issues/7019,1477628301,IC_kwDOAMm_X85YEtGN,85085,2023-03-21T10:54:51Z,2023-03-21T10:54:51Z,CONTRIBUTOR,"> I would like to get to the point where you can use xarray with a chunked array **without ever importing dask**. I think this PR gets very close, but that would be tricky to test because cubed depends on dask (so I can't just run the test suite without dask in the environment I just released Cubed 0.6.0 which doesn't have a dependency on Dask, so this should be possible now.","{""total_count"": 1, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 1, ""rocket"": 0, ""eyes"": 0}",,1368740629 https://github.com/pydata/xarray/pull/7424#issuecomment-1471758792,https://api.github.com/repos/pydata/xarray/issues/7424,1471758792,IC_kwDOAMm_X85XuUHI,85085,2023-03-16T11:15:33Z,2023-03-16T11:15:33Z,CONTRIBUTOR,"I was hoping https://github.com/data-apis/array-api-compat might help with this, but I'm not sure it does...","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1522810384 https://github.com/pydata/xarray/pull/7019#issuecomment-1469907455,https://api.github.com/repos/pydata/xarray/issues/7019,1469907455,IC_kwDOAMm_X85XnQH_,85085,2023-03-15T12:21:23Z,2023-03-15T12:21:23Z,CONTRIBUTOR,"> I think it might make sense for me to remove the `CubedManager` class from this PR and instead put that & cubed+xarray tests into another repo. That keeps xarray's changes minimal, doesn't require putting cubed in any xarray CI envs, and hopefully allows us to merge the `ChunkManager` changes here earlier. That sounds like a good plan to me. > > **Places `dask` is still explicitly imported in xarray** > > There are a few remaining places where I haven't generalised to remove specific `import dask` calls either because it won't be imported at runtime unless you ask for it, cubed doesn't implement the equivalent function, that function isn't in the array API standard, or because I'm not sure if the dask concept used generalises to other parallel frameworks. > > * [ ] `open_mfdataset(..., parallel=True)` - there is no `cubed.delayed` to wrap the `open_dataset` calls in, > * [ ] `Dataset.__dask_graph__` and all the other similar dask magic methods > * [ ] `dask_array_ops.rolling` - uses functions from `dask.array.overlap`, > * [ ] `dask_array_ops.least_squares` - uses `dask.array.apply_along_axis` and `dask.array.linalg.lstsq`, > * [ ] `dask_array_ops.push` - uses `dask.array.reductions.cumreduction` This is a useful list! I hope that we could close the gap for some of these over time. > I would like to get to the point where you can use xarray with a chunked array **without ever importing dask**. I think this PR gets very close, but that would be tricky to test because cubed depends on dask (so I can't just run the test suite without dask in the environment) Agreed. I have opened https://github.com/tomwhite/cubed/issues/154 to make it possible to test without a Dask dependency. ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1368740629 https://github.com/pydata/xarray/pull/7019#issuecomment-1463469875,https://api.github.com/repos/pydata/xarray/issues/7019,1463469875,IC_kwDOAMm_X85XOscz,85085,2023-03-10T08:50:10Z,2023-03-10T08:50:10Z,CONTRIBUTOR,"Great work @TomNicholas! I don't have a strong opinion about the tests, but putting them in a new project to keep xarray changes to a minimum is probably a good idea for the moment.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1368740629 https://github.com/pydata/xarray/pull/7387#issuecomment-1373701291,https://api.github.com/repos/pydata/xarray/issues/7387,1373701291,IC_kwDOAMm_X85R4QSr,85085,2023-01-06T14:18:08Z,2023-01-06T14:18:08Z,CONTRIBUTOR,Thanks for the review @Illviljan ,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1502721600 https://github.com/pydata/xarray/issues/7328#issuecomment-1330343446,https://api.github.com/repos/pydata/xarray/issues/7328,1330343446,IC_kwDOAMm_X85PS24W,85085,2022-11-29T09:36:10Z,2022-11-29T09:37:19Z,CONTRIBUTOR,"This behaviour stems from this part of `_infer_dtype` where empty object arrays are converted to float arrays: https://github.com/pydata/xarray/blob/3aa75c8d00a4a2d4acf10d80f76b937cadb666b7/xarray/conventions.py#L156-L157 Is there any reason we couldn't `return strings.create_vlen_dtype(str)` instead?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1466586967 https://github.com/pydata/xarray/issues/7292#issuecomment-1323743039,https://api.github.com/repos/pydata/xarray/issues/7292,1323743039,IC_kwDOAMm_X85O5rc_,85085,2022-11-22T14:12:57Z,2022-11-22T14:12:57Z,CONTRIBUTOR,"You can work around this by specifying either `decode_cf=False` or `mask_and_scale=False`. For example: ```python ds = xarray.open_zarr(""test.zarr"", consolidated=False, decode_cf=False) ds['array'].dtype ``` prints `dtype('int8')`. Does that help?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1451961530 https://github.com/pydata/xarray/issues/6807#issuecomment-1286703986,https://api.github.com/repos/pydata/xarray/issues/6807,1286703986,IC_kwDOAMm_X85MsYty,85085,2022-10-21T09:31:29Z,2022-10-21T09:31:29Z,CONTRIBUTOR,"Cubed implements [`concat`](https://data-apis.org/array-api/latest/API_specification/generated/signatures.manipulation_functions.concat.html), but perhaps xarray needs richer concat functionality than that?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1308715638 https://github.com/pydata/xarray/pull/7019#issuecomment-1285349000,https://api.github.com/repos/pydata/xarray/issues/7019,1285349000,IC_kwDOAMm_X85MnN6I,85085,2022-10-20T11:15:50Z,2022-10-20T11:15:50Z,CONTRIBUTOR,@TomNicholas it might be good to rebase this now that #7067 is in.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1368740629 https://github.com/pydata/xarray/pull/7067#issuecomment-1260795929,https://api.github.com/repos/pydata/xarray/issues/7067,1260795929,IC_kwDOAMm_X85LJjgZ,85085,2022-09-28T11:56:30Z,2022-09-28T11:56:30Z,CONTRIBUTOR,Updated with all the suggestions. How does this look now?,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1382574245 https://github.com/pydata/xarray/pull/7067#issuecomment-1256212506,https://api.github.com/repos/pydata/xarray/issues/7067,1256212506,IC_kwDOAMm_X85K4Ega,85085,2022-09-23T13:28:01Z,2022-09-23T13:28:01Z,CONTRIBUTOR,This is great feedback - thanks @keewis! I will take a look at implementing your suggestions.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1382574245 https://github.com/pydata/xarray/pull/7019#issuecomment-1255158880,https://api.github.com/repos/pydata/xarray/issues/7019,1255158880,IC_kwDOAMm_X85K0DRg,85085,2022-09-22T15:03:34Z,2022-09-22T15:03:34Z,CONTRIBUTOR,"I think the `manager` keyword will also need adding to `open_zarr`, `open_dataset` and `to_zarr`. I'm interested in trying this out on some of our genomics use cases in sgkit (see https://github.com/pystatgen/sgkit/issues/908), so please let me know when you think it's ready to try @TomNicholas.","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1368740629 https://github.com/pydata/xarray/issues/3232#issuecomment-1190162973,https://api.github.com/repos/pydata/xarray/issues/3232,1190162973,IC_kwDOAMm_X85G8HId,85085,2022-07-20T11:35:03Z,2022-07-20T11:35:03Z,CONTRIBUTOR,"> I think it can't be tested with pytorch until they compete [pytorch/pytorch#58743](https://github.com/pytorch/pytorch/issues/58743), right? It needs `__array_namespace__` to be defined to activate the new code path.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,482543307 https://github.com/pydata/xarray/issues/3232#issuecomment-1189941650,https://api.github.com/repos/pydata/xarray/issues/3232,1189941650,IC_kwDOAMm_X85G7RGS,85085,2022-07-20T07:45:39Z,2022-07-20T07:45:39Z,CONTRIBUTOR,"Hi @hsharrison - thanks for offering to do some testing. Here's a little demo script that you could try, by switching `numpy.array_api` to pytorch: https://github.com/tomwhite/xarray/commit/929812a12818ffaa1187eb860c9b61e3fc03973c","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,482543307 https://github.com/pydata/xarray/issues/6807#issuecomment-1188910765,https://api.github.com/repos/pydata/xarray/issues/6807,1188910765,IC_kwDOAMm_X85G3Vat,85085,2022-07-19T10:58:18Z,2022-07-19T10:58:18Z,CONTRIBUTOR,"Thanks for opening this @TomNicholas > The challenge will be defining a parallel computing API that works across all these projects, with their slightly different models. Agreed. I feel like there's already an implicit set of ""chunked array"" methods that xarray expects from Dask that could be formalised a bit and exposed as an integration point.","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1308715638 https://github.com/pydata/xarray/issues/3232#issuecomment-1187007032,https://api.github.com/repos/pydata/xarray/issues/3232,1187007032,IC_kwDOAMm_X85GwEo4,85085,2022-07-18T10:04:29Z,2022-07-18T10:04:29Z,CONTRIBUTOR,Opened #6804,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,482543307 https://github.com/pydata/xarray/issues/3232#issuecomment-1182978725,https://api.github.com/repos/pydata/xarray/issues/3232,1182978725,IC_kwDOAMm_X85GgtKl,85085,2022-07-13T09:18:51Z,2022-07-13T09:18:51Z,CONTRIBUTOR,"I started having a look at making xarray work with the array API here: https://github.com/tomwhite/xarray/commit/c72a1c4a4c52152bdab83f60f35615de28e8be7f. Some basic operations work (preserving the underlying array): https://github.com/tomwhite/xarray/commit/929812a12818ffaa1187eb860c9b61e3fc03973c. If there's interest, I'd be happy to turn this into a PR with some tests.","{""total_count"": 4, ""+1"": 4, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,482543307 https://github.com/pydata/xarray/issues/6373#issuecomment-1072259361,https://api.github.com/repos/pydata/xarray/issues/6373,1072259361,IC_kwDOAMm_X84_6WEh,85085,2022-03-18T10:06:01Z,2022-03-18T10:06:01Z,CONTRIBUTOR,Thanks for confirming @jhamman,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1171932478 https://github.com/pydata/xarray/pull/5235#issuecomment-832596127,https://api.github.com/repos/pydata/xarray/issues/5235,832596127,MDEyOklzc3VlQ29tbWVudDgzMjU5NjEyNw==,85085,2021-05-05T10:54:17Z,2021-05-05T10:54:17Z,CONTRIBUTOR,"This is now passing. We could add more tests or even change the representation a little in some cases, but it would be good to merge for the release (since it fixes a bug) if it looks OK to you @keewis.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,870782371 https://github.com/pydata/xarray/pull/5126#issuecomment-827415452,https://api.github.com/repos/pydata/xarray/issues/5126,827415452,MDEyOklzc3VlQ29tbWVudDgyNzQxNTQ1Mg==,85085,2021-04-27T08:19:48Z,2021-04-27T08:19:48Z,CONTRIBUTOR,Thank you!,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,852280544 https://github.com/pydata/xarray/pull/5126#issuecomment-826719320,https://api.github.com/repos/pydata/xarray/issues/5126,826719320,MDEyOklzc3VlQ29tbWVudDgyNjcxOTMyMA==,85085,2021-04-26T10:30:20Z,2021-04-26T10:30:20Z,CONTRIBUTOR,@max-sixty yes - I've rebased and updated whats-new.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,852280544 https://github.com/pydata/xarray/pull/5126#issuecomment-824952098,https://api.github.com/repos/pydata/xarray/issues/5126,824952098,MDEyOklzc3VlQ29tbWVudDgyNDk1MjA5OA==,85085,2021-04-22T15:40:02Z,2021-04-22T15:40:02Z,CONTRIBUTOR,Thanks for the review @jsignell!,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,852280544 https://github.com/pydata/xarray/pull/4230#issuecomment-814813584,https://api.github.com/repos/pydata/xarray/issues/4230,814813584,MDEyOklzc3VlQ29tbWVudDgxNDgxMzU4NA==,85085,2021-04-07T10:51:31Z,2021-04-07T10:51:31Z,CONTRIBUTOR,"Thanks for the suggestions @dcherian! I've implemented `""default""` to preserve existing behaviour (i.e. only collapse if greater than preconfigured size limits). See #5126 I haven't implemented the nested options for `display_expand` - is it worth adding the extra complexity here?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,657792526 https://github.com/pydata/xarray/pull/4230#issuecomment-814059710,https://api.github.com/repos/pydata/xarray/issues/4230,814059710,MDEyOklzc3VlQ29tbWVudDgxNDA1OTcxMA==,85085,2021-04-06T11:54:06Z,2021-04-06T11:54:06Z,CONTRIBUTOR,"I would find it useful to have a generalized version of this for datasets, so it's possible to control independently whether the coordinates, data variables, and attributes sections are expanded by default. I'd be happy to pick this up if no one else is working on it. I have created a [branch](https://github.com/tomwhite/xarray/commit/199156aa9e850ec2b756292d93dafa7c986e5780) to try it out, which adds the options `display_expand_attrs`, `display_expand_coords`, `display_expand_data`, and `display_expand_data_vars` for controlling both HTML and text representations. All default to `True`. One thing I'm not sure about is maintaining the existing behaviour, which is that for the HTML dataset repr all three sections are expanded by default, up to a certain size limit, depending on the section (25 coordinates, 15 data variables, 10 attributes). I couldn't see a simple way to incorporate that, although maybe it's not needed if the sections can be collapsed by setting an option (e.g. `xr.set_options(display_expand_attrs=False)`)? ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,657792526