This will extract the return type for list of lists so that the
        repr can display the header.
        :param doc:  str of the function doc
        :return      dict of {func.__name__:{'api_type':'type','col_name':[],
                                             'col_type':[],'repr_type':None}}

def _parse_function_return_types_from_doc(cls, doc):
        """
        This will extract the return type for list of lists so that the
        repr can display the header.
        :param doc:  str of the function doc
        :return      dict of {func.__name__:{'api_type':'type','col_name':[],
                                             'col_type':[],'repr_type':None}}
        """
        data = dict(name='', col_types=[], col_names=[], _type=None)
        if doc:
            return_doc = __doc__.split(':return')[-1].strip()
            data['name'] = return_doc.split(':')[0]
            if data['name'].startswith('list of'):
                if data['name'].endswith('LIST'):
                    data['_type'] = 'list_list'
                    for row in return_doc.split('\n')[3:]:
                        index, col_type, col_name = row.split(None, 2)
                        assert (index == str(index))
                        data['col_types'].append(col_type)
                        data['col_names'].append(col_name.split()[0])
        return data