code: def push(self, node):
          
          name = self.lookupname
          if (node, name) in self.path:
              return True
  
          self.path.add((node, name))
          return False
docs: Push node into inference path
  
          :return: True if node is already in context path else False
          :rtype: bool
  
          Allows one to see if the given node has already
          been looked at for this inference context