'Generate a member listing, autosummary:: table where possible,
and a table where not.'

def _str_member_list(self, name):

    out = []
    if self[name]:
        out += [('..    rubric::    %s' % name), '']
        prefix = getattr(self, '_name', '')
        if prefix:
            prefix = ('~%s.' % prefix)
        others = []
        for (param, param_type, desc) in self[name]:
            param = param.strip()
            param_obj = getattr(self._obj, param, None)
            if (not (callable(param_obj) or isinstance(param_obj, property) or inspect.isgetsetdescriptor(param_obj))):
                param_obj = None
            others.append((param, param_type, desc))
        if others:
            maxlen_0 = max(3, max([len(x[0]) for x in others]))
            hdr = (((sixu('=') * maxlen_0) + sixu('        ')) + (sixu('=') * 10))
            fmt = (sixu('%%%ds        %%s        ') % (maxlen_0,))
            out += ['', '', hdr]
            for (param, param_type, desc) in others:
                desc = sixu('    ').join((x.strip() for x in desc)).strip()
                if param_type:
                    desc = ('(%s)    %s' % (param_type, desc))
                out += [(fmt % (param.strip(), desc))]
            out += [hdr]
        out += ['']
    return out
