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

import sys

import anvio
import anvio.terminal as terminal
from anvio.errors import ConfigError, FilesNPathsError
import anvio.scgtaxonomyops as scgtaxonomyops

__author__ = "Developers of anvi'o (see AUTHORS.txt)"
__copyright__ = "Copyleft 2015-2018, the Meren Lab (http://merenlab.org/)"
__license__ = "GPL 3.0"
__version__ = anvio.__version__
__maintainer__ = "Quentin Clayssen"
__email__ = "quentin.clayssen@gmail.com"
__provides__ = ['scgs-taxonomy-db']
__resources__ = [("Usage examples and warnings", "http://merenlab.org/scg-taxonomy")]
__description__ = ("The purpose of this program is to download necessary information from GTDB (https://gtdb.ecogenomic.org/), "
                   "and set it up in such a way that your anvi'o installation is able to assign taxonomy to single-copy core "
                   "genes using `anvi-run-scg-taxonomy` and estimate taxonomy for genomes or metagenomes using `anvi-estimate-genome-taxonomy`).")


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


if __name__ == '__main__':
    import argparse

    parser = argparse.ArgumentParser(description=__description__)
    parser.add_argument(*anvio.A('num-threads'), **anvio.K('num-threads'))
    parser.add_argument(*anvio.A('scgs-taxonomy-data-dir'), **anvio.K('scgs-taxonomy-data-dir'))
    parser.add_argument(*anvio.A('scgs-taxonomy-remote-database-url'), **anvio.K('scgs-taxonomy-remote-database-url'))
    parser.add_argument(*anvio.A('reset'), **anvio.K('reset'))
    parser.add_argument(*anvio.A('redo-databases'), **anvio.K('redo-databases'))

    args = anvio.get_args(parser)

    try:
        s = scgtaxonomyops.SetupLocalSCGTaxonomyData(args)
        s.setup()
    except ConfigError as e:
        print(e)
        sys.exit(-1)
    except FilesNPathsError as e:
        print(e)
        sys.exit(-2)
