docs: def perform_smooth(x_values, y_values, span=None, smoother_cls=None):
      """
      Convenience function to run the basic smoother.
  
      Parameters
      ----------
      x_values : iterable
          List of x value observations
      y_ values : iterable
          list of y value observations
      span : float, optional
          Fraction of data to use as the window
      smoother_cls : Class
          The class of smoother to use to smooth the data
  
      Returns
      -------
      smoother : object
          The smoother object with results stored on it.
      """
      if smoother_cls is None:
          smoother_cls = DEFAULT_BASIC_SMOOTHER
      smoother = smoother_cls()
      smoother.specify_data_set(x_values, y_values)
      smoother.set_span(span)
      smoother.compute()
      return smoother