from phaser.pipeline import domain_analysis
from phaser import cli
from phaser import output

parser = cli.PCLIParser(
    master_phil = domain_analysis.master_params,
    description = "Analyse domain structure by mapping domain definitions from annotated homologues",
    usage = "%(prog)s [options] phils"
    )

parser.add_argument(
    "-v", "--verbosity",
    action = "store",
    choices = output.SingleStream.LEVEL_FOR.keys(),
    default = "INFO",
    help = "verbosity level"
    )

parser.add_argument(
    "--version",
    action = "version",
    version = "%s %s" % ( domain_analysis.PROGRAM, domain_analysis.VERSION )
    )

if __name__ == "__main__":
    params = parser.parse_args()
    
    from libtbx.utils import Sorry
    import sys
    
    try:
        domain_analysis.run(
            args = params.phils,
            out = sys.stdout,
            verbosity = output.SingleStream.LEVEL_FOR[ params.verbosity ]
            )
        
    except Sorry:
        raise
    
    except Exception, e:
        print "An internal error has occurred"
        print "The traceback is as follows:"
        import traceback
        print traceback.format_exc()
        print "Terminating..."
        sys.exit( 1 )

