code: def Arrow(
      start=(0.0, 0.0, 0.0),
      direction=(1.0, 0.0, 0.0),
      tip_length=0.25,
      tip_radius=0.1,
      tip_resolution=20,
      shaft_radius=0.05,
      shaft_resolution=20,
      scale=None,
  ):
      """Create an arrow.
  
      Parameters
      ----------
      start : sequence[float], default: (0.0, 0.0, 0.0)
          Start location in ``[x, y, z]``.
  
      direction : sequence[float], default: (1.0, 0.0, 0.0)
          Direction the arrow points to in ``[x, y, z]``.
  
      tip_length : float, default: 0.25
          Length of the tip.
  
      tip_radius : float, default: 0.1
          Radius of the tip.
  
      tip_resolution : int, default: 20
          Number of faces around the tip.
  
      shaft_radius : float, default: 0.05
          Radius of the shaft.
  
      shaft_resolution : int, default: 20
          Number of faces around the shaft.
  
      scale : float | str, optional
          Scale factor of the entire object, defaults to a scale of 1.
          ``'auto'`` scales to length of direction array.
  
      Returns
      -------
      pyvista.PolyData
          Arrow mesh.
  
      Examples
      --------
      Plot a default arrow.
  
      >>> import pyvista as pv
      >>> mesh = pv.Arrow()
      >>> mesh.plot(show_edges=True)
  
      """
      # Create arrow object
      arrow = _vtk.vtkArrowSource()
      arrow.SetTipLength(tip_length)
      arrow.SetTipRadius(tip_radius)
      arrow.SetTipResolution(tip_resolution)
      arrow.SetShaftRadius(shaft_radius)
      arrow.SetShaftResolution(shaft_resolution)
      arrow.Update()
      surf = wrap(arrow.GetOutput())
  
      if scale == "auto":
          scale = float(np.linalg.norm(direction))
      if isinstance(scale, (float, int)):
          surf.points *= scale
      elif scale is not None:
          raise TypeError("Scale must be either float, int or 'auto'.")
  
      translate(surf, start, direction)
      return surf
  
imports: from itertools import product
  import numpy
  import pyvista
  from pyvista.core import _vtk_core
  from .arrays import _coerce_pointslike_arg
  from .geometric_sources import ConeSource, CylinderSource, MultipleLinesSource, Text3DSource, translate
  from .helpers import wrap
  from .misc import check_valid_vector
label_desc: Use image node_id 3 for calling a global function with example usage: Arrow(start, direction, tip_length, tip_radius, tip_resolution, shaft_radius, shaft_resolution, scale) and returns: surf