code: def _shape_after_indexing(
      shape: tuple[int, ...], indexers: tuple[indexing.NDIndexer, ...]
  ) -> tuple[int, ...]:
      for indexer in indexers:
          # Run some simple checks that all the indexers have consistent shapes
          assert indexer.shape == shape, (indexer.shape, shape)
          shape = indexer.get_indexer_shape()
      return shape
  
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 10 for calling a global function with example usage: _shape_after_indexing(shape, indexers) and returns: shape