sphinx/utils/convert.py

44 lines
1.2 KiB
Python
Raw Normal View History

#!/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.
2014-03-01 01:18:16 -06:00
: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)
2010-05-16 15:24:20 -05:00
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:])