Coverage for /usr/local/lib/python3.12/site-packages/prefect/server/schemas/graph.py: 100%

37 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-07 02:04 +0000

1from typing import Any, List, Literal, Optional, Tuple 

2from uuid import UUID 

3 

4from prefect.server.schemas.states import StateType 

5from prefect.server.utilities.schemas import PrefectBaseModel 

6from prefect.types._datetime import DateTime 

7 

8 

9class GraphState(PrefectBaseModel): 

10 id: UUID 

11 timestamp: DateTime 

12 type: StateType 

13 name: str 

14 

15 

16class GraphArtifact(PrefectBaseModel): 

17 id: UUID 

18 created: DateTime 

19 key: Optional[str] 

20 type: Optional[str] 

21 is_latest: bool 

22 data: Optional[Any] # we only return data for progress artifacts for now 

23 

24 

25class Edge(PrefectBaseModel): 

26 id: UUID 

27 

28 

29class Node(PrefectBaseModel): 

30 kind: Literal["flow-run", "task-run"] 

31 id: UUID 

32 label: str 

33 state_type: StateType 

34 start_time: DateTime 

35 end_time: Optional[DateTime] 

36 parents: List[Edge] 

37 children: List[Edge] 

38 encapsulating: List[Edge] 

39 artifacts: List[GraphArtifact] 

40 

41 

42class Graph(PrefectBaseModel): 

43 start_time: Optional[DateTime] 

44 end_time: Optional[DateTime] 

45 root_node_ids: List[UUID] 

46 nodes: List[Tuple[UUID, Node]] 

47 artifacts: List[GraphArtifact] 

48 states: List[GraphState]