def remove(self):
if not self.can_remove():<EOL><INDENT>raise AttributeError('<STR_LIT>')<EOL><DEDENT>data = self.data<EOL>self.parents.remove(self)<EOL>self.delete()<EOL>return data<EOL>
Removes the node from the graph.  Note this does not remove the
        associated data object.  See :func:`Node.can_remove` for limitations
        on what can be deleted.

        :returns: 
            :class:`BaseNodeData` subclass associated with the deleted Node

        :raises AttributeError:
           if called on a ``Node`` that cannot be deleted