mitsuhiko/werkzeug — pull request #231 by puzzlet (2012-11-01 18:18:22+00:00)
Title: now works with 2to3, passes all the test in py25-27,31,32

This branch enables Werkzeug to work with `2to3`, passing all the tests in py25-27 and py31-32. (The Werkzeug's [web page](http://werkzeug.pocoo.org/) says it supports Python 2.4, but it depends on newer libraries like `hashlib` already, so I thought 2.5 would be fair.)

Small incompatibilities that might affect Python 2 users:
- `MapAdapter.match()` and `MapAdapter.dispatch()` now has separate arguments for path: `path` and `path_info`.
- This is due to the newer WSGI standard for Python 3. the WSGI servers give `environ['PATH_INFO']` to applications as bytestrings decoded in `latin1` (hence unicode strings) . On the other hand, web applications, internally, would just use "strings" (which are also unicode strings) to pass around their path informations. So we use two kinds of (unicode) strings to specify web locations, one is in bytes-like representation and another one is a normal form. To distinguish them, we name them `path_info` and `path` respectively.
- There should be no problem for average cases, since many codes (including tutorials) have used the library with `path_info` (in older sense) as a positional argument, and `path_info` (in newer sense) is almost used internally in Werkzeug codes only.
- Some functions could be more grumpy about passing `str` and `unicode` to their arguments.