code: def _normalize_axis_tuple(
      axis: Union[int, list, tuple], ndim: int
  ) -> Tuple[int, ...]:
      if type(axis) not in (tuple, list):
          try:
              axis = [operator.index(axis)]
          except TypeError:
              pass
      axis = tuple(_normalize_axis_index(ax, ndim) for ax in axis)
      if len(set(axis)) != len(axis):
          raise ValueError("repeated axis")
      return axis
  
imports: import operator
  from typing import Union, Optional, Tuple, List, Sequence
  from numbers import Number
  import tensorflow
  from tensorflow.python.ops.numpy_ops import np_math_ops
  import ivy
  from ivy import promote_types_of_inputs
  from ivy.func_wrapper import with_unsupported_dtypes, with_supported_dtypes
  from ..None import backend_version
label_desc: Use image node_id 19 for calling a global function with example usage: _normalize_axis_tuple(axis, ndim) and returns: axis