code: def _set_shaped_array_attributes(shaped_array):
      # Set up operator, method, and property forwarding on Tracer instances
      # containing
      # ShapedArray avals by following the forwarding conventions for Tracer.
      # Forward operators using a single-underscore-prefix naming convention:
      for operator_name, function in _array_operators.items():
          setattr(
              shaped_array, f"_{operator_name}", staticmethod(function)
          )
      # Forward methods and properties using core.{aval_method, aval_property}:
      for method_name, method in _array_methods.items():
          setattr(shaped_array, method_name, core.aval_method(method))
      for prop_name, prop in _array_properties.items():
          setattr(shaped_array, prop_name, core.aval_property(prop))
      setattr(
          shaped_array, "_array_module", staticmethod(__array_module__)
      )
  
imports: from __future__ import annotations
  import abc
  from functools import partial, wraps
  import math
  from typing import Any
  import numpy
  import jax
  from jax import lax
  from jax._src import core
  from jax._src import dtypes
  from jax._src.api_util import _ensure_index_tuple
  from jax._src.array import ArrayImpl
  from jax._src.lax import lax
  from jax._src.numpy import lax_numpy
  from jax._src.numpy import reductions
  from jax._src.numpy import ufuncs
  from jax._src.numpy import util
  from jax._src.ops import scatter
  from jax._src.typing import Array, ArrayLike, DimSize, DTypeLike, Shape
  from jax._src.util import safe_zip, safe_map
label_desc: Use image node_id 22 for calling a global function with example usage: _set_shaped_array_attributes(shaped_array) without return types