#!python

import json
import sys
from trp.trp2 import TDocumentSchema
from textractgeofinder._version import __version__
from textractgeofinder.sample_patient_intake_form_parser import add_key_value_lables
import argparse
import logging

logger = logging.getLogger(__name__)

parser = argparse.ArgumentParser()
parser.add_argument("--version",
                    action='version',
                    version='%(prog)s {version}'.format(version=__version__),
                    help="print version information")
show_logs = parser.add_mutually_exclusive_group(required=False)
show_logs.add_argument("-v", dest='showinfo', action='store_true', help=">=INFO level logging output to stderr")
show_logs.set_defaults(showinfo=False)
show_logs.add_argument("-vv", dest='showdebug', action='store_true', help=">=DEBUG level logging output to stderr")
show_logs.set_defaults(showdebug=False)

args = parser.parse_args()
showdebug = args.showdebug
showinfo = args.showinfo

if showinfo or showdebug:
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    handler = logging.StreamHandler()
    handler.setFormatter(formatter)
    handler.setLevel(logging.INFO)
    logger.setLevel(logging.INFO)
    logger.propagate = True
    logger.addHandler(handler)
    geofinder_logger = logging.getLogger('textractgeofinder')
    geofinder_logger.propagate = True
    geofinder_logger.setLevel(logging.INFO)
    geofinder_logger.addHandler(handler)

    if showdebug:
        handler.setLevel(logging.DEBUG)
        logger.setLevel(logging.DEBUG)
        geofinder_logger.setLevel(logging.DEBUG)
        logger.debug("current log level: DEBUG")

doc_json = json.load(sys.stdin)
t_doc = TDocumentSchema().load(doc_json)
add_key_value_lables(t_document=t_doc)
print(TDocumentSchema().dumps(t_doc))
