paul@43 | 1 | #!/usr/bin/env python |
paul@43 | 2 | |
paul@43 | 3 | try: |
paul@43 | 4 | import cPickle as pickle |
paul@43 | 5 | except ImportError: |
paul@43 | 6 | import pickle |
paul@43 | 7 | |
paul@43 | 8 | import os |
paul@43 | 9 | import sys |
paul@43 | 10 | |
paul@43 | 11 | def compare_results(a, b): |
paul@43 | 12 | return cmp(a[1], b[1]) |
paul@43 | 13 | |
paul@43 | 14 | if __name__ == "__main__": |
paul@43 | 15 | wiki = sys.argv[1] |
paul@43 | 16 | if len(sys.argv) > 2: |
paul@43 | 17 | correction = int(sys.argv[2]) |
paul@43 | 18 | else: |
paul@43 | 19 | correction = 0 |
paul@43 | 20 | |
paul@43 | 21 | combined = {} |
paul@43 | 22 | |
paul@43 | 23 | print "Looking for polls under", wiki |
paul@43 | 24 | |
paul@43 | 25 | for dirpath, dirnames, filenames in os.walk(wiki): |
paul@43 | 26 | if os.path.split(dirpath)[-1] == "poll": |
paul@43 | 27 | for filename in filenames: |
paul@43 | 28 | pathname = os.path.join(dirpath, filename) |
paul@43 | 29 | f = open(pathname, "rb") |
paul@43 | 30 | try: |
paul@43 | 31 | combined[filename] = pickle.load(f) |
paul@43 | 32 | finally: |
paul@43 | 33 | f.close() |
paul@43 | 34 | |
paul@43 | 35 | averages = [] |
paul@43 | 36 | totals = [] |
paul@43 | 37 | |
paul@43 | 38 | print |
paul@43 | 39 | print "Results:" |
paul@43 | 40 | for poll, results in combined.items(): |
paul@43 | 41 | print poll, results |
paul@43 | 42 | values = results.values() |
paul@43 | 43 | len_values = len(values) |
paul@43 | 44 | sum_values = sum(values) + len_values * correction |
paul@43 | 45 | averages.append((poll, float(sum_values) / len_values)) |
paul@43 | 46 | totals.append((poll, sum_values)) |
paul@43 | 47 | |
paul@43 | 48 | averages.sort(compare_results, reverse=1) |
paul@43 | 49 | totals.sort(compare_results, reverse=1) |
paul@43 | 50 | |
paul@43 | 51 | print |
paul@43 | 52 | print "Results by averages:" |
paul@43 | 53 | for poll, result in averages: |
paul@49 | 54 | print "%-15s%f" % (poll, result) |
paul@43 | 55 | |
paul@43 | 56 | print |
paul@43 | 57 | print "Results by totals:" |
paul@43 | 58 | for poll, result in totals: |
paul@43 | 59 | print "%-15s%d" % (poll, result) |
paul@43 | 60 | |
paul@43 | 61 | # vim: tabstop=4 expandtab shiftwidth=4 |