code: def at_depth(self, depth):
          
  
          for child in list(self.children):
              if depth == 0:
                  yield child
              else:
                  for grandchild in child.at_depth(depth - 1):
                      yield grandchild
docs: Returns a generator yielding all nodes in the tree at a specific depth
  
          :param depth:
              An integer >= 0 of the depth of nodes to yield
  
          :return:
              A generator yielding PolicyTreeNode objects