1- from fastapi import FastAPI
1+ from fastapi import FastAPI , HTTPException , responses
2+ from pydantic import BaseModel
23
34from controller import stats
45from controller import integration
78# API creation and description
89app = FastAPI ()
910
10- from pydantic import BaseModel
11-
1211
1312class WeakSupervisionRequest (BaseModel ):
1413 project_id : str
@@ -29,6 +28,11 @@ class SourceStatsRequest(BaseModel):
2928 user_id : str
3029
3130
31+ class ExportWsStatsRequest (BaseModel ):
32+ project_id : str
33+ labeling_task_id : str
34+
35+
3236@app .post ("/fit_predict" )
3337async def weakly_supervise (request : WeakSupervisionRequest ) -> int :
3438 session_token = general .get_ctx_token ()
@@ -43,7 +47,7 @@ async def weakly_supervise(request: WeakSupervisionRequest) -> int:
4347
4448
4549@app .post ("/labeling_task_statistics" )
46- async def calculate_stats (request : TaskStatsRequest ):
50+ async def calculate_task_stats (request : TaskStatsRequest ):
4751 session_token = general .get_ctx_token ()
4852 stats .calculate_quality_statistics_for_labeling_task (
4953 request .project_id , request .labeling_task_id , request .user_id
@@ -53,7 +57,7 @@ async def calculate_stats(request: TaskStatsRequest):
5357
5458
5559@app .post ("/source_statistics" )
56- async def calculate_stats (request : SourceStatsRequest ):
60+ async def calculate_source_stats (request : SourceStatsRequest ):
5761 session_token = general .get_ctx_token ()
5862 has_coverage = stats .calculate_quantity_statistics_for_labeling_task_from_source (
5963 request .project_id , request .source_id , request .user_id
@@ -64,3 +68,16 @@ async def calculate_stats(request: SourceStatsRequest):
6468 )
6569 general .remove_and_refresh_session (session_token )
6670 return None , 200
71+
72+
73+ @app .post ("/export_ws_stats" )
74+ async def export_ws_stats (request : ExportWsStatsRequest ) -> responses .HTMLResponse :
75+ session_token = general .get_ctx_token ()
76+ status_code , message = integration .export_weak_supervision_stats (
77+ request .project_id , request .labeling_task_id
78+ )
79+ general .remove_and_refresh_session (session_token )
80+
81+ if status_code != 200 :
82+ raise HTTPException (status_code = status_code , detail = message )
83+ return responses .HTMLResponse (status_code = status_code )
0 commit comments