()
| 258 | |
| 259 | @sizeof.register_lazy("xarray") |
| 260 | def register_xarray(): |
| 261 | import sys |
| 262 | |
| 263 | import xarray as xr |
| 264 | |
| 265 | XARRAY_VERSION = Version(xr.__version__) |
| 266 | XARRAY_GE_2024_02 = XARRAY_VERSION >= Version("2024.02.0") |
| 267 | |
| 268 | @sizeof.register(xr.core.utils.Frozen) |
| 269 | def xarray_sizeof_frozen(obj): |
| 270 | return sys.getsizeof(obj) + sizeof(obj.mapping) |
| 271 | |
| 272 | @sizeof.register(xr.DataArray) |
| 273 | @sizeof.register(xr.Variable) |
| 274 | def xarray_sizeof_da(obj): |
| 275 | return sys.getsizeof(obj) + sizeof(obj.data) |
| 276 | |
| 277 | @sizeof.register(xr.Dataset) |
| 278 | def xarray_sizeof_ds(obj): |
| 279 | return sys.getsizeof(obj) + sizeof(obj.variables) |
| 280 | |
| 281 | if XARRAY_GE_2024_02: |
| 282 | xarray_sizeof_da = sizeof.register(xr.NamedArray)(xarray_sizeof_da) |
| 283 | |
| 284 | @sizeof.register(xr.core.indexes.Indexes) |
| 285 | def xarray_sizeof_indexes(obj): |
| 286 | return ( |
| 287 | sys.getsizeof(obj) |
| 288 | + sizeof(obj._index_type) |
| 289 | + sizeof(obj._indexes) |
| 290 | + sizeof(obj._variables) |
| 291 | + sizeof(obj._dims) |
| 292 | ) |
| 293 | |
| 294 | @sizeof.register(xr.core.indexes.PandasIndex) |
| 295 | def xarray_sizeof_pd_index(obj): |
| 296 | return ( |
| 297 | sys.getsizeof(obj) |
| 298 | + sizeof(obj.index) |
| 299 | + sizeof(obj.dim) |
| 300 | + sizeof(obj.coord_dtype) |
| 301 | ) |
| 302 | |
| 303 | |
| 304 | def _register_entry_point_plugins(): |
nothing calls this directly
no test coverage detected
searching dependent graphs…