def main():
    import argparse

    parser = argparse.ArgumentParser("Dump meta information to json")

    parser.add_argument("--interactions_path", required=True)
    parser.add_argument("--interactions_output_path", required=True)
    parser.add_argument("--people_path", required=True)
    parser.add_argument("--people_output_path", required=True)
    args = parser.parse_args()

    json_dump(load_id2obj_dict(args.interactions_path, "message_id"), args.interactions_output_path)
    json_dump(load_id2obj_dict(args.people_path, "id"), args.people_output_path)
def main():
    import sys
    from pprint import pprint
    pkl_path = sys.argv[1]

    candidate_events = pkl.load(open(pkl_path))
    g = detect_events(candidate_events, 5)[0]
    mid2interaction = load_id2obj_dict('data/enron.json', 'message_id')
    root = get_roots(g)[0]
    pprint('children documents count: {}'.format(
        count_message_ids(children_documents(g, root, mid2interaction))))
    pprint('all documents count: {}'.format(
        count_message_ids(all_documents(g, mid2interaction))))
    lpd = longest_path_documents(g, root, mid2interaction)
    pprint('longest path documents count: {}'.format(count_message_ids(lpd)))

    pprint('longest path documents\' subject: {}'.format(
        [d['subject'] for d in lpd]))
    parser = argparse.ArgumentParser('Dump events to json')
    parser.add_argument('--candidate_tree_path',
                        '-p',
                        required=True
    )
    parser.add_argument('--dirname', '-d', required=True)
    parser.add_argument('--people_path', required=True)
    parser.add_argument('--interactions_path', required=True)
    
    parser.add_argument('-k', type=int, default=10)
    parser.add_argument('--to_original_graph',
                        action='store_true',
                        default=False)
    parser.add_argument('--undirected',
                        action='store_true',
                        default=False)
    
    args = parser.parse_args()

    if args.to_original_graph and args.undirected:
        print('ERROR: to_original_graph not allowed for undirected')
        sys.exit(-1)

    run(args.candidate_tree_path,
        args.k,
        load_id2obj_dict(args.people_path, 'id'),
        load_id2obj_dict(args.interactions_path, 'message_id'),
        args.dirname,
        args.to_original_graph)