code: def dump(self, out=sys.stdout, row_fn=repr, limit=-1, indent=0):
          
          NL = '\n'
          if indent:
              out.write("  "*indent + self.pivot_key_str())
          else:
              out.write("Pivot: %s" % ','.join(self._pivot_attrs))
          out.write(NL)
          if self.has_subtables():
              do_all(sub.dump(out, row_fn, limit, indent+1) for sub in self.subtables if sub)
          else:
              if limit >= 0:
                  showslice = slice(0, limit)
              else:
                  showslice = slice(None, None)
              do_all(out.write("  "*(indent+1) + row_fn(r) + NL) for r in self.obs[showslice])
          out.flush()
docs: Dump out the contents of this table in a nested listing.
             @param out: output stream to write to
             @param row_fn: function to call to display individual rows
             @param limit: number of records to show at deepest level of pivot (-1=show all)
             @param indent: current nesting level