code: def print_(rows, limit=15, sort='size', order='descending'):
      localrows = []
      for row in rows:
          localrows.append(list(row))
      sortby = ['type', '
      if sort not in sortby:
          raise ValueError("invalid sort, should be one of" + str(sortby))
      orders = ['ascending', 'descending']
      if order not in orders:
          raise ValueError("invalid order, should be one of" + str(orders))
      if sortby.index(sort) == 0:
          if order == "ascending":
              localrows.sort(key=lambda x: _repr(x[0]))
          elif order == "descending":
              localrows.sort(key=lambda x: _repr(x[0]), reverse=True)
      else:
          if order == "ascending":
              localrows.sort(key=lambda x: x[sortby.index(sort)])
          elif order == "descending":
              localrows.sort(key=lambda x: x[sortby.index(sort)], reverse=True)
      localrows = localrows[0:limit]
      for row in localrows:
          row[2] = stringutils.pp(row[2])
      localrows.insert(0,["types", "
      _print_table(localrows)