code: def row_table(cls, d, order=None, labels=None):
          
          # header
          header = list(d)
          x = PrettyTable(labels)
          if order is None:
              order = header
          for key in order:
              value = d[key]
              if type(value) == list:
                  x.add_row([key, value[0]])
                  for element in value[1:]:
                      x.add_row(["", element])
              elif type(value) == dict:
                  value_keys = list(value)
                  first_key = value_keys[0]
                  rest_keys = value_keys[1:]
                  x.add_row(
                      [key, "{0} : {1}".format(first_key, value[first_key])])
                  for element in rest_keys:
                      x.add_row(["", "{0} : {1}".format(element, value[element])])
              else:
                  x.add_row([key, value])
  
          x.align = "l"
          return x
docs: prints a pretty table from data in the dict.
          :param d: A dict to be printed
          :param order: The order in which the columns are printed.
                        The order is specified by the key names of the dict.
          :param labels: The array of labels for the column