Coverage for src/fastoai/__init__.py: 78%
18 statements
« prev ^ index » next coverage.py v7.6.8, created at 2024-12-06 09:34 +0800
« prev ^ index » next coverage.py v7.6.8, created at 2024-12-06 09:34 +0800
1import importlib.metadata
2from contextlib import asynccontextmanager
4from fastapi import FastAPI, status
5from fastapi.responses import JSONResponse
6from sqlalchemy.exc import NoResultFound
8try:
9 __version__ = importlib.metadata.version(__name__)
10except importlib.metadata.PackageNotFoundError:
11 __version__ = "1.0.0"
13from .routers import router
16@asynccontextmanager
17async def lifespan(app: FastAPI):
18 yield
21app = FastAPI(title="FastOAI", version=__version__, lifespan=lifespan)
24@app.exception_handler(NoResultFound)
25async def no_result_found_exception_handler(_, exc: NoResultFound):
26 return JSONResponse(
27 status_code=status.HTTP_404_NOT_FOUND,
28 content={"detail": str(exc)},
29 )
32app.include_router(router)