code: def get_tree_members(self):
          
  
          members = []
          queue = deque()
          queue.appendleft(self)
          visited = set()
  
          while len(queue):
              node = queue.popleft()
  
              if node not in visited:
                  members.extend(node.get_member_info())
                  queue.extendleft(node.get_children())
                  visited.add(node)
  
          return [{attribute: member.get(attribute) for attribute in self.attr_list} for member in members if member]
docs: Retrieves all members from this node of the tree down.