docs: def set_data(self, data, cl=None, time_offset=0):
          """ Assign data to the workspace.
  
          This function assigns a new data set to the workspace. Doing so invalidates currently fitted VAR models,
          connectivity estimates, and activations.
  
          Parameters
          ----------
          data : array-like, shape = [n_trials, n_channels, n_samples] or [n_channels, n_samples]
              EEG data set
          cl : list of valid dict keys
              Class labels associated with each trial.
          time_offset : float, optional
              Trial starting time; used for labelling the x-axis of time/frequency plots.
  
          Returns
          -------
          self : Workspace
              The Workspace object.
          """
          self.data_ = atleast_3d(data)
          self.cl_ = np.asarray(cl if cl is not None else [None]*self.data_.shape[0])
          self.time_offset_ = time_offset
          self.var_model_ = None
          self.var_cov_ = None
          self.connectivity_ = None
  
          self.trial_mask_ = np.ones(self.cl_.size, dtype=bool)
  
          if self.unmixing_ is not None:
              self.activations_ = dot_special(self.unmixing_.T, self.data_)
  
          return self