parameters: (self, topicsMap)
docstring: Unsubscribe all our listeners, remove all subtopics from self,
          then detach from parent. Parent is not notified, because method
          assumes it has been called by parent
docstring_summary: Unsubscribe all our listeners, remove all subtopics from self,
          then detach from parent. Parent is not notified, because method
          assumes it has been called by parent
docstring_tokens: Unsubscribe all our listeners remove all subtopics from self then detach from parent . Parent is not notified because method assumes it has been called by parent
function: def __undefineBranch(self, topicsMap):
          """Unsubscribe all our listeners, remove all subtopics from self,
          then detach from parent. Parent is not notified, because method
          assumes it has been called by parent"""
          #print 'Remove %s listeners (%s)' % (self.getName(), self.getNumListeners())
          self.unsubscribeAllListeners()
          self.__parentTopic = None
  
          for subName, subObj in py2and3.iteritems(self.__subTopics):
              assert isinstance(subObj, Topic)
              #print 'Unlinking %s from parent' % subObj.getName()
              subObj.__undefineBranch(topicsMap)
  
          self.__subTopics = {}
          del topicsMap[self.getName()]
function_tokens: def __undefineBranch ( self , topicsMap ) : #print 'Remove %s listeners (%s)' % (self.getName(), self.getNumListeners()) self . unsubscribeAllListeners ( ) self . __parentTopic = None for subName , subObj in py2and3 . iteritems ( self . __subTopics ) : assert isinstance ( subObj , Topic ) #print 'Unlinking %s from parent' % subObj.getName() subObj . __undefineBranch ( topicsMap ) self . __subTopics = { } del topicsMap [ self . getName ( ) ]