Source code for haddock.clis.cli_re

"""
HADDOCK 3.0 CLI for interactive tasks.
"""
import argparse
import sys
import os

from haddock.clis.re.clustfcc import add_clustfcc_arguments, reclustfcc
from haddock.clis.re.clustrmsd import add_clustrmsd_arguments, reclustrmsd
from haddock.clis.re.score import add_rescore_arguments, rescore

# Command line interface parser
ap = argparse.ArgumentParser(
    prog="haddock3-re",
    description=__doc__,
    formatter_class=argparse.RawDescriptionHelpFormatter,
    )

subparsers = ap.add_subparsers(title='subcommands',
                               help='valid subcommands',
                              )

# score subcommand
rescore_subcommand = subparsers.add_parser('score')
rescore_subcommand.set_defaults(func=rescore)
rescore_subcommand = add_rescore_arguments(rescore_subcommand)
# clustrmsd subcommand
clustrmsd_subcommand = subparsers.add_parser('clustrmsd')
clustrmsd_subcommand.set_defaults(func=reclustrmsd)
clustrmsd_subcommand = add_clustrmsd_arguments(clustrmsd_subcommand)
# clustfcc subcommand
clustfcc_subcommand = subparsers.add_parser('clustfcc')
clustfcc_subcommand.set_defaults(func=reclustfcc)
clustfcc_subcommand = add_clustfcc_arguments(clustfcc_subcommand)


def _ap():
    return ap


[docs]def load_args(ap): """Load argument parser args.""" return ap.parse_args()
[docs]def maincli(): """Execute main client.""" args = ap.parse_args() cmd = vars(load_args(ap)) if "func" not in cmd.keys(): sys.stderr.write(f"Error: no subcommand given.{os.linesep}") ap.print_help() sys.exit(1) else: cmd.pop("func") args.func(**cmd)
if __name__ == "__main__": sys.exit(maincli())