| #!/usr/bin/env python3 |
| # coding: utf-8 |
| """ |
| Converts files with 2to3 |
| ~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| Creates a Python 3 version of each file. |
| |
| The Python3 version of a file foo.py will be called foo3.py. |
| |
| :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS. |
| :license: BSD, see LICENSE for details. |
| """ |
| import os |
| import sys |
| from glob import iglob |
| from optparse import OptionParser |
| from shutil import copy |
| from distutils.util import run_2to3 |
| |
| def main(argv): |
| parser = OptionParser(usage='%prog [path]') |
| parser.add_option('-i', '--ignorepath', dest='ignored_paths', |
| action='append', default=[]) |
| options, args = parser.parse_args(argv) |
| |
| ignored_paths = {os.path.abspath(p) for p in options.ignored_paths} |
| |
| path = os.path.abspath(args[0]) if args else os.getcwd() |
| convertables = [] |
| for filename in iglob(os.path.join(path, '*.py')): |
| if filename in ignored_paths: |
| continue |
| basename, ext = os.path.splitext(filename) |
| if basename.endswith('3'): |
| continue |
| filename3 = basename + '3' + ext |
| copy(filename, filename3) |
| convertables.append(filename3) |
| run_2to3(convertables) |
| |
| if __name__ == "__main__": |
| main(sys.argv[1:]) |