Comparación de proyectos

Descripción general

En varios casos, resulta útil disponer de un script que compare automáticamente el contenido de dos proyectos. La función de comparación de proyectos de Python permite comparar dos proyectos. Como resultado, proporciona la información si los proyectos son diferentes.

Ejemplo de Script Engine

from __future__ import print_function

def main():
    proj = projects.primary
 
    # compare the Primary Project to another Project on disk
    proj2 = projects.open(r"D:\PythonProjects\CompTest_Right.project", primary=False)
    diff = proj.compare_to(proj2)
    write_diff(diff, r"D:\PythonProjects\Diff1.txt")
 
    # compare, but ignore whitespaces, comments and properties
    diff = proj.compare_to(proj2, ComparisonFlags.IGNORE_WHITESPACE | ComparisonFlags.IGNORE_COMMENTS | ComparisonFlags.IGNORE_PROPERTIES)
    write_diff(diff, r"D:\PythonProjects\Diff2.txt")
 
 
def write_diff(differences, filename):
    content = []
    sep = "; "
    objects = differences.get_changed_objects()
    for obj in objects:
        if obj.differences != ObjectDifferences.EQUAL:
            right_obj = "no_object"
            left_obj = "no_object"
            if obj.right_object is not None:
                right_obj = obj.right_object.get_name()
            if obj.left_object is not None:
                left_obj = obj.left_object.get_name()
            content.append(sep.join([left_obj, right_obj, str(obj.differences)]) + "\n")

    if len(content) != 0:
        with open(filename, 'wb') as f:
            f.writelines(content)
    else:
        print("Projects are equal.")


if not projects.primary:
    print("No project open.")
else:
    main()