""" Entrypoint pour lancer l'application en dev. Usage: python3 -m app """ import argparse import uvicorn from app.main import app from app.core.config import settings def build_parser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser( description="MokPyo API", ) # Option booléenne (type flag) parser.add_argument( "--init-db", action="store_true", help="Initialiser la base de données. Première exécution uniquement." ) parser.add_argument( "--reset", action="store_true", help="Vide les tables de la base de données (lignes uniquement). Pas besoin de --init-db au prochain lancement." ) parser.add_argument( "--clear", action="store_true", help="Vide la base de données (lignes et tables). besoin de --init-db au prochain lancement." ) parser.add_argument( "--host", type=str, default=settings.HOST, help="Host sur lequel l'application va tourner. Override le host de configuration." ) parser.add_argument( "--port", type=int, default=settings.PORT, help="Port sur lequel l'application va tourner. Override le port de configuration." ) return parser if __name__ == "__main__": parser = build_parser() args = parser.parse_args() if args.init_db: from app.db.utils import init_db init_db() exit() if args.reset: from app.db.utils import reset_db reset_db() exit() if args.clear: from app.db.utils import clear_db clear_db() exit() uvicorn.run( "app.main:app", host=args.host, port=args.port, reload=settings.ENV == "dev", log_level=settings.LOG_LEVEL.lower(), )