Welcome to mirror list, hosted at ThFree Co, Russian Federation.

spotbugsComparison.py « analysis « scripts - github.com/nextcloud/talk-android.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: cc85d868cdfe05dc29093bc424766ecca233d7f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env python3
import argparse
import defusedxml.ElementTree as ET
import spotbugsSummary


def print_comparison(old: dict, new: dict, link_base: str, link_new: str):
    all_keys = sorted(set(list(old.keys()) + list(new.keys())))

    output = "<table><tr><th>Category</th>"
    old_header = f"<a href='{link_base}'>Base</a>" if link_base is not None else "Base"
    output += f"<th>{old_header}</th>"
    new_header = f"<a href='{link_new}'>New</a>" if link_new is not None else "New"
    output += f"<th>{new_header}</th>"
    output += "</tr>"

    for category in all_keys:
        category_count_old = old[category] if category in old else 0
        category_count_new = new[category] if category in new else 0
        new_str = f"<b>{category_count_new}</b>" if category_count_new != category_count_old else str(category_count_new)
        output += "<tr>"
        output += f"<td>{category}</td>"
        output += f"<td>{category_count_old}</td>"
        output += f"<td>{new_str}</td>"
        output += "</tr>"

    output += "<tr>"
    output += "<td><b>Total</b></td>"
    output += f"<td><b>{sum(old.values())}</b></td>"
    output += f"<td><b>{sum(new.values())}</b></td>"
    output += "</tr>"

    output += "</table>"

    print(output)


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("base_file", help="base file for comparison")
    parser.add_argument("new_file", help="new file for comparison")
    parser.add_argument("--link-base", help="http link to base html report")
    parser.add_argument("--link-new", help="http link to new html report")
    args = parser.parse_args()

    base_tree = ET.parse(args.base_file)
    base_summary = spotbugsSummary.get_counts(base_tree)

    new_tree = ET.parse(args.new_file)
    new_summary = spotbugsSummary.get_counts(new_tree)

    print_comparison(base_summary, new_summary, args.link_base, args.link_new)