Purpose of the project¶
This library is a very thin wrapper around
lib2to3 to utilize it
to make Python 2 code more modern with the intention of eventually
porting it over to Python 3.
python-modernize command works like 2to3. Here’s how you’d rewrite a
python-modernize -w example.py
LICENSE file for the license of
Using this tool does not affect licensing of the modernized code.
The project website can be found on GitHub and the PyPI project name is modernize
A note about handling text literals¶
- By default modernize does not change Unicode literals at all, which means that you can take advantage of PEP 414. This is the simplest option if you only want to support Python 3.3 and above along with Python 2.
- Alternatively, there is the
--six-unicodeflag which will wrap Unicode literals with the six helper function
libmodernize.fixes.fix_unicodefixer. This is useful if you want to support Python 3.1 and Python 3.2 without bigger changes.
- The last alternative is the
--future-unicodeflag which imports the
__future__module using the
libmodernize.fixes.fix_unicode_futurefixer. This requires Python 2.6 and later, and will require that you mark bytestrings with
b''and native strings in
str('')or something similar that survives the transformation.