code: def get(self, exclude_recurse=None):
          
          reqs = Queue()
          pending = 1
          path = self.path
          zk = self.zk
  
          def child_of(path):
              return zk.get_children_async(path)
  
          def dispatch(path):
              return Request(path, child_of(path))
  
          stat = zk.exists(path)
          if stat is None or stat.numChildren == 0:
              return
  
          reqs.put(dispatch(path))
  
          while pending:
              req = reqs.get()
  
              try:
                  children = req.value
                  for child in children:
                      cpath = os.path.join(req.path, child)
                      if exclude_recurse is None or exclude_recurse not in child:
                          pending += 1
                          reqs.put(dispatch(cpath))
                      yield cpath
              except (NoNodeError, NoAuthError): pass
  
              pending -= 1
docs: Paths matching exclude_recurse will not be recursed.