def process_file(best_server_for_ip, latencies_file):
    retval = []
    with open(latencies_file, 'rb') as input_file:
        for raw_line in input_file:
            line = raw_line.rstrip().split()
            ip = line[1]
            server = line[0]
            if server == best_server_for_ip[ip][0]:
                retval.append(float(line[2]))
    retval.sort()
    return retval

def output_to_file(result, output_filename):
    with open(output_filename, 'wb') as output_file:
        for latency in result:
            output_file.write(str(latency) + '\n')

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('latencies_file')
    parser.add_argument('median_latency_file')
    parser.add_argument('output_filename')
    parser.add_argument('--set-cover', default=None)
    args = parser.parse_args()
    set_cover = common_module.parse_set_cover(args.set_cover)
    print 'set_cover: ' + str(set_cover)
    best_server_for_ip = common_module.generate_best_server_for_ip(args.median_latency_file, set_cover=set_cover)
    result = process_file(best_server_for_ip, args.latencies_file)
    output_to_file(result, args.output_filename)
import argparse

import common_module

def process_file(median_filename, best_server_to_ip):
    histogram = dict()
    with open(median_filename, 'rb') as input_file:
        for raw_line in input_file:
            line = raw_line.rstrip().split()
            server = line[0]
            ip = line[1]
            latency = float(line[2])
            best_server = best_server_to_ip[ip][0]
            if server == best_server:
                if server not in histogram:
                    histogram[server] = []
                histogram[server].append(ip)
    for server in histogram:
        print 'Server: ' + server + ' #nameservers: ' + str(len(histogram[server]))
 
if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('median_filename')
    args = parser.parse_args()
    best_server_to_ip = common_module.generate_best_server_for_ip(args.median_filename)
    process_file(args.median_filename, best_server_to_ip)