Coverage for src/dev.py: 0%

20 statements  

« prev     ^ index     » next       coverage.py v7.8.2, created at 2025-06-12 06:31 -0700

1from collections.abc import Iterable 

2 

3import uvicorn 

4from extratools_core.json import JsonDict 

5from fastapi import FastAPI 

6 

7from extratools_api.crudl import add_crudl_endpoints 

8 

9app = FastAPI() 

10 

11store: dict[str, JsonDict] = {} 

12 

13 

14async def create_func(key: str, value: JsonDict) -> None: 

15 store[key] = value 

16 

17 

18async def read_func(key: str) -> JsonDict: 

19 return store[key] 

20 

21 

22async def update_func(key: str, value: JsonDict) -> None: 

23 store[key] = value 

24 

25 

26async def delete_func(key: str) -> None: 

27 del store[key] 

28 

29 

30async def list_func(_: JsonDict | None) -> Iterable[tuple[str, JsonDict]]: 

31 return store.items() 

32 

33 

34add_crudl_endpoints( 

35 app, 

36 create_func=create_func, 

37 read_func=read_func, 

38 update_func=update_func, 

39 delete_func=delete_func, 

40 list_func=list_func, 

41 path_prefix="/items", 

42) 

43 

44 

45if __name__ == "__main__": 

46 uvicorn.run(app, host="0.0.0.0", port=8000)