code: def _ensure_inbounds(
      allow_invalid: bool, num_args: int, argnums: Sequence[int]
  ) -> tuple[int, ...]:
      """Ensure argnum is within bounds. Also resolves negative argnums."""
      result = []
      for i in argnums:
          if i >= num_args and allow_invalid:
              continue
          if not -num_args <= i < num_args:
              raise ValueError(
                  "Positional argument indices, e.g. for `static_argnums`, must have "
                  "value greater than or equal to -len(args) and less than len(args), "
                  f"but got value {i} for len(args) == {num_args}."
              )
          result.append(i % num_args)  # Resolve negative
      return tuple(result)
  
imports: from __future__ import annotations
  from collections.abc import Iterable, Sequence
  import inspect
  import operator
  from functools import partial
  from typing import Any, Callable
  import warnings
  import numpy
  from jax._src import core
  from jax._src import dtypes
  from jax._src.abstract_arrays import numpy_scalar_types
  from jax._src.core import ShapedArray
  from jax._src.tree_util import PyTreeDef, tree_flatten, tree_unflatten, tree_map, tree_structure, treedef_children, generate_key_paths, keystr, broadcast_prefix, prefix_errors
  from jax._src.tree_util import _replace_nones
  from jax._src import linear_util
  from jax._src.linear_util import TracingDebugInfo
  from jax._src.util import safe_map, WrapKwArgs, Hashable, HashableFunction, Unhashable
  from jax._src import traceback_util
label_desc: Use image node_id 14 for calling a global function with example usage: _ensure_inbounds(allow_invalid, num_args, argnums) and returns: tuple