The following attributes on functions in Python 3 are not provided in Python 2.7:
__func__: see six.get_method_function() __self__: see six.get_method_self() __self__.__class__
The futurize script is not yet mature; like 2to3, on which it is based, it makes mistakes. Nevertheless, it should be useful for automatically performing a lot of the repetitive code-substitution tasks when porting from Py2 to Py2/3.
Some new Python 3.3 features that cause SyntaxErrors on earlier versions are not currently handled by the futurize script. This includes:
Also:
Usage of file('myfile', 'w') as a synonym for open doesn’t seem to be converted currently.
isinstance(var, basestring) should sometimes be converted to isinstance(var, str) or isinstance(var, bytes), or sometimes simply isinstance(var, str), depending on the context. Currently it is always converted to isinstance(var, str).
Caveats with bytes indexing!:
b'\x00'[0] != 0
b'\x01'[0] != 1
futurize does not yet wrap all byte-string literals in a bytes() call. This is on the to-do list. See bytes for more information.