59 lines
1.5 KiB
Python
59 lines
1.5 KiB
Python
from trogon import Trogon
|
|
import typer
|
|
from typer.main import get_group
|
|
|
|
from learn_sql_model.cli.api import api_app
|
|
from learn_sql_model.cli.config import config_app
|
|
from learn_sql_model.cli.hero import hero_app
|
|
from learn_sql_model.cli.model import model_app
|
|
from learn_sql_model.game.game import game_app
|
|
|
|
app = typer.Typer(
|
|
name="learn_sql_model",
|
|
help="learn-sql-model cli for managing the project",
|
|
)
|
|
app.add_typer(config_app, name="config")
|
|
# app.add_typer(tui_app, name="tui")
|
|
app.add_typer(model_app, name="model")
|
|
app.add_typer(api_app, name="api")
|
|
app.add_typer(hero_app, name="hero")
|
|
app.add_typer(game_app, name="game")
|
|
|
|
|
|
def version_callback(value: bool) -> None:
|
|
"""Callback function to print the version of the learn-sql-model package.
|
|
|
|
Args:
|
|
value (bool): Boolean value to determine if the version should be printed.
|
|
|
|
Raises:
|
|
typer.Exit: If the value is True, the version will be printed and the program will exit.
|
|
|
|
Example:
|
|
version_callback(True)
|
|
"""
|
|
if value:
|
|
from learn_sql_model.__about__ import __version__
|
|
|
|
typer.echo(f"{__version__}")
|
|
raise typer.Exit()
|
|
|
|
|
|
@app.callback()
|
|
def main(
|
|
version: bool = typer.Option(
|
|
False,
|
|
callback=version_callback,
|
|
help="show the version of the learn-sql-model package.",
|
|
),
|
|
):
|
|
"configuration cli"
|
|
|
|
|
|
@app.command()
|
|
def tui(ctx: typer.Context) -> None:
|
|
Trogon(get_group(app), click_context=ctx).run()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
typer.run(main)
|