code: def tree(self, path, max_depth, full_path=False, include_stat=False):
          
          for child_level_stat in self.do_tree(path, max_depth, 0, full_path, include_stat):
              yield child_level_stat
docs: DFS generator which starts from a given path and goes up to a max depth.
  
          :param path: path from which the DFS will start
          :param max_depth: max depth of DFS (0 means no limit)
          :param full_path: should the full path of the child node be returned
          :param include_stat: return the child Znode's stat along with the name & level