Known py3 difficulties:
py3 apparently can't speak HTTP.
Need to change the default content-type to not be text/plain. Note that mimetools no longer exists under py3.
On Python platforms where the
StringTypetype is in fact Unicode-based (e.g. Jython, IronPython, Python 3, etc.), all "strings" referred to in this specification must contain only code points representable in ISO-8859-1 encoding (
\u00FF, inclusive). It is a fatal error for an application to supply strings containing any other Unicode character or code point.
... but swift requires UTF-8 headers for accounts/containers. So we'll need to intentionally mangle a whole lot of strings. And we'll need to worry about whether third-party middlewares are using utf-8 or utf-8-masquerading-as-latin-1 strings.
socket._fileobject isn't a thing under py3. Maybe it'd work to set eventlet.wsgi.HttpProtocol.rbufsize / eventlet.wsgi.HttpProtocol.wbufsize instead?
socket._socketobject isn't a thing under py3.