#!python

import click
from quickstats.clis.core import (run_pulls, plot_pulls, compile_macros, 
                                  harmonize_np, cls_limit, generate_asimov, 
                                  generate_standard_asimov, toy_significance,
                                  toy_limit, add_macro, remove_macro)
from quickstats.clis.inspect_ws import inspect_ws
from quickstats.clis.inspect_rfile import inspect_rfile
from quickstats.clis.limit_setting import limit_scan
from quickstats.clis.processor_cli import process_rfile
from quickstats.clis.likelihood_scan import likelihood_scan
from quickstats.clis.likelihood_fit import likelihood_fit, np_correlation
from quickstats.clis.workspace_tools import build_xml_ws, modify_ws, compare_ws, combine_ws, decompose_ws

@click.group()
def cli():
    pass

if __name__ == "__main__":
    cli.add_command(compile_macros)
    cli.add_command(add_macro)
    cli.add_command(remove_macro)
    cli.add_command(inspect_ws)
    cli.add_command(toy_significance)
    cli.add_command(toy_limit)
    cli.add_command(run_pulls)
    cli.add_command(plot_pulls)
    cli.add_command(likelihood_fit)
    cli.add_command(likelihood_scan)
    cli.add_command(cls_limit)
    cli.add_command(limit_scan)
    cli.add_command(np_correlation)
    cli.add_command(harmonize_np)
    cli.add_command(generate_asimov)
    cli.add_command(generate_standard_asimov)
    cli.add_command(inspect_rfile)
    cli.add_command(process_rfile)
    cli.add_command(build_xml_ws)
    cli.add_command(modify_ws)
    cli.add_command(compare_ws)
    cli.add_command(combine_ws)
    cli.add_command(decompose_ws)
    cli()