code: def make_attribute_list(self, node):
          
          atr_nodes = []
          for n in self.get_specific_subnodes(node, 'memberdef', recursive=2):
              if n.attributes['kind'].value == 'variable' and n.attributes['prot'].value == 'public':
                  atr_nodes.append(n)
          if not atr_nodes:
              return
          self.add_text(['\n', 'Attributes',
                         '\n', '----------'])
          for n in atr_nodes:
              name = self.extract_text(self.get_specific_subnodes(n, 'name'))
              self.add_text(['\n* ', '`', name, '`', ' : '])
              self.add_text(['`', self.extract_text(self.get_specific_subnodes(n, 'type')), '`'])
              self.add_text('  \n')
              restrict = ['briefdescription', 'detaileddescription']
              self.subnode_parse(n, pieces=[''], indent=4, restrict=restrict)
docs: Produces the "Attributes" section in class docstrings for public
          member variables (attributes).