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/issues/4821#issuecomment-860244940,https://api.github.com/repos/pydata/xarray/issues/4821,860244940,MDEyOklzc3VlQ29tbWVudDg2MDI0NDk0MA==,5635139,2021-06-13T17:28:13Z,2021-06-13T17:28:13Z,MEMBER,"Yes, we want to replace that test with your test — either in the same test function or a new test function.
Though it maybe it should still be a `KeyError`, I think probably it should be. But feel free to submit the PR and it's easiest to review there.
Thanks!","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,787847449
https://github.com/pydata/xarray/issues/4821#issuecomment-859690070,https://api.github.com/repos/pydata/xarray/issues/4821,859690070,MDEyOklzc3VlQ29tbWVudDg1OTY5MDA3MA==,5635139,2021-06-11T16:14:15Z,2021-06-11T16:14:15Z,MEMBER,"> If you allow explicitly tuple, doesn't it mean I need to edit this part
Yes!
> (I find it a little bit weird to give dimensions in list, no ? I thought that generally tuples were more adapted to provide dims)
Yes, I feel similarly. For one `xr.Dataset(dict(var=(('a','b'), np.random.rand(3))))` is an error, rather than a one-dimensioned dataset with a single dim called `('a','b')`. But OTOH I can very much empathize with accepting any Hashable for dim names most functions, which includes tuples. So I am fine formalizing this (apart from the constructor).
> Can you tell me which test-case I can implement to fulfill all the requirements needed ? I can't think of test cases that I can implement except the one suggested first, and that one passes with the first modification
How about a test that checks the example above suggests a list, rather than raising a vanilla `KeyError`?
Cheers @thomashirtz ","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,787847449
https://github.com/pydata/xarray/issues/4821#issuecomment-855287336,https://api.github.com/repos/pydata/xarray/issues/4821,855287336,MDEyOklzc3VlQ29tbWVudDg1NTI4NzMzNg==,5635139,2021-06-05T19:49:24Z,2021-06-05T19:51:19Z,MEMBER,"Great, agree @dcherian . So maybe we:
- Check whether the dim exists (there could be a dim with tuple), which is already done in 1371 below
- If it doesn't exist, then check whether it's a string before passing it to `_get_virtual_variable` below. If it's a tuple, that message can suggest passing it as a list.
- Or we do the check _in_ `_get_virtual_variable`?
```python
1366 def _construct_dataarray(self, name: Hashable) -> ""DataArray"":
1367 """"""Construct a DataArray by indexing this dataset""""""
1368 from .dataarray import DataArray
1369
1370 try:
1371 variable = self._variables[name]
1372 except KeyError:
-> 1373 _, name, variable = _get_virtual_variable(
1374 self._variables, name, self._level_coords, self.dims
1375 )
```
@thomashirtz changing the labels back! Thanks in advance!","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,787847449
https://github.com/pydata/xarray/issues/4821#issuecomment-855276547,https://api.github.com/repos/pydata/xarray/issues/4821,855276547,MDEyOklzc3VlQ29tbWVudDg1NTI3NjU0Nw==,5635139,2021-06-05T18:16:38Z,2021-06-05T18:16:38Z,MEMBER,"Any thoughts from others on what we should do, of the three options above? CC @pydata/xarray ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,787847449
https://github.com/pydata/xarray/issues/4821#issuecomment-766166088,https://api.github.com/repos/pydata/xarray/issues/4821,766166088,MDEyOklzc3VlQ29tbWVudDc2NjE2NjA4OA==,5635139,2021-01-23T19:26:54Z,2021-01-23T19:26:54Z,MEMBER,"I would propose we either:
- Explicitly allow tuples as dimension and variable names. This is probably the most mypy-compatible, since we use `Hashable` in lots of places
- Force dimension names to be strings, but allow variable names to be `Hashable`. This might be the most practical.
- Disallow tuples for dimension names, but otherwise allow `Hashable`. Then tuples work the same as lists when supplied as arguments.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,787847449