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

import os
import sys
import os.path as op

from optparse import OptionParser
from pprint import pformat

import pyhrf
from pyhrf.ndarray import xndarray

usage = 'usage: %%prog [options] FILE AXIS1 AXIS2 ...'

description = 'Split nifti FILE along given AXES'

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

parser.add_option('-v', '--verbose', dest='verbose', metavar='VERBOSELEVEL',
                  type='int', default=0,
                  help=pformat(pyhrf.verbose_levels))

parser.add_option('-d', '--output-dir', dest='output_dir', metavar='PATH',
                  default=None, help='Output directory. Default is the '
                  'directory containing the input file')

(options, args) = parser.parse_args()
# pyhrf.verbose.set_verbosity(options.verbose)
pyhrf.logger.setLevel(options.verbose)

# Treat result of option parsing:
if len(args) < 2:
    parser.print_help()
    sys.exit(1)


fn = args[0]
axes = args[1:]
c = xndarray.load(fn)

# print 'c:'
# print c.descrip()

from pyhrf.ndarray import split_and_save

if options.output_dir is not None and not op.exists(options.output_dir):
    os.makedirs(options.output_dir)

split_and_save(c, axes, fn, output_dir=options.output_dir, format_dvalues=True)
