from __future__ import annotations from typing import Annotated import typer from {{ cookiecutter.package_name }}.cli.config import app as config_app from {{ cookiecutter.package_name }}.cli.hello import app as hello_app from {{ cookiecutter.package_name }}.utils.logging import setup_logging app = typer.Typer(no_args_is_help=True) app.add_typer(config_app, name="config") app.add_typer(hello_app, name="hello") @app.callback(invoke_without_command=True) def main( version: Annotated[ bool, typer.Option("--version", "-v", help="Show version and exit."), ] = False, ) -> None: """Run the CLI application.""" setup_logging() if version: from importlib.metadata import version as get_version print(get_version("{{ cookiecutter.project_slug }}")) raise typer.Exit() if __name__ == "__main__": app()