code: def _validate_axes(axes):
      """Validate and normalize input axes.
  
      Axes are expected to follow the right-hand rule (e.g. third axis is the
      cross product of the first two.
  
      Parameters
      ----------
      axes : sequence
          The axes to be validated and normalized. Should be of shape (3, 3).
  
      Returns
      -------
      dict
          The validated and normalized axes.
  
      """
      axes = np.array(axes)
      if axes.shape != (3, 3):
          raise ValueError("`axes` must be a (3, 3) array.")
  
      axes = axes / np.linalg.norm(axes, axis=1, keepdims=True)
      if not np.allclose(np.cross(axes[0], axes[1]), axes[2]):
          raise ValueError("`axes` do not follow the right hand rule.")
  
      return axes
  
imports: import numpy
  import pyvista
  from pyvista.core.errors import VTKVersionError
  from pyvista.core.utilities.misc import try_callback
  from .None import _vtk
label_desc: Use image node_id 1 for calling a global function with example usage: _validate_axes(axes) and returns: axes