code: def _noinline_pretty_print(eqn, context, settings):
      _, abstract_fn, transforms, _ = jtu.tree_unflatten(
          eqn.params["treedef"], eqn.params["static"]
      )
      pretty_params = dict(abstract_fn=abstract_fn)
      if type(eqn.invars[0]) is jax.core.Literal:
          static_fn_leaves, static_fn_treedef = _index_to_fn[
              eqn.invars[0].val
          ]
          pretty_params["static_fn"] = jtu.tree_unflatten(
              static_fn_treedef, static_fn_leaves
          )
      if len(transforms) > 1:
          # skip impl
          transforms = [_pp_transform(x) for x in transforms[1:]]
          pretty_params["transforms"] = transforms
      lhs = jax.core.pp_vars(
          eqn.outvars, context, print_shapes=settings.print_shapes
      )
      rhs = [
          pp.text(eqn.primitive.name),
          jax.core.pp_kv_pairs(
              sorted(pretty_params.items()), context, settings
          ),
          pp.text(" ") + jax.core.pp_vars(eqn.invars, context),
      ]
      annotation = (
          source_info_util.summarize(eqn.source_info)
          if settings.source_info
          else None
      )
      return pp.concat(
          [lhs, pp.text(" = ", annotation=annotation), *rhs]
      )
  
imports: import functools
  from collections.abc import Callable
  from typing import Any, Optional, Union
  import jax
  import jax._src.pretty_printer
  import jax._src.source_info_util
  import jax.core
  import jax.interpreters.ad
  import jax.interpreters.batching
  import jax.interpreters.mlir
  import jax.numpy
  import jax.tree_util
  import numpy
  from jaxtyping import Array, Int, PyTree
  from .._ad import filter_jvp
  from .._caches import internal_lru_caches
  from .._compile_utils import hashable_combine, hashable_partition
  from .._eval_shape import filter_eval_shape
  from .._filters import combine, is_array, partition
  from .._module import field, Module, module_update_wrapper
  from .._vmap_pmap import filter_vmap
  from .None import _primitive
  from ._primitive import filter_primitive_batching, filter_primitive_bind, filter_primitive_def, filter_primitive_jvp, filter_primitive_transpose, materialise_zeros
label_desc: Use image node_id 20 for calling a global function with example usage: _noinline_pretty_print(eqn, context, settings) and returns: pp