From: Barry Warsaw Date: Fri, 24 Jan 2003 17:36:15 +0000 (+0000) Subject: rmtree(): Make implementation agree with documentation (both latex and X-Git-Tag: v2.3c1~2345 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=234d9a9eb390fc0975ca6fe8d010c45642bcdfed;p=thirdparty%2FPython%2Fcpython.git rmtree(): Make implementation agree with documentation (both latex and docstring). Even if ignore_errors was true, an exception would occur if path didn't exist. --- diff --git a/Lib/shutil.py b/Lib/shutil.py index ad5c99d38f07..f161c6a53c35 100644 --- a/Lib/shutil.py +++ b/Lib/shutil.py @@ -117,27 +117,27 @@ def copytree(src, dst, symlinks=0): if errors: raise Error, errors -def rmtree(path, ignore_errors=0, onerror=None): +def rmtree(path, ignore_errors=False, onerror=None): """Recursively delete a directory tree. If ignore_errors is set, errors are ignored; otherwise, if onerror is set, it is called to handle the error; otherwise, an exception is raised. - """ cmdtuples = [] - _build_cmdtuple(path, cmdtuples) - for func, arg in cmdtuples: - try: + arg = path + try: + _build_cmdtuple(path, cmdtuples) + for func, arg in cmdtuples: func(arg) - except OSError: - exc = sys.exc_info() - if ignore_errors: - pass - elif onerror is not None: - onerror(func, arg, exc) - else: - raise exc[0], (exc[1][0], exc[1][1] + ' removing '+arg) + except OSError: + exc = sys.exc_info() + if ignore_errors: + pass + elif onerror is not None: + onerror(func, arg, exc) + else: + raise exc[0], (exc[1][0], exc[1][1] + ' removing '+arg) # Helper for rmtree() def _build_cmdtuple(path, cmdtuples):