code: def Spline(points, n_points=None):
      """Create a spline from points.
  
      Parameters
      ----------
      points : numpy.ndarray
          Array of points to build a spline out of.  Array must be 3D
          and directionally ordered.
  
      n_points : int, optional
          Number of points to interpolate along the points array. Defaults to
          ``points.shape[0]``.
  
      Returns
      -------
      pyvista.PolyData
          Line mesh of spline.
  
      Examples
      --------
      Construct a spline.
  
      >>> import numpy as np
      >>> import pyvista as pv
      >>> theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
      >>> z = np.linspace(-2, 2, 100)
      >>> r = z**2 + 1
      >>> x = r * np.sin(theta)
      >>> y = r * np.cos(theta)
      >>> points = np.column_stack((x, y, z))
      >>> spline = pv.Spline(points, 1000)
      >>> spline.plot(
      ...     render_lines_as_tubes=True,
      ...     line_width=10,
      ...     show_scalar_bar=False,
      ... )
  
      """
      spline_function = _vtk.vtkParametricSpline()
      spline_function.SetPoints(pyvista.vtk_points(points, False))
  
      # get interpolation density
      u_res = n_points
      if u_res is None:
          u_res = points.shape[0]
  
      u_res -= 1
      spline = surface_from_para(spline_function, u_res)
      return spline.compute_arc_length()
  
imports: from math import pi
  import warnings
  import numpy
  import pyvista
  from pyvista.core import _vtk_core
  from pyvista.core.errors import PyVistaDeprecationWarning
  from .geometric_objects import translate
  from .helpers import wrap
  from .misc import check_valid_vector
label_desc: Use image node_id 1 for calling a global function with example usage: Spline(points, n_points) and returns: spline