parameters: (func, path, exc_info)
docstring: On Windows, the files in .svn are read-only, so when rmtree() tries to
      remove them, an exception is thrown.  We catch that here, remove the
      read-only attribute, and hopefully continue without problems.
docstring_summary: On Windows, the files in .svn are read-only, so when rmtree() tries to
      remove them, an exception is thrown.  We catch that here, remove the
      read-only attribute, and hopefully continue without problems.
docstring_tokens: On Windows the files in . svn are read - only so when rmtree () tries to remove them an exception is thrown . We catch that here remove the read - only attribute and hopefully continue without problems .
function: def rmtree_errorhandler(func, path, exc_info):
      """On Windows, the files in .svn are read-only, so when rmtree() tries to
      remove them, an exception is thrown.  We catch that here, remove the
      read-only attribute, and hopefully continue without problems."""
      # if file type currently read only
      if os.stat(path).st_mode & stat.S_IREAD:
          # convert to read/write
          os.chmod(path, stat.S_IWRITE)
          # use the original function to repeat the operation
          func(path)
          return
      else:
          raise
function_tokens: def rmtree_errorhandler ( func , path , exc_info ) : # if file type currently read only if os . stat ( path ) . st_mode & stat . S_IREAD : # convert to read/write os . chmod ( path , stat . S_IWRITE ) # use the original function to repeat the operation func ( path ) return else : raise