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

import argparse
import multiprocessing
import sys

parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("--version", "-v", action="store_true")

subparsers = parser.add_subparsers()

process = subparsers.add_parser("process")
process.set_defaults(cmd="process")
process.add_argument("-n", type=int, default=1, help="number of processes to run in parallel")

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

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()

elif args.version:
    from sirad import __version__
    print("SIRAD version", __version__)

else:
    parser.print_help()
