code: def pprint(sequence, keys=None):
      
      if len(sequence) > 0:
          columns = calculate_columns(sequence)
          row_format = calculate_row_format(columns, keys)
          header = row_format % dict([(key, key.title()) for key in columns])
          separator = row_format % dict([(key, '-' * columns[key]) for key in columns])
  
          print(separator)
          print(header)
          print(separator)
  
          for row in sequence:
              print(row_format % row)
  
          print(separator)
docs: Print sequence as ascii table to stdout.
  
      Args:
          sequence (list or tuple): a sequence with a dictionary each entry.
          keys (list): optional list of keys to order columns as well as to filter for them.