code: def pp_indexer(
      context: core.JaxprPpContext, indexer: indexing.NDIndexer
  ) -> pp.Doc:
      indices = []
      for idx, dim in zip(indexer.indices, indexer.shape):
          if isinstance(idx, indexing.Slice):
              indices.append(_pp_slice(context, dim, idx))
          else:
              indices.append(core.pp_var(idx, context))  # type: ignore
      return pp.concat(
          [pp.text("["), pp.text(",".join(indices)), pp.text("]")]
      )
  
imports: from __future__ import annotations
  from functools import partial
  from typing import Any, Union
  import numpy
  from jax._src import ad_util
  from jax._src import core
  from jax._src import pretty_printer
  from jax._src import tree_util
  from jax._src.interpreters import ad
  from jax._src.interpreters import batching
  from jax._src.interpreters import partial_eval
  from jax._src.interpreters import mlir
  from jax._src.lax import lax
  from jax._src.typing import Array
  from jax._src.state import indexing
  from jax._src.state.types import AbstractRef, RefView, ReadEffect, WriteEffect, AccumEffect
  from jax._src.util import safe_map, safe_zip
label_desc: Use image node_id 15 for calling a global function with example usage: pp_indexer(context, indexer) and returns: pp