docs: def _preprocess_Y(self, Y, k=None):
          """Convert Y to t-length list of probabilistic labels if necessary"""
          # If not a list, convert to a singleton list
          if not isinstance(Y, list):
              if self.t != 1:
                  msg = "For t > 1, Y must be a list of n-dim or [n, K_t] tensors"
                  raise ValueError(msg)
              Y = [Y]
  
          if not len(Y) == self.t:
              msg = f"Expected Y to be a t-length list (t={self.t}), not {len(Y)}"
              raise ValueError(msg)
  
          return [EndModel._preprocess_Y(self, Y_t, self.K[t]) for t, Y_t in enumerate(Y)]