From 234d9a9eb390fc0975ca6fe8d010c45642bcdfed Mon Sep 17 00:00:00 2001 From: Barry Warsaw Date: Fri, 24 Jan 2003 17:36:15 +0000 Subject: 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. --- Lib/shutil.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Lib/shutil.py b/Lib/shutil.py index ad5c99d..f161c6a 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): -- cgit v0.12