Coverage for backend/common/models/idaes/payloads/solve_request_schema.py: 100%

28 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2025-11-06 23:27 +0000

1from typing import Optional 

2 

3from pydantic import BaseModel 

4from common.models import CloudEventsPayload 

5from common.models.idaes import FlowsheetSchema 

6from common.models.idaes.flowsheet_schema import SolvedFlowsheetSchema 

7 

8 

9class IdaesSolveRequestPayload(BaseModel): 

10 """ 

11 Payload for IDAES solve requests 

12 """ 

13 flowsheet: FlowsheetSchema 

14 solve_index: Optional[int] = None 

15 scenario_id: Optional[int] = None 

16 task_id: int 

17 perform_diagnostics: bool = False 

18 

19 

20class IdaesSolveCompletionPayload(BaseModel): 

21 """ 

22 Payload for IDAES solve completion events 

23 """ 

24 flowsheet: Optional[SolvedFlowsheetSchema] 

25 input_flowsheet: FlowsheetSchema 

26 solve_index: Optional[int] 

27 scenario_id: Optional[int] = None 

28 task_id: int 

29 status: str 

30 error: Optional[dict] 

31 timing: dict 

32 log: str 

33 traceback: Optional[str] 

34 

35class MultiSolvePayload(BaseModel): 

36 """ 

37 Payload for dispatching multi-steady state solves 

38 """ 

39 task_id: int 

40 scenario_id: int 

41 

42IdaesSolveEvent = CloudEventsPayload[IdaesSolveRequestPayload] 

43IdaesSolveCompletionEvent = CloudEventsPayload[IdaesSolveCompletionPayload] 

44DispatchMultiSolveEvent = CloudEventsPayload[MultiSolvePayload]