Source code for arbor_imago.cli

import typer
import asyncio
import json
from sqlmodel import SQLModel
import uvicorn
from arbor_imago import models, config
from arbor_imago.app import app as fastapi_app

cli = typer.Typer()


[docs] @cli.command() def runserver(): uvicorn.run("arbor_imago.app:app", **config.UVICORN)
[docs] @cli.command() def create_tables(): """Create all database tables.""" async def _main(): async with config.DB_ASYNC_ENGINE.begin() as conn: await conn.run_sync(SQLModel.metadata.create_all) print("Creating tables...") asyncio.run(_main())
[docs] @cli.command() def export_api_schema(): """Export OpenAPI schema to file.""" print('Exporting OpenAPI schema...') config.OPENAPI_SCHEMA_PATHS['gallery'].write_text( json.dumps(fastapi_app.openapi()))
if __name__ == "__main__": cli()