This is the output of python-modernize.

python-modernize -w --compat-unicode .
Fix some obvious things modernize doesn't do.

Like urlparse imports, basestring references, metaclasses etc.
Fix StringIO imports, views/iterator access, cmp.
Fix some unicode issues.

This assumes a unicode string as the internal format. Filters will receive a BytesIO.
Close file properly in test framework.

Gets rid of hundred of warnings.
Port ExternalTool metaclass syntax.
Fix more StringIO imports.
Fix nose yielding classes on Py3.

This seems to be this issue:

http://stackoverflow.com/questions/15281881/nose-generator-for-testcase-based-classes
Merge branch 'master' into python3

Conflicts:
	src/webassets/filter/compass.py
	tests/test_filters.py
Assortment of Python 3 work.
Make working_directory helper handle exceptions.
Assortment of Python 3 changes.
Output of cleancss has changed.
Ported cache system to Python 3.

I changed the API for this; before, the filesystem cache tried to
write strings directly, and only pickled other types, and required
some help from the caller on get() to know whether to unpickle.

Apart from being confusing, this was also a bit of a mindfuck trying
to make it work both on Python 2 and 3 (which is not to say it wouldn't
have been possible).

I've changed the BaseCache API a bit, and the filesystem cache now
simply pickles everything.
More Python 3 porting.
TypeScript, CoffeeScript output has changed.
Note forgotten npm dependencies in requirements.
assertEquals is dprecated in Python 3.
Jinja2 no longer has TokenStream.next().
More Python 3 work.