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/5764#issuecomment-933822350,https://api.github.com/repos/pydata/xarray/issues/5764,933822350,IC_kwDOAMm_X843qP-O,1217238,2021-10-04T20:16:48Z,2021-10-04T20:16:48Z,MEMBER,"I don't love going against the guidance from Python core developers. My gut is that a Dask-specific protocol may be safer. That said, if Dask is the only library using `sys.getsizeof()` for some real purpose, then perhaps this is safe enough. There's still some ambiguity to me about exactly what should be included in ""size of"" (e.g., do we include lazy values or not?) but we can probably figure that out. I suspect Xarray's implementation would be need to be recursive in some way, to handle nested Dask or lazy arrays.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,988158051 https://github.com/pydata/xarray/issues/5764#issuecomment-932811398,https://api.github.com/repos/pydata/xarray/issues/5764,932811398,IC_kwDOAMm_X843mZKG,1312546,2021-10-02T19:48:05Z,2021-10-02T19:48:05Z,MEMBER,"Mmm for better or worse, Dask relies on sizeof to estimate the memory usage of objects at runtime. We could move that over to some new duck-typed interface like using `.nbytes` if it's around, but not all objects will want to expose an nbytes attribute in their API. IMO, I think the best path is for objects to implement `__getsizeof__` unless there's some downside I'm missing.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,988158051 https://github.com/pydata/xarray/issues/5764#issuecomment-914051097,https://api.github.com/repos/pydata/xarray/issues/5764,914051097,IC_kwDOAMm_X842e1AZ,1217238,2021-09-07T07:12:07Z,2021-09-07T07:12:07Z,MEMBER,It seems like the concensus from https://bugs.python.org/issue15436 is that only C extension types should implement `__sizeof__`.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,988158051