def is_float(text):
    return text.count(".") == 1 and text.replace(".", "").replace("E-", "").isnumeric()


def get_data(file_name):
    f = open(file_name)
    lines = [x.replace('"', '').replace('\n', '') for x in f.readlines()]
    criteria = lines[0].split(',')
    data = []
    for line in lines[1:]:
        values = line.split(',')
        entry = {}
        for c, v in zip(criteria, values):
            value = v
            if v.isdecimal():
                value = int(v)
            elif is_float(v):
                value = float(v)
            entry[c] = value
        data.append(entry)
    return data


if __name__ == "__main__":
    data = get_data("five-techs")
    query = Query(data).group_by("componentsQuantity").group_by("randomize")
    print(query.avg("res0"))
    print(query.avg("res1"))
    print(query.avg("res2"))
            if not done:
              try:
                value = int(v)
                done = True
              except ValueError:
                pass

            entry[c] = value
        data.append(entry)
    f.close()
    return data


if __name__ == "__main__":
    args = sys.argv[1:]
    if len(args) != 1:
      print "Usage: ", sys.argv[0], " [input_file]"
      sys.exit(-1)
    data = get_data(args[0])
    query = Query(data).group_by("numDomains").group_by("isRandom")
    print query.get()
    for x in query.get():
      print x
      print ""
      print ""
      print ""
    print(query.avg("item 0 adopters"))
    print(query.avg("item 1 adopters"))
    print(query.avg("misfits"))