MCPcopy Index your code
hub / github.com/pydata/xarray / _assert_indexes_invariants_checks

Function _assert_indexes_invariants_checks

xarray/testing/assertions.py:351–413  ·  view source on GitHub ↗
(
    indexes, possible_coord_variables, dims, check_default=True
)

Source from the content-addressed store, hash-verified

349
350
351def _assert_indexes_invariants_checks(
352 indexes, possible_coord_variables, dims, check_default=True
353):
354 assert isinstance(indexes, dict), indexes
355 assert all(isinstance(v, Index) for v in indexes.values()), {
356 k: type(v) for k, v in indexes.items()
357 }
358
359 if check_default:
360 index_vars = {
361 k
362 for k, v in possible_coord_variables.items()
363 if isinstance(v, IndexVariable)
364 }
365 assert indexes.keys() <= index_vars, (set(indexes), index_vars)
366 assert all(
367 k in index_vars
368 for k, v in possible_coord_variables.items()
369 if v.dims == (k,)
370 ), {k: type(v) for k, v in possible_coord_variables.items()}
371
372 assert not any(
373 isinstance(v, IndexVariable)
374 for k, v in possible_coord_variables.items()
375 if k not in indexes.keys()
376 ), {k: type(v) for k, v in possible_coord_variables.items()}
377
378 # check pandas index wrappers vs. coordinate data adapters
379 for k, index in indexes.items():
380 if isinstance(index, PandasIndex):
381 pd_index = index.index
382 var = possible_coord_variables[k]
383 assert (index.dim,) == var.dims, (pd_index, var)
384 if k == index.dim:
385 # skip multi-index levels here (checked below)
386 assert index.coord_dtype == var.dtype, (index.coord_dtype, var.dtype)
387 assert isinstance(var._data.array, pd.Index), var._data.array
388 # TODO: check identity instead of equality?
389 assert pd_index.equals(var._data.array), (pd_index, var)
390 if isinstance(index, PandasMultiIndex):
391 pd_index = index.index
392 for name in index.index.names:
393 assert name in possible_coord_variables, (pd_index, index_vars)
394 var = possible_coord_variables[name]
395 assert (index.dim,) == var.dims, (pd_index, var)
396 assert index.level_coords_dtype[name] == var.dtype, (
397 index.level_coords_dtype[name],
398 var.dtype,
399 )
400 assert isinstance(var._data.array, pd.MultiIndex), var._data.array
401 assert pd_index.equals(var._data.array), (pd_index, var)
402 # check all all levels are in `indexes`
403 assert name in indexes, (name, set(indexes))
404 # index identity is used to find unique indexes in `indexes`
405 assert index is indexes[name], (pd_index, indexes[name].index)
406
407 if check_default:
408 defaults = default_indexes(possible_coord_variables, dims)

Callers 2

Calls 6

default_indexesFunction · 0.90
typeFunction · 0.85
itemsMethod · 0.80
keysMethod · 0.80
valuesMethod · 0.45
equalsMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…