class_docstr: Splitter needs providing some parameters to create folds and some "reader",
  that can read source.
class_docstr_tok: ["Splitter","needs","providing","some","parameters","to","create","folds","and","some","``","reader","''",",","that","can","read","source","."]
docstr: Prepare test sets for folds only for one permutation
docstr_tok: ["Prepare","test","sets","for","folds","only","for","one","permutation"]
code: def _make_learn_folds(self, fold_size, left_folds):
      """Prepare test sets for folds only for one permutation"""
      count_groups = len(self._groups_ids)
      if count_groups // self._min_folds_count < fold_size:
          raise AttributeError(
              "The size of fold is too big: count_groups: {}, fold_size: {}. Const: {}".format(
                  count_groups, fold_size, self._min_folds_count
              )
          )
  
      permutation = sorted(self._groups_ids)
      self._random.shuffle(permutation)
  
      result = []
      current_count_folds = min(count_groups // fold_size, left_folds)
      for i in range(current_count_folds):
          result.append(
              set(permutation[i * fold_size : (i + 1) * fold_size])
          )
      return result
  
file_path: catboost/catboost/python-package/catboost/eval/_splitter.py
imports: import random
  from ._fold_storage import FoldStorage
  from ._fold_storage import _FoldFile
label_desc: Use image node_id 3 for calling the _Splitter obj's underlying member method code with example usage: obj._make_learn_folds(fold_size, left_folds) and returns: result