docs: def _split(self, iterator, tmp_dir):
          """
          Splits the file into several chunks.
  
          If the original file is too big to fit in the allocated space, the sorting will be split into several chunks,
          then merged.
          :param tmp_dir: Where to put the intermediate sorted results.
          :param orig_lines: The lines read before running out of space.
          :return: The names of the intermediate files.
          """
          fnames = []
          for i, lines in enumerate(iterator):
              lines = list(lines)
              out_fname = os.path.join(tmp_dir, self.TMP_FNAME.format(i + 1))
              self._write(lines, out_fname)
              fnames.append(out_fname)
              if len(lines) < self.max_lines:
                  break
          return fnames