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

Function map_index_queries

xarray/core/indexing.py:186–228  ·  view source on GitHub ↗

Execute index queries from a DataArray / Dataset and label-based indexers and return the (merged) query results.

(
    obj: T_Xarray,
    indexers: Mapping[Any, Any],
    method=None,
    tolerance: int | float | Iterable[int | float] | None = None,
    **indexers_kwargs: Any,
)

Source from the content-addressed store, hash-verified

184
185
186def map_index_queries(
187 obj: T_Xarray,
188 indexers: Mapping[Any, Any],
189 method=None,
190 tolerance: int | float | Iterable[int | float] | None = None,
191 **indexers_kwargs: Any,
192) -> IndexSelResult:
193 """Execute index queries from a DataArray / Dataset and label-based indexers
194 and return the (merged) query results.
195
196 """
197 from xarray.core.dataarray import DataArray
198
199 # TODO benbovy - flexible indexes: remove when custom index options are available
200 if method is None and tolerance is None:
201 options = {}
202 else:
203 options = {"method": method, "tolerance": tolerance}
204
205 indexers = either_dict_or_kwargs(indexers, indexers_kwargs, "map_index_queries")
206 grouped_indexers = group_indexers_by_index(obj, indexers, options)
207
208 results = []
209 for index, labels in grouped_indexers:
210 if index is None:
211 # forward dimension indexers with no index/coordinate
212 results.append(IndexSelResult(labels))
213 else:
214 results.append(index.sel(labels, **options))
215
216 merged = merge_sel_results(results)
217
218 # drop dimension coordinates found in dimension indexers
219 # (also drop multi-index if any)
220 # (.sel() already ensures alignment)
221 for k, v in merged.dim_indexers.items():
222 if isinstance(v, DataArray):
223 if k in v._indexes:
224 v = v.reset_index(k)
225 drop_coords = [name for name in v._coords if name in merged.dim_indexers]
226 merged.dim_indexers[k] = v.drop_vars(drop_coords)
227
228 return merged
229
230
231def expanded_indexer(key, ndim):

Callers 3

selMethod · 0.90
__setitem__Method · 0.90
__setitem__Method · 0.90

Calls 8

either_dict_or_kwargsFunction · 0.90
group_indexers_by_indexFunction · 0.85
IndexSelResultClass · 0.85
merge_sel_resultsFunction · 0.85
itemsMethod · 0.80
selMethod · 0.45
reset_indexMethod · 0.45
drop_varsMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…