from typing import Tuple from fastapi import FastAPI from pydantic import MySQLDsn from config import configs from db import MySQLConfig, Database def get_app() -> FastAPI: app = FastAPI() return app def get_config(url: MySQLDsn) -> MySQLConfig: db_config = MySQLConfig(url=url) return db_config def get_database(uri: MySQLConfig) -> Database: database = Database(uri=uri) return database def init_app() -> Tuple[FastAPI, Database]: app = get_app() uri = get_config(url=configs.DB_URI) database = get_database(uri=uri) return app, database