resolve_selector_namespaces
resolve_selector_namespaces(
known_attrs: collections.abc.Collection[str] ,
known_coords: collections.abc.Collection[str] ,
_attrs: collections.abc.Mapping[collections.abc.Mapping[str, Any], str, collections.abc.Iterable[str], None] = None,
_coords: collections.abc.Mapping[collections.abc.Mapping[str, Any], str, collections.abc.Iterable[str], None] = None,
kwargs: collections.abc.Mapping | None[Mapping, None] = None,
)-> ‘tuple[dict, dict]’
Split selector kwargs into (attrs, coords) per the selector spec.
Bare kwargs resolve against attributes first, then coordinates; _attrs/_coords name their namespace explicitly and validate against that side only. Each accepts either a mapping of name -> selector (the fully general form — required when a name cannot be a Python keyword, e.g. it collides with a select parameter or is not an identifier) or a name/collection of names tagging which bare kwargs to interpret in that namespace. Unknown names, and names supplied in more than one namespace, raise (see #435).
Both the catalog (which pushes predicates into SQL) and the generic dataframe select path resolve names here, so the two agree on which names are valid, what a bare name means, and which range forms are accepted — the paths differ only in how they apply a predicate.