in dataflux_core/range_splitter.py [0:0]
def generate_splits(self, opts: GenerateSplitsOpts) -> Sequence[str]:
"""Generates a list of split points.
Args:
opts (GenerateSplitOpts): Set of options for generating splitpoints
Returns:
A list of split points.
"""
start_int = opts.min_int_range.start_int
end_int = opts.min_int_range.end_int
min_len = opts.min_int_range.min_len
range_diff = end_int - start_int
split_points = []
range_interval = opts.num_splits + 1
adjustment = Fraction(range_diff / range_interval)
for i in range(1, opts.num_splits + 1):
split_point = start_int + adjustment * i
split_string = self.int_to_string(int(split_point), min_len)
is_greater_than_start = (len(split_string) > 0
and split_string > opts.start_range)
is_less_than_end = len(
opts.end_range) == 0 or (len(split_string) > 0
and split_string < opts.end_range)
if is_greater_than_start and is_less_than_end:
split_points.append(split_string)
return split_points