#! /usr/bin/env python

"""\
%(prog)s flatfile [yodafile]

Convert a FLAT data file to the YODA data format.

WARNING: flat2yoda is DEPRECATED.
The flat/dat format is not intended as an interchange format.
"""

import yoda, os, sys, argparse
from yoda.script_helpers import parse_x2y_args, filter_aos

parser = argparse.ArgumentParser(usage=__doc__)
parser.add_argument("ARGS", nargs="+", help="infile [outfile]")
parser.add_argument("-m", "--match", dest="MATCH", metavar="PATT", default=None,
                    help="only write out histograms whose path matches this regex")
parser.add_argument("-M", "--unmatch", dest="UNMATCH", metavar="PATT", default=None,
                    help="exclude histograms whose path matches this regex")

sys.stderr.write("WARNING: flat2yoda is DEPRECATED.\n  The flat/dat format is not intended as an interchange format.\n")

args = parser.parse_args()
in_out = parse_x2y_args(args.ARGS, ".dat", ".yoda")
if not in_out:
    sys.stderr.write("You must specify the FLAT and YODA file names\n")
    sys.exit(1)

for i, o in in_out:
    analysisobjects = yoda.readFLAT(i)
    filter_aos(analysisobjects, args.MATCH, args.UNMATCH)
    yoda.writeYODA(analysisobjects, o)
