class_docstr: Split the dataset into `num_parts` parts and randomly sample from the part
  with index `part_index`.
  The data is randomly shuffled at each iteration within each partition.
  
  Parameters
  ----------
  length
      Number of examples in the dataset
  num_parts
      Number of partitions which the data is split into
  part_index
      The index of the part to read from
  even_size
      If the number of samples is not even across all partitions, sample a few extra samples
      for the ones with fewer samples.
  repeat
      The number of times that items are repeated.
  shuffle
      Whether or not to shuffle the items.
class_docstr_tok: ["Split","the","dataset","into","`","num_parts","`","parts","and","randomly","sample","from","the","part","with","index","`","part_index","`",".","The","data","is","randomly","shuffled","at","each","iteration","within","each","partition",".","Parameters","--","--","--","--","--","length","Number","of","examples","in","the","dataset","num_parts","Number","of","partitions","which","the","data","is","split","into","part_index","The","index","of","the","part","to","read","from","even_size","If","the","number","of","samples","is","not","even","across","all","partitions",",","sample","a","few","extra","samples","for","the","ones","with","fewer","samples",".","repeat","The","number","of","times","that","items","are","repeated",".","shuffle","Whether","or","not","to","shuffle","the","items","."]
code: def __iter__(self):
      # Extract examples between `start` and `end`, shuffle and return them.
      file_iter = []
      for _ in range(self._repeat):
          indices = list(range(self._start, self._end))
          if self.even_size and len(indices) < self._len:
              # guaranteed to have part_len number of samples
              candidates = list(range(self._total_length))
              extras = random.sample(
                  candidates, k=self._len - len(indices)
              )
              indices.extend(extras)
          if self._shuffle:
              random.shuffle(indices)
          file_iter.extend(indices)
      return iter(file_iter)
  
imports: import math
  import random
  import warnings
  import numpy
  import abc
  import logging
  from typing import Union, Sequence, Optional, List
  from ..base import INT_TYPES
label_desc: Use image node_id 2 for calling the SplitSampler obj's underlying member method code with example usage: obj.__iter__() and returns: iter