code: def recurse_tree(rootpath, excludes, opts):
      # type: (unicode, List[unicode], Any) -> List[unicode]
      
      if INITPY in os.listdir(rootpath):
          path_prefix = path.sep.join(rootpath.split(path.sep)[:-1])
      else:
          path_prefix = rootpath
  
      toplevels = []
      followlinks = getattr(opts, 'followlinks', False)
      includeprivate = getattr(opts, 'includeprivate', False)
      implicit_namespaces = getattr(opts, 'implicit_namespaces', False)
      for root, subs, files in walk(rootpath, followlinks=followlinks):
          # document only Python module files (that aren't excluded)
          py_files = sorted(f for f in files
                            if path.splitext(f)[1] in PY_SUFFIXES and
                            not is_excluded(path.join(root, f), excludes))
          is_pkg = INITPY in py_files
          if is_pkg:
              py_files.remove(INITPY)
              py_files.insert(0, INITPY)
          elif root != rootpath:
              # only accept non-package at toplevel unless using implicit
              # namespaces
              if not implicit_namespaces:
                  del subs[:]
                  continue
          # remove hidden ('.') and private ('_') directories, as well as
          # excluded dirs
          if includeprivate:
              exclude_prefixes = ('.',)  # type: Tuple[unicode, ...]
          else:
              exclude_prefixes = ('.', '_')
          subs[:] = sorted(sub for sub in subs
                           if not sub.startswith(exclude_prefixes) and
                           not is_excluded(path.join(root, sub), excludes))
  
          pkg = root[len(path_prefix):].lstrip(path.sep).replace(path.sep, '.')
          for py_file in py_files:
              if not shall_skip(path.join(root, py_file), opts):
                  if py_file == INITPY:
                      module = ''
                  else:
                      module = path.splitext(py_file)[0]
                  toplevels.append(makename(pkg, module))
  
      return toplevels
docs: Look for every file in the directory tree and create the corresponding
      ReST files.