def tabulate(self, n=None, headers=(), tablefmt="simple", floatfmt="g", numalign="decimal",
                 stralign="left", missingval=""):
        """
        Return pretty string table of first n rows of sequence or everything if n is None. See
        https://bitbucket.org/astanin/python-tabulate for details on tabulate parameters

        :param n: Number of rows to show, if set to None return all rows
        :param headers: Passed to tabulate
        :param tablefmt: Passed to tabulate
        :param floatfmt: Passed to tabulate
        :param numalign: Passed to tabulate
        :param stralign: Passed to tabulate
        :param missingval: Passed to tabulate
        """
        self.cache()
        length = self.len()
        if length == 0 or not is_tabulatable(self[0]):
            return None

        if n is None or n >= length:
            rows = self.list()
            message = ''
        else:
            rows = self.take(n).list()
            if tablefmt == 'simple':
                message = '\nShowing {} of {} rows'.format(n, length)
            elif tablefmt == 'html':
                message = '<p>Showing {} of {} rows'.format(n, length)
            else:
                message = ''
        if len(headers) == 0 and is_namedtuple(rows[0]):
            headers = rows[0]._fields
        return tabulate(rows, headers=headers, tablefmt=tablefmt, floatfmt=floatfmt,
                        numalign=numalign, stralign=stralign, missingval=missingval) + message
def tabulate ( self , n = None , headers = ( ) , tablefmt = "simple" , floatfmt = "g" , numalign = "decimal" , stralign = "left" , missingval = "" ) : self . cache ( ) length = self . len ( ) if length == 0 or not is_tabulatable ( self [ 0 ] ) : return None if n is None or n >= length : rows = self . list ( ) message = '' else : rows = self . take ( n ) . list ( ) if tablefmt == 'simple' : message = '\nShowing {} of {} rows' . format ( n , length ) elif tablefmt == 'html' : message = '<p>Showing {} of {} rows' . format ( n , length ) else : message = '' if len ( headers ) == 0 and is_namedtuple ( rows [ 0 ] ) : headers = rows [ 0 ] . _fields return tabulate ( rows , headers = headers , tablefmt = tablefmt , floatfmt = floatfmt , numalign = numalign , stralign = stralign , missingval = missingval ) + message
Return pretty string table of first n rows of sequence or everything if n is None. See
        https://bitbucket.org/astanin/python-tabulate for details on tabulate parameters

        :param n: Number of rows to show, if set to None return all rows
        :param headers: Passed to tabulate
        :param tablefmt: Passed to tabulate
        :param floatfmt: Passed to tabulate
        :param numalign: Passed to tabulate
        :param stralign: Passed to tabulate
        :param missingval: Passed to tabulate