code: def _custom_partitioning_abstract_eval(
      *avals,
      call,
      in_tree,
      out_tree,
      propagate_user_sharding,
      partition,
      infer_sharding_from_operands,
      decode_shardings,
      static_args,
  ):
      del in_tree, out_tree, propagate_user_sharding, partition
      del infer_sharding_from_operands, decode_shardings, static_args
      return call.out_avals
  
imports: from __future__ import annotations
  import inspect
  from typing import Optional
  import weakref
  import jax
  from jax._src import core
  from jax import tree_util
  from jax._src import linear_util
  from jax._src import sharding_impls
  from jax.errors import UnexpectedTracerError
  from jax._src import mesh
  from jax._src import dispatch
  from jax._src.lib.mlir.dialects import hlo
  from jax._src.lib.mlir import ir
  from jax._src.interpreters import mlir
  from jax._src.interpreters import partial_eval
  from jax._src.sharding_impls import _op_sharding_to_pos_sharding
  from jax._src import custom_api_util
  from jax._src.lib import xla_client
  from jax._src.api_util import flatten_fun_nokwargs, argnums_partial
label_desc: Use image node_id 10 for calling a global function with example usage: _custom_partitioning_abstract_eval() and returns: call