code: def sum(
      x: Array,
      /,
      *,
      axis: Optional[Union[int, Tuple[int, ...]]] = None,
      dtype: Optional[Dtype] = None,
      keepdims: bool = False,
  ) -> Array:
      if x.dtype not in _numeric_dtypes:
          raise TypeError("Only numeric dtypes are allowed in sum")
      # Note: sum() and prod() always upcast integers to (u)int64 and float32 to
      # float64 for dtype=None. `np.sum` does that too for integers, but not for
      # float32, so we need to special-case it here
      if dtype is None and x.dtype == float32:
          dtype = float64
      return Array._new(
          np.sum(x._array, axis=axis, dtype=dtype, keepdims=keepdims)
      )
  
file_path: cupy/cupy/array_api/_statistical_functions.py
imports: from __future__ import annotations
  from ._dtypes import _floating_dtypes, _numeric_dtypes
  from ._array_object import Array
  from ._creation_functions import asarray
  from ._dtypes import float32, float64
  from typing import TYPE_CHECKING, Optional, Tuple, Union
  import cupy
label_desc: Use image node_id 6 for calling a global function with example usage: sum() and returns: Array