#!/usr/bin/env python


from __future__ import print_function
import argparse
import codecs
import logging


from cort.preprocessing import pipeline
from cort.analysis import visualization, error_extractors, spanning_tree_algorithms
from cort.core import corpora


__author__ = 'smartschat'


def parse_args():
    parser = argparse.ArgumentParser(description='Visualize output.')
    parser.add_argument('input_filename',
                        help='The files to visualize',
                        nargs='*')
    parser.add_argument('-corenlp',
                        required=True,
                        dest='corenlp',
                        help='Where is CoreNLP?')

    return parser.parse_args()


logging.basicConfig(level=logging.INFO,
                    format='%(asctime)s %(levelname)s %(''message)s')

args = parse_args()

p = pipeline.Pipeline(args.corenlp, with_coref=True)

corpus_to_visualize = p.run_on_docs("corpus", args.input_filename)

ex = error_extractors.ErrorExtractor(corpus_to_visualize,
                                     spanning_tree_algorithms.recall_accessibility,
                                     spanning_tree_algorithms.precision_system_output)

ex.add_system(corpus_to_visualize)

decisions = ex.get_errors()

visualizer = visualization.Visualizer(decisions, "corpus",
                                      for_raw_input=True)

visualizer.run()