10f911992a31b6eecce2953bf124cdb13f448bde3mbligh#!/usr/bin/python
20f911992a31b6eecce2953bf124cdb13f448bde3mblighimport re, sys
30f911992a31b6eecce2953bf124cdb13f448bde3mbligh
40f911992a31b6eecce2953bf124cdb13f448bde3mblighdef parse_file(filename):
50f911992a31b6eecce2953bf124cdb13f448bde3mbligh    data = {}
60f911992a31b6eecce2953bf124cdb13f448bde3mbligh    for line in open(filename):
70f911992a31b6eecce2953bf124cdb13f448bde3mbligh        if re.match('\d', line):
80f911992a31b6eecce2953bf124cdb13f448bde3mbligh            (samples, percent, symbol) = line.split()
90f911992a31b6eecce2953bf124cdb13f448bde3mbligh            data[symbol] = float(percent)
100f911992a31b6eecce2953bf124cdb13f448bde3mbligh    return data
110f911992a31b6eecce2953bf124cdb13f448bde3mbligh
120f911992a31b6eecce2953bf124cdb13f448bde3mbligh
130f911992a31b6eecce2953bf124cdb13f448bde3mblighdata1 = parse_file(sys.argv[1])
140f911992a31b6eecce2953bf124cdb13f448bde3mblighdata2 = parse_file(sys.argv[2])
150f911992a31b6eecce2953bf124cdb13f448bde3mbligh
160f911992a31b6eecce2953bf124cdb13f448bde3mblighdelta = {}
170f911992a31b6eecce2953bf124cdb13f448bde3mblighfor symbol in data1.keys() + data2.keys():
180f911992a31b6eecce2953bf124cdb13f448bde3mbligh    delta[symbol] = data1.get(symbol, 0) - data2.get(symbol, 0)
190f911992a31b6eecce2953bf124cdb13f448bde3mbligh
200f911992a31b6eecce2953bf124cdb13f448bde3mblighdef lookup_delta(symbol):
210f911992a31b6eecce2953bf124cdb13f448bde3mbligh    return delta[symbol]
220f911992a31b6eecce2953bf124cdb13f448bde3mbligh
230f911992a31b6eecce2953bf124cdb13f448bde3mblighsorted_deltas = sorted(delta.keys(), key=lookup_delta, reverse=True)
240f911992a31b6eecce2953bf124cdb13f448bde3mbligh
250f911992a31b6eecce2953bf124cdb13f448bde3mblighif len(sorted_deltas) > 40:
260f911992a31b6eecce2953bf124cdb13f448bde3mbligh    sorted_deltas = sorted_deltas[0:20] + sorted_deltas[-20:]
270f911992a31b6eecce2953bf124cdb13f448bde3mbligh
280f911992a31b6eecce2953bf124cdb13f448bde3mblighfor symbol in sorted_deltas:
290f911992a31b6eecce2953bf124cdb13f448bde3mbligh    print '%2.3f %s' % (delta[symbol], symbol)
30