11from __future__ import annotations
22
33import time
4+ from collections .abc import Iterator
45
56from ..errors import (
67 InvalidPolicyCheckIDError ,
78 InvalidRunIDError ,
89)
910from ..models .policy_check import (
1011 PolicyCheck ,
11- PolicyCheckList ,
1212 PolicyCheckListOptions ,
1313 PolicyStatus ,
1414)
@@ -24,35 +24,19 @@ class PolicyChecks(_Service):
2424
2525 def list (
2626 self , run_id : str , options : PolicyCheckListOptions | None = None
27- ) -> PolicyCheckList :
27+ ) -> Iterator [ PolicyCheck ] :
2828 """List all policy checks of the given run."""
2929 if not valid_string_id (run_id ):
3030 raise InvalidRunIDError ()
3131 params = (
3232 options .model_dump (by_alias = True , exclude_none = True ) if options else None
3333 )
34- r = self .t .request (
35- "GET" ,
36- f"/api/v2/runs/{ run_id } /policy-checks" ,
37- params = params ,
38- )
39- jd = r .json ()
40- items = []
41- meta = jd .get ("meta" , {})
42- pagination = meta .get ("pagination" , {})
43- for d in jd .get ("data" , []):
44- attrs = d .get ("attributes" , {})
45- attrs ["id" ] = d .get ("id" )
46- attrs ["run" ] = d .get ("relationships" , {}).get ("run" , {})
47- items .append (PolicyCheck .model_validate (attrs ))
48- return PolicyCheckList (
49- items = items ,
50- current_page = pagination .get ("current-page" ),
51- total_pages = pagination .get ("total-pages" ),
52- prev_page = pagination .get ("prev-page" ),
53- next_page = pagination .get ("next-page" ),
54- total_count = pagination .get ("total-count" ),
55- )
34+ path = f"/api/v2/runs/{ run_id } /policy-checks"
35+ for item in self ._list (path , params = params ):
36+ attrs = item .get ("attributes" , {})
37+ attrs ["id" ] = item .get ("id" )
38+ attrs ["run" ] = item .get ("relationships" , {}).get ("run" , {}).get ("data" )
39+ yield PolicyCheck .model_validate (attrs )
5640
5741 def read (self , policy_check_id : str ) -> PolicyCheck :
5842 """Read a policy check by its ID."""
@@ -66,7 +50,7 @@ def read(self, policy_check_id: str) -> PolicyCheck:
6650 d = jd .get ("data" , {})
6751 attrs = d .get ("attributes" , {})
6852 attrs ["id" ] = d .get ("id" )
69- attrs ["run" ] = d .get ("relationships" , {}).get ("run" , {})
53+ attrs ["run" ] = d .get ("relationships" , {}).get ("run" , {}). get ( "data" )
7054 return PolicyCheck .model_validate (attrs )
7155
7256 def override (self , policy_check_id : str ) -> PolicyCheck :
@@ -81,7 +65,7 @@ def override(self, policy_check_id: str) -> PolicyCheck:
8165 d = jd .get ("data" , {})
8266 attrs = d .get ("attributes" , {})
8367 attrs ["id" ] = d .get ("id" )
84- attrs ["run" ] = d .get ("relationships" , {}).get ("run" , {})
68+ attrs ["run" ] = d .get ("relationships" , {}).get ("run" , {}). get ( "data" )
8569 return PolicyCheck .model_validate (attrs )
8670
8771 def logs (self , policy_check_id : str ) -> str :
0 commit comments