Ticket #26212: extraction.py

File extraction.py, 1.2 KB (added by chapoton, 4 months ago)

tool to extract the data from patchbot log

Line 
1from __future__ import print_function
2import re
3
4bad100 = re.compile("# ... doctests failed")
5bad10 = re.compile("# .. doctests failed")
6bad1 = re.compile("# . doctests? failed")
7
8
9def extraction(file):
10    """
11    extraction des fichiers avec erreurs depuis le big-log
12
13    et compte du nombre de fichiers avec plus de 100 erreurs
14
15    et nombre total d'erreurs
16    """
17    with open(file) as f:
18        toto = f.read().splitlines()
19    titi = [u.strip() for u in toto if "doctest" in u]
20    titi = sorted(set([u for u in titi if u.startswith("sage -t") and
21                       u.endswith("failed")]))
22    failed = [int(u.split(' ')[-3]) for u in titi]
23    total = sum(failed)
24    N1 = len([u for u in titi if re.findall(bad1, u)])
25    N10 = len([u for u in titi if re.findall(bad10, u)])
26    N100 = len([u for u in titi if re.findall(bad100, u)])
27    print("data : || {} || {} || {} || {} || {} ||".format(N1 + N10 + N100, N100, N10, N1, total))
28    text = 'less than {} : {}'
29    print('\n'.join(text.format(k, sum(1 for x in failed if x <= k))
30                    for k in (1, 2, 4, 8, 16, 64, 128, 256)))
31    with open('small-log.txt', 'w') as g:
32        print("\n".join(titi), file=g)
33    return titi