#!/usr/env/bin python
"""
SIRAD - Secure Infrastructure for Research with Administrative Data
"""

import argparse
import multiprocessing
import sirad
import sys

parser = argparse.ArgumentParser(description=sirad.__doc__,
                                 formatter_class=argparse.RawDescriptionHelpFormatter)
parser.add_argument("-v", "--version",
                    action="version",
                    version="SIRAD {}".format(sirad.__version__))
parser.add_argument("-n", type=int, default=1, help="number of threads to use in parallel")

subparsers = parser.add_subparsers()

process = subparsers.add_parser("process")
process.set_defaults(cmd="process")

research = subparsers.add_parser("research")
research.set_defaults(cmd="research")
research.add_argument("--seed", type=int, default=0, help="random seed for reproducible SIRAD ID [default: none]")

args = parser.parse_args()

if "cmd" in args:

    import logging
    logging.basicConfig(level=logging.INFO)

    from sirad import config

    if args.cmd == "process":
        config.parse_layouts(process_log=True)
        from sirad.process import Process
        if args.n > 1:
            pool = multiprocessing.Pool(processes=args.n)
            pool.map(Process, config.DATASETS, chunksize=1)
        else:
            for dataset in config.DATASETS:
                Process(dataset)

    elif args.cmd == "research":
        config.parse_layouts()
        from sirad.research import Research
        Research(args.n, args.seed)

else:
    parser.print_help()

# vim: expandtab sw=4 ts=4
