def __init__(self, fraction_list, subset_index, predicate_field):
        """ split_list: a list of log fractions (real numbers in range [0:1])
            subset_index: define which subset will be used by the Reader
        """
        if subset_index >= len(fraction_list):
            raise ValueError('subset_index is out of range')
        self._predicate_field = predicate_field
        # build CDF
        subsets_high_borders = [sum(fraction_list[:i + 1]) for i in range(len(fraction_list))]
        if subset_index:
            fraction_low = subsets_high_borders[subset_index - 1]
        else:
            fraction_low = 0
        fraction_high = subsets_high_borders[subset_index]
        self._bucket_low = fraction_low * (sys.maxsize - 1)
        self._bucket_high = fraction_high * (sys.maxsize - 1)
 split_list: a list of log fractions (real numbers in range [0:1])
            subset_index: define which subset will be used by the Reader
        
petastorm/predicates.py