Commit 7a18d212 authored by Antoine Pitrou's avatar Antoine Pitrou

Remove misleading comment and code.

Windows does set the errno attribute to ENOENT, but the error message
displays the Windows error number (3 -> ERROR_PATH_NOT_FOUND), not the
errno number (2 -> ENOENT).
The Unix errno corresponding to 3 is ESRCH, explaining the confusion,
which can be seen in the following snippet:

>>> shutil.rmtree("foo")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "Z:\default\lib\shutil.py", line 272, in rmtree
    onerror(os.listdir, path, sys.exc_info())
  File "Z:\default\lib\shutil.py", line 270, in rmtree
    names = os.listdir(path)
WindowsError: [Error 3] The system cannot find the path specified:
'foo\\*.*'
>>> e = sys.last_value
>>> e.errno
2
>>> e.winerror
3
>>> errno.errorcode[2]
'ENOENT'

For reference, see PC/errmap.h and
http://msdn.microsoft.com/en-us/library/ms681382%28v=vs.85%29.aspx
parent 9e1599ad
......@@ -212,8 +212,7 @@ def rmtree(path):
try:
shutil.rmtree(path)
except OSError as error:
# Unix returns ENOENT, Windows returns ESRCH.
if error.errno not in (errno.ENOENT, errno.ESRCH):
if error.errno != errno.ENOENT:
raise
def make_legacy_pyc(source):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment