docs: def visit_Assign(self, node, **kwargs):
          """
          Handles assignments within code.
  
          Variable assignments in Python are used to represent interface
          attributes in addition to basic variables.  If an assignment appears
          to be an attribute, it gets labeled as such for Doxygen.  If a variable
          name uses Python mangling or is just a bed lump, it is labeled as
          private for Doxygen.
          """
          lineNum = node.lineno - 1
          # Assignments have one Doxygen-significant special case:
          # interface attributes.
          match = AstWalker.__attributeRE.match(self.lines[lineNum])
          if match:
              self.lines[lineNum] = '{0}## @property {1}{2}{0}# {3}{2}' \
                  '{0}# @hideinitializer{2}{4}{2}'.format(
                      match.group(1),
                      match.group(2),
                      linesep,
                      match.group(3),
                      self.lines[lineNum].rstrip()
                  )
              if self.options.debug:
                  stderr.write("# Attribute {0.id}{1}".format(node.targets[0],
                                                              linesep))
          if isinstance(node.targets[0], Name):
              match = AstWalker.__indentRE.match(self.lines[lineNum])
              indentStr = match and match.group(1) or ''
              restrictionLevel = self._checkMemberName(node.targets[0].id)
              if restrictionLevel:
                  self.lines[lineNum] = '{0}## @var {1}{2}{0}' \
                      '# @hideinitializer{2}{0}# @{3}{2}{4}{2}'.format(
                          indentStr,
                          node.targets[0].id,
                          linesep,
                          restrictionLevel,
                          self.lines[lineNum].rstrip()
                      )
          # Visit any contained nodes.
          self.generic_visit(node, containingNodes=kwargs['containingNodes'])