import typer
from loguru import logger
import sys
from .converters import app as converters_app
from .loaders import app as loaders_app
from ..reconstructions.__main__ import app as reconstructions_app
app = typer.Typer(
name="gunz-cm",
help="CM Library - Collection of tools for advancing research in spatial organization of genomes",
no_args_is_help=True
)
app.add_typer(converters_app, name="converters", help="Data format converters")
app.add_typer(loaders_app, name="loaders", help="Data loaders and inspectors")
app.add_typer(reconstructions_app, name="recon", help="3D reconstruction tools")
[docs]
def setup_logging(verbose: bool):
logger.remove()
log_level = "DEBUG" if verbose else "INFO"
logger.add(sys.stderr, level=log_level, format="<level>{message}</level>")
[docs]
@app.callback()
def main(
verbose: bool = typer.Option(False, "--verbose", "-v", help="Enable verbose logging.")
):
"""
CM Library Main CLI
"""
setup_logging(verbose)
if __name__ == "__main__":
app()