#!/usr/bin/env python2
# -*- coding: utf-8 -*-

from optparse import OptionParser

from pyhrf import xmlio

from pyhrf.ui.treatment import *
from pyhrf.ui.rfir_ui import RFIRAnalyser, DEFAULT_CFG_FILE

from pyhrf.paradigm import *
from pyhrf.tools._io.spmio import load_paradigm_from_mat

from pyhrf.core import FmriData

usage = 'usage: %%prog [options]'

description = 'Point by point HRF estimation using a regularized FIR '\
    'approach'

parser = OptionParser(usage=usage, description=description)

parser.add_option('-o', '--output-cfg-file', metavar='XMLFILE',
                  dest='cfgFile',
                  default=DEFAULT_CFG_FILE,
                  help='XML file to store parameters in')

parser.add_option('-n', '--nb-iteration', dest='nbIterations', default=None,
                  metavar='INT', type='int',
                  help='Set up the maximum number of iterations')

parser.add_option('-u', '--output-result-directory', dest='OuputDirectory',
                  default=None, help='Outputs results directory')

append_common_treatment_options(parser)

(options, args) = parser.parse_args()

# pyhrf.verbose.set_verbosity(options.verbose)
pyhrf.logger.setLevel(options.verbose)


analyser = RFIRAnalyser()
if options.nbIterations is not None:
    from pyhrf.ui.rfir_ui import RFIREstim
    he = RFIREstim(nb_iterations=options.nbIterations)
    analyser = RFIRAnalyser(HrfEstimator=he)

fdata = parse_data_options(options)

if options.OuputDirectory is not None:
    treatment = FMRITreatment(
        analyser=analyser, fmri_data=fdata, output_dir=options.OuputDirectory)
else:
    treatment = FMRITreatment(analyser=analyser, fmri_data=fdata)

sXml = xmlio.to_xml(treatment, label='rfir_treatment')
fOut = open(options.cfgFile, 'w')
fOut.write(sXml)
fOut.close()
