#!/usr/bin/env python

import yaml
import sys
from plots import combined
import argparse

parser = argparse.ArgumentParser()
parser.add_argument(dest='input_yaml', type=str,
                    help='Input yaml file for this SNe at this epoch')
args = parser.parse_args()
stream = open(args.input_yaml, 'r')
var = yaml.load(stream)

photo_z_type = var['photoz_type']
if var['final_pdf']['photoz'] == True:
    if var['photoz_type'] == 'file':
        if var['file'] == False:
            sys.exit('Please specify a photoz file!')
        else:
            photo_z_file = var['file']
            photo_z_redshift_file = None
    else:
        photo_z_file = None
        photo_z_redshift_file = None

    if var['photoz_type'] == 'gauss':
        try:
            sigma = float(var['gauss']['sigma'])
            mu = float(var['gauss']['mu'])
        except ValueError:
            print('Please enter a valid mu or sigma (only floats allowed).')
    else:
        sigma = None
        mu = None

else:
    photo_z_type = False
    photo_z_file = None
    photo_z_redshift_file = None
    sigma = None
    mu = None


my_dir = var['my_dir']
file_dir = var['simulated_data_dir']
outdir = var['outdir']
file_with_RF_and_SF_arrays = var['file_with_RF_and_SF_arrays']

filter1 = var['filter1']
filter2 = var['filter2']
filter3 = var['filter3']
flux_filter1 = var['flux_filter1']
flux_filter2 = var['flux_filter2']
flux_filter3 = var['flux_filter3']
flux_filter1_err = var['flux_filter1_err']
flux_filter2_err = var['flux_filter2_err']
flux_filter3_err = var['flux_filter3_err']

final_pdf_array = []
if var['final_pdf']['RF'] == True:
    final_pdf_array.append('RF')
if var['final_pdf']['SF'] == True:
    final_pdf_array.append('SF')
if var['final_pdf']['photoz'] == True:
    final_pdf_array.append('photoz')

final_pdf = ''
i = 0
while i < len(final_pdf_array) - 1:
    final_pdf += final_pdf_array[i]
    final_pdf += '+'
    i += 1
final_pdf += final_pdf_array[i]

combined(final_pdf, my_dir, file_dir, filter1, filter2, filter3,
         flux_filter1, flux_filter2, flux_filter3, flux_filter1_err,
         flux_filter2_err, flux_filter3_err, outdir,
         file_with_RF_and_SF_arrays, photo_z_type, photo_z_file,
         photo_z_redshift_file, mu, sigma)
