forked from marco-c/autowebcompat
-
Notifications
You must be signed in to change notification settings - Fork 0
/
data_inconsistencies.py
51 lines (39 loc) · 1.47 KB
/
data_inconsistencies.py
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
import os
import csv
def get_inconsistencies():
files = os.listdir('./data/')
parsed = {}
for f in files:
parts = os.path.splitext(f)[0].split('_')
webcompatID = int(parts[0])
if webcompatID not in parsed:
parsed[webcompatID] = {}
if len(parts) > 2:
sequence = int(parts[-2])
element = '_'.join(parts[1:-2])
else:
element = None
sequence = 0
if (element, sequence) not in parsed[webcompatID]:
parsed[webcompatID][(element, sequence)] = []
parsed[webcompatID][(element, sequence)].append(parts[-1])
incons = []
for key, value in parsed.items():
for (element, sequence), browsers in value.items():
if len(browsers) < 2:
incons.append([key, element, sequence, 'firefox' in browsers, 'chrome' in browsers])
incons.sort(key=lambda x: (x[2], x[0]))
return incons
def main():
print('[*] Getting inconsistencies in screenshots...')
incons = get_inconsistencies()
print('[*] {} inconsistencies found.'.format(len(incons)))
print('[*] Writing to inconsistencies.csv... ', end='')
with open('inconsistencies.csv', 'w') as csvfile:
writer = csv.writer(csvfile, delimiter=',')
writer.writerow(['WEBCOMPAT-ID', 'ELEMENT-ID', 'SEQUENCE-NO', 'FIREFOX', 'CHROME'])
for line in incons:
writer.writerow(line)
print('Done!')
if __name__ == '__main__':
main()