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.
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()