MCPcopy
hub / github.com/pydata/xarray / _overwrite_indexes

Method _overwrite_indexes

xarray/core/dataset.py:960–1032  ·  view source on GitHub ↗

Maybe replace indexes. This function may do a lot more depending on index query results.

(
        self,
        indexes: Mapping[Hashable, Index],
        variables: Mapping[Hashable, Variable] | None = None,
        drop_variables: list[Hashable] | None = None,
        drop_indexes: list[Hashable] | None = None,
        rename_dims: Mapping[Hashable, Hashable] | None = None,
    )

Source from the content-addressed store, hash-verified

958 )
959
960 def _overwrite_indexes(
961 self,
962 indexes: Mapping[Hashable, Index],
963 variables: Mapping[Hashable, Variable] | None = None,
964 drop_variables: list[Hashable] | None = None,
965 drop_indexes: list[Hashable] | None = None,
966 rename_dims: Mapping[Hashable, Hashable] | None = None,
967 ) -> Self:
968 """Maybe replace indexes.
969
970 This function may do a lot more depending on index query
971 results.
972
973 """
974 if not indexes:
975 return self
976
977 if variables is None:
978 variables = {}
979 if drop_variables is None:
980 drop_variables = []
981 if drop_indexes is None:
982 drop_indexes = []
983
984 new_variables = self._variables.copy()
985 new_coord_names = self._coord_names.copy()
986 new_indexes = dict(self._indexes)
987
988 index_variables = {}
989 no_index_variables = {}
990 for name, var in variables.items():
991 old_var = self._variables.get(name)
992 if old_var is not None:
993 var.attrs.update(old_var.attrs)
994 var.encoding.update(old_var.encoding)
995 if name in indexes:
996 index_variables[name] = var
997 else:
998 no_index_variables[name] = var
999
1000 for name in indexes:
1001 new_indexes[name] = indexes[name]
1002
1003 for name, var in index_variables.items():
1004 new_coord_names.add(name)
1005 new_variables[name] = var
1006
1007 # append no-index variables at the end
1008 for k in no_index_variables:
1009 new_variables.pop(k)
1010 new_variables.update(no_index_variables)
1011
1012 for name in drop_indexes:
1013 new_indexes.pop(name)
1014
1015 for name in drop_variables:
1016 new_variables.pop(name)
1017 new_indexes.pop(name, None)

Callers 2

_reindex_callbackMethod · 0.95
selMethod · 0.45

Calls 8

_replaceMethod · 0.95
itemsMethod · 0.80
_rename_dimsMethod · 0.80
_rename_varsMethod · 0.80
copyMethod · 0.45
getMethod · 0.45
updateMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected