Coverage for backend/ahuora-builder-types/src/ahuora_builder_types/payloads/solve_request_schema.py: 100%

27 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2026-05-13 02:47 +0000

1from typing import Optional 

2 

3from pydantic import BaseModel, Field 

4from ahuora_builder_types import FlowsheetSchema 

5from ahuora_builder_types.flowsheet_schema import SolvedFlowsheetSchema 

6 

7 

8class IdaesSolveRequestPayload(BaseModel): 

9 """ 

10 Payload for IDAES solve requests 

11 """ 

12 flowsheet: FlowsheetSchema 

13 solve_index: Optional[int] = None 

14 scenario_id: Optional[int] = None 

15 task_id: int 

16 parent_task_id: Optional[int] = None 

17 perform_diagnostics: bool = False 

18 solve_timeout_seconds: Optional[int] = Field( 

19 default=None, 

20 ge=5, 

21 le=3600, 

22 description=( 

23 "Optional per-request timeout in seconds. " 

24 "When omitted, the solve runs without timeout enforcement." 

25 ), 

26 ) 

27 

28 

29class IdaesSolveCompletionPayload(BaseModel): 

30 """ 

31 Payload for IDAES solve completion events 

32 """ 

33 flowsheet: Optional[SolvedFlowsheetSchema] 

34 input_flowsheet: FlowsheetSchema 

35 solve_index: Optional[int] 

36 scenario_id: Optional[int] = None 

37 task_id: int 

38 status: str 

39 error: Optional[dict] 

40 timing: dict 

41 log: str 

42 traceback: Optional[str] 

43 diagnostics_raw_text: Optional[str] = None 

44 

45class MultiSolvePayload(BaseModel): 

46 """ 

47 Payload for dispatching multi-steady state solves 

48 """ 

49 task_id: int 

50 scenario_id: int