11# File generated from our OpenAPI spec by Stainless. 
22
33from  typing  import  Any , List , Generic , Optional , cast 
4- from  typing_extensions  import  Literal ,  Protocol , override , runtime_checkable 
4+ from  typing_extensions  import  Protocol , override , runtime_checkable 
55
66from  ._types  import  ModelT 
77from  ._base_client  import  BasePage , PageInfo , BaseSyncPage , BaseAsyncPage 
1111
1212@runtime_checkable  
1313class  CursorPageItem (Protocol ):
14-     id : str 
14+     id : Optional [ str ] 
1515
1616
1717class  SyncPage (BaseSyncPage [ModelT ], BasePage [ModelT ], Generic [ModelT ]):
1818    """Note: no pagination actually occurs yet, this is for forwards-compatibility.""" 
1919
2020    data : List [ModelT ]
21-     object : Literal [ "list" ] 
21+     object : str 
2222
2323    @override  
2424    def  _get_page_items (self ) ->  List [ModelT ]:
25-         return  self .data 
25+         data  =  self .data 
26+         if  not  data :
27+             return  []
28+         return  data 
2629
2730    @override  
2831    def  next_page_info (self ) ->  None :
@@ -37,11 +40,14 @@ class AsyncPage(BaseAsyncPage[ModelT], BasePage[ModelT], Generic[ModelT]):
3740    """Note: no pagination actually occurs yet, this is for forwards-compatibility.""" 
3841
3942    data : List [ModelT ]
40-     object : Literal [ "list" ] 
43+     object : str 
4144
4245    @override  
4346    def  _get_page_items (self ) ->  List [ModelT ]:
44-         return  self .data 
47+         data  =  self .data 
48+         if  not  data :
49+             return  []
50+         return  data 
4551
4652    @override  
4753    def  next_page_info (self ) ->  None :
@@ -57,15 +63,19 @@ class SyncCursorPage(BaseSyncPage[ModelT], BasePage[ModelT], Generic[ModelT]):
5763
5864    @override  
5965    def  _get_page_items (self ) ->  List [ModelT ]:
60-         return  self .data 
66+         data  =  self .data 
67+         if  not  data :
68+             return  []
69+         return  data 
6170
6271    @override  
6372    def  next_page_info (self ) ->  Optional [PageInfo ]:
64-         if  not  self .data :
73+         data  =  self .data 
74+         if  not  data :
6575            return  None 
6676
67-         item  =  cast (Any , self . data [- 1 ])
68-         if  not  isinstance (item , CursorPageItem ):
77+         item  =  cast (Any , data [- 1 ])
78+         if  not  isinstance (item , CursorPageItem )  or   item . id   is   None :
6979            # TODO emit warning log 
7080            return  None 
7181
@@ -77,15 +87,19 @@ class AsyncCursorPage(BaseAsyncPage[ModelT], BasePage[ModelT], Generic[ModelT]):
7787
7888    @override  
7989    def  _get_page_items (self ) ->  List [ModelT ]:
80-         return  self .data 
90+         data  =  self .data 
91+         if  not  data :
92+             return  []
93+         return  data 
8194
8295    @override  
8396    def  next_page_info (self ) ->  Optional [PageInfo ]:
84-         if  not  self .data :
97+         data  =  self .data 
98+         if  not  data :
8599            return  None 
86100
87-         item  =  cast (Any , self . data [- 1 ])
88-         if  not  isinstance (item , CursorPageItem ):
101+         item  =  cast (Any , data [- 1 ])
102+         if  not  isinstance (item , CursorPageItem )  or   item . id   is   None :
89103            # TODO emit warning log 
90104            return  None 
91105
0 commit comments