Martin Panter added the comment:

Hopefully revision cb554248ce54 is good enough to close this. The documentation 
now says

'''
The constructor often actually returns a subclass of OSError, as described in 
“OS exceptions” below. The particular subclass depends on the final “errno” 
value. This behaviour only occurs when constructing OSError directly or via an 
alias, and is not inherited when subclassing.
'''

Serhiy’s first case does not set the “errno” attribute (by design I assume). In 
the second case, I suspect the behaviour has changed since 2012, or it depends 
on the platform. On Windows, the 'spam' argument is meant to become “winerror”, 
which can override “errno” if it is an integer. 3.6 on Linux:

>>> OSError(errno.ENOENT, 'error msg', 'filename', 'spam')
FileNotFoundError(2, 'error msg')

----------
resolution:  -> fixed
stage: needs patch -> resolved
status: open -> closed

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue16785>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to