#!/usr/bin/env python
# -*- coding: utf-8
"""Takes collections id and generates an extensive summary based on what is available
in the profile and annotation database."""

import sys

import anvio
import anvio.terminal as terminal
import anvio.summarizer as summarizer

from anvio.errors import ConfigError, FilesNPathsError


__author__ = "A. Murat Eren"
__copyright__ = "Copyright 2015, The anvio Project"
__credits__ = []
__license__ = "GPL 3.0"
__version__ = anvio.__version__
__maintainer__ = "A. Murat Eren"
__email__ = "a.murat.eren@gmail.com"
__status__ = "Development"


run = terminal.Run()
progress = terminal.Progress()


if __name__ == '__main__':
    import argparse
    parser = argparse.ArgumentParser(description='A script to generate summaries for a given list of splts')
    parser.add_argument('-c', '--collection-id', metavar = 'COLLECTION-ID',
                        help = 'Collections of splits (see the online documentation for examples).')
    parser.add_argument('-p', '--profile-db', metavar = "PROFILE_DB", required = True,
                        help = 'Profile database.')
    parser.add_argument('-a', '--annotation-db', required = True, metavar = 'ANNOTATION_DB',
                        help = 'anvio annotation database.')
    parser.add_argument('-o', '--output-directory', required = True,
                        help = 'Directory path to store static summary files.')
    parser.add_argument('--list-collections', action='store_true', default=False,
                        help = 'Show available collections and exit.')
    parser.add_argument('--debug', action='store_true', default=False,
                        help = 'Print out debug info.')

    args = parser.parse_args()

    try:
        summary = summarizer.Summarizer(args)
        summary.process()
    except ConfigError, e:
        print e
        sys.exit(-1)
    except FilesNPathsError, e:
        print e
        sys.exit(-2)
