code: def _set_array_base_attributes(
      device_array, include=None, exclude=None
  ):
      # Forward operators, methods, and properties on Array to lax_numpy
      # functions (with no Tracers involved; this forwarding is direct)
      def maybe_setattr(attr_name, target):
          if exclude is not None and attr_name in exclude:
              return
          if not include or attr_name in include:
              setattr(device_array, attr_name, target)
  
      for operator_name, function in _array_operators.items():
          maybe_setattr(f"__{operator_name}__", function)
      for method_name, method in _array_methods.items():
          maybe_setattr(method_name, method)
      for prop_name, prop in _array_properties.items():
          maybe_setattr(prop_name, property(prop))
  
      for name, func in _impl_only_array_methods.items():
          setattr(device_array, name, func)
  
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 27 for calling a global function with example usage: _set_array_base_attributes(device_array, include, exclude) without return types