code: def header(headers, width=WIDTH, align=ALIGN, style=STYLE, add_hr=True):
      
      tablestyle = STYLES[style]
      widths = parse_width(width, len(headers))
      alignment = ALIGNMENTS[align]
  
      # string formatter
      data = map(lambda x: ('{:%s%d}' % (alignment, x[0] + ansi_len(x[1]))).format(x[1]), zip(widths, headers))
  
      # build the formatted str
      headerstr = format_line(data, tablestyle.row)
  
      if add_hr:
          upper = hrule(len(headers), widths, tablestyle.top)
          lower = hrule(len(headers), widths, tablestyle.below_header)
          headerstr = '\n'.join([upper, headerstr, lower])
  
      return headerstr
docs: Returns a formatted row of column header strings
  
      Parameters
      ----------
      headers : list of strings
          A list of n strings, the column headers
  
      width : int
          The width of each column (Default: 11)
  
      style : string or tuple, optional
          A formatting style (see STYLES)
  
      Returns
      -------
      headerstr : string
          A string consisting of the full header row to print