docs: def list_subfolders(project, path, recurse=True):
      '''
      :param project: Project ID to use as context for the listing
      :type project: string
      :param path: Subtree root path
      :type path: string
      :param recurse: Return a complete subfolders tree
      :type recurse: boolean
  
      Returns a list of subfolders for the remote *path* (included to the result) of the *project*.
  
      Example::
  
          list_subfolders("project-xxxx", folder="/input")
  
      '''
      project_folders = dxpy.get_handler(project).describe(input_params={'folders': True})['folders']
      # TODO: support shell-style path globbing (i.e. /a*/c matches /ab/c but not /a/b/c)
      # return pathmatch.filter(project_folders, os.path.join(path, '*'))
      if recurse:
          return (f for f in project_folders if f.startswith(path))
      else:
          return (f for f in project_folders if f.startswith(path) and '/' not in f[len(path)+1:])