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
« 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
4from prefect.server.schemas.states import StateType
5from prefect.server.utilities.schemas import PrefectBaseModel
6from prefect.types._datetime import DateTime
9class GraphState(PrefectBaseModel):
10 id: UUID
11 timestamp: DateTime
12 type: StateType
13 name: str
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
25class Edge(PrefectBaseModel):
26 id: UUID
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]
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]