code: def _semaphore_signal_pp_eqn(
      eqn: jax_core.JaxprEqn,
      context: jax_core.JaxprPpContext,
      settings: jax_core.JaxprPpSettings,
  ):
      del settings
      invars = eqn.invars
      tree = eqn.params["args_tree"]
      (
          sem,
          sem_indexers,
          value,
          device_ids,
      ) = tree_util.tree_unflatten(tree, invars)
      out = pp.concat(
          [
              pp.text("semaphore_signal"),
              pp.text(" "),
              sp.pp_ref_indexers(context, sem, sem_indexers),
              pp.text(" "),
              pp.text(jax_core.pp_var(value, context)),
          ]
      )
      if device_ids is not None:
          flat_device_ids = tree_util.tree_leaves(device_ids)
          if not flat_device_ids:
              return out
          device_ids_pp = [flat_device_ids[0]]
          for device_id in flat_device_ids[1:]:
              device_ids_pp.append(pp.text(" "))
              device_ids_pp.append(
                  pp.text(jax_core.pp_var(device_id, context))
              )
          out = pp.concat([out, pp.concat(device_ids_pp)])
      return out
  
imports: from __future__ import annotations
  import contextlib
  import dataclasses
  import enum
  from typing import Any, Callable
  import jax
  from jax._src import api_util
  from jax._src import core
  from jax._src import effects
  from jax._src import linear_util
  from jax._src import pretty_printer
  from jax._src import state
  from jax._src import tree_util
  from jax._src import util
  from jax._src.state import indexing
  from jax._src.state import primitives
  from jax._src.interpreters import mlir
  from jax._src.interpreters import partial_eval
  from jax._src.pallas.mosaic import core
  import jax.numpy
label_desc: Use image node_id 13 for calling a global function with example usage: _semaphore_signal_pp_eqn(eqn, context, settings) and returns: out, out