code: def arg_where(
      condition: Expr | Series, *, eager: bool = False
  ) -> Expr | Series:
      """
      Return indices where `condition` evaluates `True`.
  
      Parameters
      ----------
      condition
          Boolean expression to evaluate
      eager
          Evaluate immediately and return a `Series`. If set to `False` (default),
          return an expression instead.
  
      See Also
      --------
      Series.arg_true : Return indices where Series is True
  
      Examples
      --------
      >>> df = pl.DataFrame({"a": [1, 2, 3, 4, 5]})
      >>> df.select(
      ...     [
      ...         pl.arg_where(pl.col("a") % 2 == 0),
      ...     ]
      ... ).to_series()
      shape: (2,)
      Series: 'a' [u32]
      [
          1
          3
      ]
  
      """
      if eager:
          if not isinstance(condition, pl.Series):
              raise ValueError(
                  "expected 'Series' in 'arg_where' if 'eager=True', got"
                  f" {type(condition).__name__!r}"
              )
          return (
              condition.to_frame()
              .select(arg_where(F.col(condition.name)))
              .to_series()
          )
      else:
          condition = parse_as_expression(condition)
          return wrap_expr(plr.arg_where(condition))
  
imports: from __future__ import annotations
  import contextlib
  from typing import TYPE_CHECKING, Any, Callable, Iterable, Sequence, overload
  import polars._reexport
  import polars.functions
  from polars.datatypes import DTYPE_TEMPORAL_UNITS, Date, Datetime, Int64
  from polars.utils._async import _AioDataFrameResult, _GeventDataFrameResult
  from polars.utils._parse_expr_input import parse_as_expression, parse_as_list_of_expressions
  from polars.utils._wrap import wrap_df, wrap_expr
  from polars.utils.deprecation import deprecate_renamed_function
label_desc: Use image node_id 38 for calling a global function with example usage: arg_where(condition) and returns: condition, wrap_expr