Staging
v0.5.1
https://github.com/python/cpython
Revision 462582651c92dad3d0e50810075d53d4a04e2466 authored by Larry Hastings on 22 January 2014, 11:05:49 UTC, committed by Larry Hastings on 22 January 2014, 11:05:49 UTC
docstring for __new__ and __init__, and always use "goto exit" instead of
returning "NULL" for failure to parse (as _new__ and __init__ return ints).
1 parent 071baa6
Raw File
Tip revision: 462582651c92dad3d0e50810075d53d4a04e2466 authored by Larry Hastings on 22 January 2014, 11:05:49 UTC
Two minor Argument Clinic bugfixes: use the name of the class in the
Tip revision: 4625826
vs9to10.py
#Run this file after automatic conversion of the VisualStudio 2008 solution by VisualStudio 2010.
#This can be done whenever the 2008 solution changes.
#It will make the necessary cleanup and updates to the vcxproj files
#the .props files need to be maintained by hand if the .vsprops files change

from __future__ import with_statement
import sys
import os
import os.path

def vs9to10(src, dest):
    for name in os.listdir(src):
        path, ext = os.path.splitext(name)
        if ext.lower() not in ('.vcxproj',):
            continue

        filename = os.path.normpath(os.path.join(src, name))
        destname = os.path.normpath(os.path.join(dest, name))
        print("%s -> %s" % (filename, destname))

        lines = []
        lastline = b""
        importgroup = False
        with open(filename, 'rb') as fin:
            for line in fin:
                #remove redundant linker output info
                if b"<OutputLine>" in line:
                    continue
                if b"<ProgramDatabaseFile>" in line:
                    continue
                if b"<ImportLibrary>" in line and b"</ImportLibrary>" in line:
                    continue

                #add new property sheet to the pythoncore
                if importgroup and "pythoncore" in name.lower():
                    if b"</ImportGroup>" in line:
                        if b"debug.props" in lastline:
                            lines.append(b'    <Import Project="pythoncore_d.props" />\r\n')
                        elif b"pythoncore" not in lastline:
                            lines.append(b'    <Import Project="pythoncore.props" />\r\n')
                if b"<ImportGroup Condition" in line:
                    importgroup = True
                elif b"</ImportGroup>" in line:
                    importgroup = False
                lines.append(line)
                lastline = line
        with open(destname, 'wb') as fout:
            for line in lines:
                fout.write(line)

if __name__ == "__main__":
    src = "." if len(sys.argv) < 2 else sys.argv[1]
    name = os.path.basename(os.path.abspath(src))
    dest = os.path.abspath(os.path.join(src, "..", name + "Upd"))
    os.makedirs(dest)
    vs9to10(src, dest)
back to top