﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
30137	Replace use of OSError aliases with OSError (IOError, EnvironmentError, WindowsError, mmap.error, socket.error, select.error)	Jon Dufresne	nobody	"Starting with Python 3.3, `EnvironmentError`, `IOError`, `WindowsError`, `socket.error`, `select.error` and `mmap.error` are aliases of `OSError`. With this in mind, the Django code base can be cleaned up.

For additional details, see the Python 3.3 release notes:

https://docs.python.org/3/whatsnew/3.3.html#pep-3151-reworking-the-os-and-io-exception-hierarchy

> You don’t have to worry anymore about choosing the appropriate exception type between `OSError`, `IOError`, `EnvironmentError`, `WindowsError`, `mmap.error`, `socket.error` or `select.error`. All these exception types are now only one: `OSError`. The other names are kept as aliases for compatibility reasons.

Additionally,  since Python 3.4, `SMTPException` is subclass of `OSError` . So exception handles catching both can be simplified to just `OSError`.

https://docs.python.org/3/library/smtplib.html#smtplib.SMTPException

> Subclass of `OSError` that is the base exception class for all the other exceptions provided by this module.
>
> Changed in version 3.4: SMTPException became subclass of OSError
"	Cleanup/optimization	closed	Uncategorized	dev	Normal	fixed			Ready for checkin	1	0	0	0	0	0
