def generate_splits()

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