Source code for pytams.bin

"""A few CLI functions for pyTAMS."""

import argparse
from importlib.metadata import PackageNotFoundError
from importlib.metadata import version
from pytams.fmodel import ForwardModelBaseClass
from pytams.utils import generate_subclass


[docs] def parse_cl_args(a_args: list[str] | None = None) -> argparse.Namespace: """Parse provided list or default CL argv. Args: a_args: optional list of options """ parser = argparse.ArgumentParser() parser.add_argument( "-n", "--name", help="New mode class name", default="MyNewClass", ) return parser.parse_args() if a_args is None else parser.parse_args(a_args)
[docs] def tams_alive() -> None: """Check pyTAMS.""" try: print(f"== pyTAMS v{version('pytams')} :: a rare-event finder tool ==") # noqa: T201 except PackageNotFoundError: print("Package version not found") # noqa: T201
[docs] def tams_template_model(a_args: list[str] | None = None) -> None: """Copy a templated forward model file. A helper function to help getting started from scratch on a new model. Args: a_args: optional list of options """ model_name = vars(parse_cl_args(a_args=a_args))["name"] out_file = f"{model_name}.py" generate_subclass(ForwardModelBaseClass, model_name, out_file)