docs: def set_bg(self, dataset):
          """Set background data
  
          Parameters
          ----------
          dataset: `DataSet`, `qpimage.QPImage`, or int
              If the ``len(dataset)`` matches ``len(self)``,
              then background correction is performed
              element-wise. Otherwise, ``len(dataset)``
              must be one and is used for all data of ``self``.
  
          See Also
          --------
          get_qpimage: obtain the background corrected QPImage
          """
          if isinstance(dataset, qpimage.QPImage):
              # Single QPImage
              self._bgdata = [dataset]
          elif (isinstance(dataset, list) and
                len(dataset) == len(self) and
                isinstance(dataset[0], qpimage.QPImage)):
              # List of QPImage
              self._bgdata = dataset
          elif (isinstance(dataset, SeriesData) and
                (len(dataset) == 1 or
                 len(dataset) == len(self))):
              # DataSet
              self._bgdata = dataset
          else:
              raise ValueError("Bad length or type for bg: {}".format(dataset))
  
          self.background_identifier = self._compute_bgid()