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/4290#issuecomment-669224849,https://api.github.com/repos/pydata/xarray/issues/4290,669224849,MDEyOklzc3VlQ29tbWVudDY2OTIyNDg0OQ==,5635139,2020-08-05T14:25:55Z,2020-08-05T14:25:55Z,MEMBER,Thanks for raising and engaging @aaronspring !,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,668717850 https://github.com/pydata/xarray/issues/4290#issuecomment-666637210,https://api.github.com/repos/pydata/xarray/issues/4290,666637210,MDEyOklzc3VlQ29tbWVudDY2NjYzNzIxMA==,2448579,2020-07-30T19:35:39Z,2020-07-30T19:35:39Z,MEMBER,"> We mirror numpy for DataArray and, per @keewis , Mapping for Dataset. I think we should have a fairly high bar for deviating from those. :+1:","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,668717850 https://github.com/pydata/xarray/issues/4290#issuecomment-666610284,https://api.github.com/repos/pydata/xarray/issues/4290,666610284,MDEyOklzc3VlQ29tbWVudDY2NjYxMDI4NA==,5635139,2020-07-30T19:10:27Z,2020-07-30T19:10:27Z,MEMBER,"We mirror numpy for `DataArray` and, per @keewis , `Mapping` for Dataset. I think we should have a fairly high bar for deviating from those. For those who think ` bool(xr.Dataset(dict(x=False)))` should evaluate to `False`, what do you think `dict(x=False)` should evaluate to? IIUC, this is somewhat of an edge case — it's only possible to coerce `DataArray` to bool when there's exactly one element. (Not that we shouldn't resolve) > This question seems to me to be conceptually similar to the question I described in #3315: ""Should we treat a named DataArray and a single-variable Dataset as if they are the same?"" 👍 ","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,668717850 https://github.com/pydata/xarray/issues/4290#issuecomment-666546137,https://api.github.com/repos/pydata/xarray/issues/4290,666546137,MDEyOklzc3VlQ29tbWVudDY2NjU0NjEzNw==,35968931,2020-07-30T17:29:43Z,2020-07-30T17:29:43Z,MEMBER,"This question seems to me to be conceptually similar to the question I described in [#3315](https://github.com/pydata/xarray/issues/3315#issuecomment-535061773): ""Should we treat a named DataArray and a single-variable Dataset as if they are the same?"" If the answer is yes, then we should definitely change the behaviour of `bool(Dataset())` as Aaron suggests. If instead we decide ""no, Datasets are dictionaries of DataArrays, and a single-element dictionary is not the same thing as the named object it contains"", then I'm not sure. Intuitively I personally think it should be the former, but I would first like to see how many tests break if we make that kind of change.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,668717850 https://github.com/pydata/xarray/issues/4290#issuecomment-666378592,https://api.github.com/repos/pydata/xarray/issues/4290,666378592,MDEyOklzc3VlQ29tbWVudDY2NjM3ODU5Mg==,14808389,2020-07-30T13:53:25Z,2020-07-30T13:53:25Z,MEMBER,"I'm not sure if that's something we want to do: what happens if the dataset has more than one variable? I guess what we're talking about here is making `bool(ds)` a alias of `all(ds.values() or [False])` (the `... or [False]` is for making `Dataset({})` return `False` instead of `True`). Thoughts, @pydata/xarray?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,668717850 https://github.com/pydata/xarray/issues/4290#issuecomment-666366366,https://api.github.com/repos/pydata/xarray/issues/4290,666366366,MDEyOklzc3VlQ29tbWVudDY2NjM2NjM2Ng==,14808389,2020-07-30T13:31:38Z,2020-07-30T13:31:38Z,MEMBER,"If I remember correctly, `Dataset` inherits from `dict` and doesn't define it's own `__bool__`, so it has the behavior of `dict.__bool__`: ```python In [2]: bool(xr.Dataset()) Out[2]: False In [3]: bool(xr.Dataset({""x"": False})) Out[3]: True In [4]: bool({}) Out[4]: False In [5]: bool({""x"": False}) Out[5]: True ```","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,668717850