class_docstr: Sliding window time series split.
  
  Create `n_splits` folds with an as equally possible size through a smart variant of a brute force search.
  Groups parameter in `.split()` method should be filled with the time groups (e.g. years)
  
  If `n_splits` is 3 ("*" = train, "x" = test):
  
  ```console
  * * * x x x - - - - -
  - - - * * * x x x - -
  - - - - - - * * * x x
  ```
  
  Parameters
  ----------
  n_splits : int
      Amount of (train, test) splits to generate.
class_docstr_tok: ["Sliding","window","time","series","split",".","Create","`","n_splits","`","folds","with","an","as","equally","possible","size","through","a","smart","variant","of","a","brute","force","search",".","Groups","parameter","in","`",".split","(",")","`","method","should","be","filled","with","the","time","groups","(","e.g",".","years",")","If","`","n_splits","`","is","3","(","``","*","''","=","train",",","``","x","''","=","test",")",":","``","`","console","*","*","*","x","x","x","-","-","-","-","-","-","-","-","*","*","*","x","x","x","-","-","-","-","-","-","-","-","*","*","*","x","x","``","`","Parameters","--","--","--","--","--","n_splits",":","int","Amount","of","(","train",",","test",")","splits","to","generate","."]
docstr: Generate the train-test splits of all the folds
  
  Parameters
  ----------
  X : array-like of shape (n_samples, n_features), default=None
      Data to split.
  y : array-like of shape (n_samples,), default=None
      The target variable for supervised learning problems.
  groups : array-like of shape (n_samples,), default=None
      Group labels for the samples used while splitting the dataset into train/test set,
  
  Returns
  -------
  List[np.ndarray]
      List containing train-test split indices of each fold.
docstr_tok: ["Generate","the","train-test","splits","of","all","the","folds","Parameters","--","--","--","--","--","X",":","array-like","of","shape","(","n_samples",",","n_features",")",",","default=None","Data","to","split",".","y",":","array-like","of","shape","(","n_samples",",",")",",","default=None","The","target","variable","for","supervised","learning","problems",".","groups",":","array-like","of","shape","(","n_samples",",",")",",","default=None","Group","labels","for","the","samples","used","while","splitting","the","dataset","into","train\/test","set",",","Returns","--","--","--","-","List","[","np.ndarray","]","List","containing","train-test","split","indices","of","each","fold","."]
code: def split(self, X=None, y=None, groups=None):
      """Generate the train-test splits of all the folds
  
      Parameters
      ----------
      X : array-like of shape (n_samples, n_features), default=None
          Data to split.
      y : array-like of shape (n_samples,), default=None
          The target variable for supervised learning problems.
      groups : array-like of shape (n_samples,), default=None
          Group labels for the samples used while splitting the dataset into train/test set,
  
      Returns
      -------
      List[np.ndarray]
          List containing train-test split indices of each fold.
      """
      if groups is None:
          raise ValueError("Groups cannot be None")
      X, y, groups = indexable(X, y, groups)
      n_groups = np.unique(groups).shape[0]
      if self.n_splits >= n_groups:
          raise ValueError(
              (
                  "n_splits({0}) must be less than the amount"
                  " of unique groups({1})."
              ).format(self.n_splits, n_groups)
          )
      return list(self._iter_test_indices(X, y, groups))
  
imports: import numbers
  from datetime import timedelta
  from itertools import combinations
  from warnings import warn
  import numpy
  import pandas
  from sklearn.exceptions import NotFittedError
  from sklearn.model_selection._split import _BaseKFold, check_array
  from sklearn.utils.validation import indexable
  from sklego.base import Clusterer
  from sklego.common import sliding_window
label_desc: Use image node_id 3 for calling the GroupTimeSeriesSplit obj's underlying member method code with example usage: obj.split(X, y, groups) and returns: list