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/3526#issuecomment-1410658476,https://api.github.com/repos/pydata/xarray/issues/3526,1410658476,IC_kwDOAMm_X85UFPCs,2443309,2023-01-31T16:08:36Z,2023-01-31T16:08:36Z,MEMBER,"Bring back this old issue since I think there is value in getting something like this in. My suggestion would be to write a zarr-specific `_validate_attrs` function and use that, rather than stubbing in a special case for zarr in the generic one. @eddienko , I know this has sat for a long time but would you like to try to finish this up? ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,522519084 https://github.com/pydata/xarray/pull/3526#issuecomment-554497403,https://api.github.com/repos/pydata/xarray/issues/3526,554497403,MDEyOklzc3VlQ29tbWVudDU1NDQ5NzQwMw==,3780274,2019-11-15T19:32:33Z,2019-11-15T19:32:33Z,NONE,"mmm, I am not sure I understand. Currently ``` ds = xr.Dataset() ds.attrs['foo'] = {'bar': 1} ds.to_zarr('foo.zarr', mode='w') ``` does not work. This is because dict is not allowed in the list of types that the attributes are validated against. My feeling is this should not produce an error. This PR just addresses that so the code above works. The following works as well: ``` ds = xr.open_zarr('foo.zarr') ds.attrs['foo'] {'bar': 1} ``` ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,522519084 https://github.com/pydata/xarray/pull/3526#issuecomment-554479941,https://api.github.com/repos/pydata/xarray/issues/3526,554479941,MDEyOklzc3VlQ29tbWVudDU1NDQ3OTk0MQ==,2448579,2019-11-15T18:41:43Z,2019-11-15T18:41:43Z,MEMBER,"> Whatever value is given then gets serialised using the built-in json.dumps. This means I believe that if someone provides a dict as an attribute value then that will get serialised as a JSON object, @eddienko I think this means we can avoid converting to a list?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,522519084 https://github.com/pydata/xarray/pull/3526#issuecomment-554463832,https://api.github.com/repos/pydata/xarray/issues/3526,554463832,MDEyOklzc3VlQ29tbWVudDU1NDQ2MzgzMg==,703554,2019-11-15T17:57:42Z,2019-11-15T17:57:42Z,CONTRIBUTOR,"FWIW in the Zarr Python implementation I don't think we do any special encoding or decoding of attribute values. Whatever value is given then gets serialised using the built-in `json.dumps`. This means I believe that if someone provides a `dict` as an attribute value then that will get serialised as a JSON object, and get deserialised back to a `dict`, although this is not something we test for currently. From the zarr v2 spec point of view I think anything goes in the `.zattrs` file, as long as `.zattrs` is a JSON object at the root. Hth.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,522519084 https://github.com/pydata/xarray/pull/3526#issuecomment-554045517,https://api.github.com/repos/pydata/xarray/issues/3526,554045517,MDEyOklzc3VlQ29tbWVudDU1NDA0NTUxNw==,3019665,2019-11-14T19:37:13Z,2019-11-14T19:37:13Z,NONE,"Yeah this probably works as these are just JSON files. That said, IDK that we are making any attempt to ensure this works. IOW I don't think this is tested or in the spec. Additionally IDK that we do the same decoding on nested dictionaries as would be done on a flat dictionary. Meaning non-JSON values like `datetime64`/`timedelta64` might not be handled correctly in this case. Could be wrong about these things. Those are just my immediate thoughts.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,522519084 https://github.com/pydata/xarray/pull/3526#issuecomment-553995368,https://api.github.com/repos/pydata/xarray/issues/3526,553995368,MDEyOklzc3VlQ29tbWVudDU1Mzk5NTM2OA==,1197350,2019-11-14T17:34:06Z,2019-11-14T17:34:06Z,MEMBER,"I am slammed right now with a proposal and can't really spend time on this, so I'll tag @jakirkham and @alimanfoo who can provide a zarr perspective on what is going on here.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,522519084