-
Notifications
You must be signed in to change notification settings - Fork 77
/
__init__.py
39 lines (35 loc) · 1.16 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
"""Define the command line interface for sourmash lca
The top level CLI is defined in ../__init__.py. This module defines the CLI for
`sourmash lca` operations.
"""
from . import classify
from . import compare_csv
from . import index
from . import rankinfo
from . import summarize
from ..utils import command_list
from argparse import SUPPRESS, RawDescriptionHelpFormatter
import os
import sys
def subparser(subparsers):
subparser = subparsers.add_parser(
"lca", formatter_class=RawDescriptionHelpFormatter, usage=SUPPRESS
)
desc = "Operations\n"
clidir = os.path.dirname(__file__)
ops = command_list(clidir)
for subcmd in ops:
docstring = getattr(sys.modules[__name__], subcmd).__doc__
helpstring = f"sourmash lca {subcmd:s} --help"
desc += f" {helpstring:33s} {docstring:s}\n"
s = subparser.add_subparsers(
title="Taxonomic utilities",
dest="subcmd",
metavar="subcmd",
help=SUPPRESS,
description=desc,
)
for subcmd in ops:
getattr(sys.modules[__name__], subcmd).subparser(s)
subparser._action_groups.reverse()
subparser._optionals.title = "Options"