Fixed minor error.
4 from dflowlog import dflow_fields as fields
5 from filter import filter
7 from datetime import datetime
8 from datetime import timedelta
9 from optparse import OptionParser
12 def get_datetime(row, value):
13 date, time = row[fields[value]].split()
14 year, month, day = date.split("-")
15 hour, minute, second = time.split(":")
16 return datetime(int(year), int(month), int(day), int(hour), int(minute), int(second))
18 def time_diff(dt1, dt2):
19 diff = (max(dt1,dt2) - min(dt1, dt2))
20 diff = diff.seconds / 60 + diff.days * 24 * 60
25 def diff(values, plans):
28 new_plans.append(plan)
29 v1 = get_datetime(plan, values[0])
30 v2 = get_datetime(plan, values[1])
31 new_plans[-1].append(str(time_diff(v1, v2)))
34 def column_diff(values, plans):
38 flow_point = plan[fields["flow_point"]]
39 if flow_point not in flow_points:
40 flow_points.append(flow_point)
41 for fp in flow_points:
42 flow_plans = filter("flow_point", fp, plans)
43 for plan in flow_plans:
46 current_flow_time = get_datetime(current_plan, values[0])
47 for plan2 in flow_plans:
48 if plan2 is not current_plan:
49 min_sep = min(min_sep,
50 abs(time_diff(get_datetime(plan2, values[0]),
53 plan.append(str(min_sep))
54 new_plans.append(plan)
57 if __name__ == "__main__":
58 modes = {"diff": (diff, 3),
59 "cdiff": (column_diff, 2)}
60 arg_parser = OptionParser(usage="usage: %prog [options] diff column1 column2 csv_logs\
61 %prog [options] cdiff column csv_logs")
62 arg_parser.add_option("-f", "--files",
63 action="store_true", dest="files_mode",
64 help="csv_logs are files")
65 arg_parser.set_defaults(files_mode=False)
66 (options, args) = arg_parser.parse_args()
69 if options.files_mode:
70 plans = dflowlog.parse_files(args[modes[args[0]][1]:])
71 options.files_mode = False
73 plans = dflowlog.parse_pipe(args[modes[args[0]][1]:])
75 plans = modes[args[0]][0](args[1:], plans)
77 dflowlog.print_logs(plans)