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 1333644214,PR_kwDOAMm_X8486DyE,6903,Duckarray tests for constructors and properties,35968931,open,0,,,5,2022-08-09T18:36:56Z,2024-01-01T13:33:22Z,,MEMBER,,0,pydata/xarray/pulls/6903,"Builds on top of #4972 to add tests for `Variable/DataArray/Dataset` constructors and properties when wrapping duck arrays. Adds a file `xarray/tests/duckarrays/base/constructors.py` which contains new test base classes. Also uses those new base classes to test Sparse array integration (not yet tried for pint integration). - [x] Closes part of #6894 - [ ] Tests added (tests for tests?? Maybe...) - [ ] 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/6903/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 2038153739,I_kwDOAMm_X855e8IL,8545,map_blocks should dispatch to ChunkManager,35968931,open,0,,,5,2023-12-12T16:34:13Z,2023-12-22T16:47:27Z,,MEMBER,,,,"### Is your feature request related to a problem? #7019 generalized most of xarrays internals to be able to use any chunked array type that we can create a `ChunkManagerEntrypoint` for. Most functions now go through this (e.g. `apply_ufunc`), but I did not redirect `xarray.map_blocks` to go through `ChunkManagerEntrypoint`. This redirection works by dispatching to high-level dask.array primitives such as `dask.array.apply_gufunc`, `dask.array.blockwise`, and `dask.array.map_blocks`. However the current implementation of `xarray.map_blocks` is much lower-level, building a custom HLG, so it was not obvious how to swap it out. ### Describe the solution you'd like I would like to either: 1) Replace the current internals of `xarray.map_blocks` with a simple call to `ChunkManagerEntrypoint.map_blocks`. This would be the cleanest separation of concerns we could do here. Presumably there is some obvious reason why this cannot or should not be done, but I have yet to understand what that reason is. (either @dcherian or @tomwhite can you enlighten me perhaps? 🙏) 2) (More likely) refactor so that the existing guts of `xarray.map_blocks` are only called from the `ChunkManagerEntrypoint`, and a non-dask chunked array (i.e. cubed, but in theory other types too) would be able to specify how it wants to perform the map_blocks. ### Describe alternatives you've considered Leaving it as the status quo breaks the nice abstraction and separation of concerns that #7019 introduced. ### Additional context Split off from https://github.com/pydata/xarray/issues/8414","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8545/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue 1424215477,I_kwDOAMm_X85U4821,7227,Typing with Variadic Generics in python 3.11 (PEP 646),35968931,open,0,,,5,2022-10-26T15:03:01Z,2022-10-26T21:50:02Z,,MEMBER,,,,"### What is your issue? I just saw this [new typing feature](https://peps.python.org/pep-0646/) in python 3.11, and I'm wondering whether / where we could usefully use this? The feature is parametrizing `Generics` with arbitrary numbers of `TypeVars`, which allows you to have `Array` types whose static typing behaviour is a function of their `shape`. (But we could possibly use it for a tuple of `dims` too...) We might use it to do things like: - Specify that a function expects an array of a certain dimensionality - Overload methods based on the array dimensionality (e.g. `.plot` for 1D vs 2D arrays) - (If they implement [Shape Arithmetic](https://peps.python.org/pep-0646/#shape-arithmetic)) Type hint how certain methods will change the output shape? @headtr1ck @max-sixty any thoughts? ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/7227/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue