Skip to content

Modernizes Python code for eventual Python 3 migration. Built on top of fissix (a fork of lib2to3)

License

Notifications You must be signed in to change notification settings

PyCQA/modernize

Repository files navigation

Python           _              _
   _ __  ___  __| |___ _ _ _ _ (_)______
  | '  \/ _ \/ _` / -_) '_| ' \| |_ / -_)
  |_|_|_\___/\__,_\___|_| |_||_|_/__\___|

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.

The python-modernize command works like 2to3. Here's how you'd rewrite a single file:

python-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.8.0 or later of six is recommended. Some of the fixers output code that is not compatible with Python 2.5 or lower.

See the LICENSE file for the license of python-modernize. Using this tool does not affect licensing of the modernized code.

Unicode Literal Control:

  • 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-unicode flag which will wrap Unicode literals with the six helper function six.u(). This is useful if you want to support Python 3.1 and Python 3.2 without bigger changes.
  • The last alternative is the --future-unicode flag which imports the unicode_literals from the __future__ module. 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.
https://travis-ci.org/python-modernize/python-modernize.svg?branch=master https://coveralls.io/repos/python-modernize/python-modernize/badge.png?branch=master

About

Modernizes Python code for eventual Python 3 migration. Built on top of fissix (a fork of lib2to3)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages