code: def hsplit(
      ary: np.ndarray,
      indices_or_sections: Union[int, Tuple[int, ...]],
      /,
      *,
      copy: Optional[bool] = None,
  ) -> List[np.ndarray]:
      if ary.ndim == 1:
          return ivy.split(
              ary, num_or_size_splits=indices_or_sections, axis=0
          )
      return ivy.split(
          ary, num_or_size_splits=indices_or_sections, axis=1
      )
  
imports: from typing import Iterable, Optional, Union, Sequence, Tuple, NamedTuple, Literal, Callable, Any, List
  from numbers import Number
  from collections import namedtuple
  import numpy
  import ivy
  from ivy.functional.backends.numpy.helpers import _scalar_output_to_0d_array
  from ivy.func_wrapper import with_supported_dtypes
  from .None import backend_version
label_desc: Use image node_id 21 for calling a global function with example usage: hsplit() and returns: ivy, ivy