| """Typer application entrypoint for DataForge. |
| |
| Each CLI subcommand is defined in its own module under ``dataforge.cli.*`` |
| and registered here. The ``app`` object is the entry point referenced by |
| ``[project.scripts]`` in ``pyproject.toml``. |
| """ |
|
|
| import typer |
|
|
| from dataforge.cli.bench import bench |
| from dataforge.cli.profile import profile |
| from dataforge.cli.repair import repair |
| from dataforge.cli.revert import revert |
|
|
| app: typer.Typer = typer.Typer( |
| help="DataForge — AI-powered data-quality detection and repair.", |
| no_args_is_help=True, |
| ) |
|
|
|
|
| @app.callback(invoke_without_command=True) |
| def _main( |
| version: bool = typer.Option( |
| False, |
| "--version", |
| "-V", |
| help="Show version and exit.", |
| is_eager=True, |
| ), |
| ) -> None: |
| """DataForge — AI-powered data-quality detection and repair.""" |
| if version: |
| from dataforge import __version__ |
|
|
| typer.echo(f"dataforge {__version__}") |
| raise typer.Exit() |
|
|
|
|
| app.command(name="profile")(profile) |
| app.command(name="repair")(repair) |
| app.command(name="revert")(revert) |
| app.command(name="bench")(bench) |
|
|