docs: def pretty_list(rtlst, header, sortBy=0, borders=False):
      """Pretty list to fit the terminal, and add header"""
      if borders:
          _space = "|"
      else:
          _space = "  "
      # Windows has a fat terminal border
      _spacelen = len(_space) * (len(header) - 1) + (10 if WINDOWS else 0)
      _croped = False
      # Sort correctly
      rtlst.sort(key=lambda x: x[sortBy])
      # Append tag
      rtlst = header + rtlst
      # Detect column's width
      colwidth = [max([len(y) for y in x]) for x in zip(*rtlst)]
      # Make text fit in box (if required)
      width = get_terminal_width()
      if conf.auto_crop_tables and width:
          width = width - _spacelen
          while sum(colwidth) > width:
              _croped = True
              # Needs to be cropped
              # Get the longest row
              i = colwidth.index(max(colwidth))
              # Get all elements of this row
              row = [len(x[i]) for x in rtlst]
              # Get biggest element of this row: biggest of the array
              j = row.index(max(row))
              # Re-build column tuple with the edited element
              t = list(rtlst[j])
              t[i] = t[i][:-2] + "_"
              rtlst[j] = tuple(t)
              # Update max size
              row[j] = len(t[i])
              colwidth[i] = max(row)
      if _croped:
          log_runtime.info("Table cropped to fit the terminal (conf.auto_crop_tables==True)")  # noqa: E501
      # Generate padding scheme
      fmt = _space.join(["%%-%ds" % x for x in colwidth])
      # Append separation line if needed
      if borders:
          rtlst.insert(1, tuple("-" * x for x in colwidth))
      # Compile
      rt = "\n".join(((fmt % x).strip() for x in rtlst))
      return rt