#!/usr/bin/env python
# encoding: utf-8
"""
run_genmod.py

Script for annotating genetic models in variant files.

Created by Måns Magnusson on 2014-01-21.
Copyright (c) 2013 __MyCompanyName__. All rights reserved.
"""

from __future__ import print_function
from __future__ import unicode_literals

import sys
import os
import click

from pprint import pprint as pp

from codecs import getwriter

import pkg_resources
import genmod

from genmod.commands import build_annotation, annotate, analyze, summarize_variants

if sys.version_info < (3,0):
    sys.stdout = getwriter('UTF-8')(sys.stdout)

version = pkg_resources.require("genmod")[0].version


def print_version(ctx, param, value):
    """Callback function for printing version and exiting
    Args:
        ctx (object) : Current context
        param (object) : Click parameter(s)
        value (boolean) : Click parameter was supplied or not
    Returns:
        None:
    """
    if not value or ctx.resilient_parsing:
        return
    click.echo('genmod version: ' + version)
    ctx.exit()


###         This is the main script         ###

@click.group()
@click.option('--version',
                is_flag=True,
                callback=print_version,
                expose_value=False,
                is_eager=True
)
def run_genmod():
    """Annotate genetic models in variant files."""
    pass

run_genmod.add_command(build_annotation.build_annotation)
run_genmod.add_command(annotate.annotate)
run_genmod.add_command(analyze.analyze)
# run_genmod.add_command(summarize_variants.summarize_variants)



if __name__ == '__main__':
    run_genmod()
