#!python
import argparse
import sys
import jtutils
import pcsv.plook
import itertools

# input: csv file
# output: excel-style pretty printing of that csv

def readCL():
    parser = argparse.ArgumentParser()
    parser.add_argument("infile",default=sys.stdin,nargs="?")
    parser.add_argument("-n","--no_header",action="store_true")
    parser.add_argument("-c","--cache_freq",default="100")
    parser.add_argument("-d","--delimiter", default=",")
    parser.add_argument("-s","--max_field_size",help="maximum field size (truncated + ellipses added)", type=int, default=50)
    parser.add_argument("-a","--full_fields",action="store_true",help="don't truncate fields")
    args = parser.parse_args()
    f_in = jtutils.open_py2_py3(args.infile)
    if args.full_fields:
        args.max_field_size = None
    return f_in, args.cache_freq, args.no_header, args.delimiter, args.max_field_size

if __name__ == "__main__":
    f_in, cache_freq, no_header, delimiter, max_field_size  = readCL()

    output = pcsv.plook.get_all_lines(f_in, cache_freq, no_header, delimiter, max_field_size)

    jtutils.lines2less(output)
