-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathdiff-lang-mappings
executable file
·47 lines (41 loc) · 1.27 KB
/
diff-lang-mappings
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
#!/usr/bin/python -B
# -*- coding: utf-8 -*-
import colour
import sys
import imp
def main():
charmaps = {}
for i, fn in enumerate(sys.argv[1:]):
m = imp.load_source('m%d' % i, fn)
charmaps[fn] = set(m.charmap.items())
common = charmaps[sys.argv[1]].copy()
common_keys = set(k for k, v in common)
common_values = set(v for k, v in common)
for fn in sys.argv[2:]:
m = charmaps[fn]
common &= m
common_keys &= set(k for k, v in m)
common_values &= set(v for k, v in m)
for fn in sys.argv[1:]:
m = charmaps[fn]
unique = m - common
keys = set(k for k, v in m)
values = set(v for k, v in m)
unique_keys = keys - common_keys
unique_values = values - common_values
colour.print_RED(fn)
for k, v in unique:
if k in unique_keys:
ck = colour.YELLOW
else:
ck = ''
if v in unique_values:
cv = colour.GREEN
else:
cv = ''
print " %s%9r%s : %s%9r%s" % (ck, k, colour.C_NORMAL,
cv, v, colour.C_NORMAL)
print "unique values:"
print ', '.join(v for v in unique_values)
print
main()