Python _ _
_ __ ___ __| |___ _ _ _ _ (_)______
| ' \/ _ \/ _` / -_) '_| ' \| |_ / -_)
|_|_|_\___/\__,_\___|_| |_||_|_/__\___|
Modernize is a Python program that reads Python 2 source code and applies a series of fixers to transform it into source code that is valid on both Python 3 and Python 2.7.
This allows you to run your test suite on Python 2.7 and Python 3 so you can gradually port your code to being fully Python 3 compatible without slowing down development of your Python 2 project.
The python -m modernize
command works like python -m fissix
, see fissix. Here's how you'd rewrite a single file:
python -m modernize -w example.py
It does not guarantee, but it attempts to spit out a codebase compatible with Python 2.6+ or Python 3. The code that it generates has a runtime dependency on six, unless the --no-six
option is used. Version 1.9.0 or later of six
is recommended. Some of the fixers output code that is not compatible with Python 2.5 or lower.
Once your project is ready to run in production on Python 3 it's recommended to drop Python 2.7 support using pyupgrade
Documentation: modernize.readthedocs.io.
See the LICENSE
file for the license of modernize
. Using this tool does not affect licensing of the modernized code.
This library is a very thin wrapper around fissix, a fork of lib2to3.