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

1import importlib.metadata 

2from contextlib import asynccontextmanager 

3 

4from fastapi import FastAPI, status 

5from fastapi.responses import JSONResponse 

6from sqlalchemy.exc import NoResultFound 

7 

8try: 

9 __version__ = importlib.metadata.version(__name__) 

10except importlib.metadata.PackageNotFoundError: 

11 __version__ = "1.0.0" 

12 

13from .routers import router 

14 

15 

16@asynccontextmanager 

17async def lifespan(app: FastAPI): 

18 yield 

19 

20 

21app = FastAPI(title="FastOAI", version=__version__, lifespan=lifespan) 

22 

23 

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 ) 

30 

31 

32app.include_router(router)