
    g                     N    S SK r S SKJrJrJr  S SKJr  S SKJr   " S S\	5      r
g)    N)AnyDictOptionalTwilioException)Responsec                   0   \ rS rSrSr1 Skr0 4S\4S jjrS rS r	S r
\S\S	\4S
 j5       rS\\\4   4S jr\S	\\   4S j5       r\S	\\   4S j5       rS\\\4   S	\4S jrS	\S    4S jrS	\S    4S jrS	\S    4S jrS	\S    4S jrS	\4S jrSrg)Page   z
Represents a page of records in a collection.

A `Page` lets you iterate over its records and fetch the next and previous
pages in the collection.
>   enduripagestarttotal	num_pages	page_sizelast_page_urinext_page_urifirst_page_uriprevious_page_uriresponsec                     U R                  U5      nXl        X@l        X0l        [	        U R                  U5      5      U l        g N)process_response_version_payload	_solutioniter	load_page_records)selfversionr   solutionpayloads        X/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/twilio/base/page.py__init__Page.__init__   s6    ''1!T^^G45    c                     U $ )z
A `Page` is a valid iterator.
 r!   s    r%   __iter__Page.__iter__&   s	     r(   c                 "    U R                  5       $ r   )nextr+   s    r%   __next__Page.__next__,   s    yy{r(   c                 J    U R                  [        U R                  5      5      $ )z(
Returns the next record in the `Page`.
)get_instancer/   r    r+   s    r%   r/   	Page.next/   s       dmm!455r(   returnc                 z    UR                   S:w  a  [        SU5      e[        R                  " UR                  5      $ )z]
Load a JSON response.

:param response: The HTTP response.
:return The JSON-loaded content.
   zUnable to fetch page)status_coder   jsonloadstext)clsr   s     r%   r   Page.process_response5   s3     3&!"8(CCzz(--((r(   r$   c                     SU;   a  SUS   ;   a
  XS   S      $ [        UR                  5       5      nX R                  -
  n[        U5      S:X  a  XR	                  5          $ SU;   a  US   $ [        S5      e)z
Parses the collection of records out of a list payload.

:param payload: The JSON-loaded content.
:return list: The list of records.
metakey   	Resourcesz$Page Records can not be deserialized)setkeys	META_KEYSlenpopr   )r!   r$   rD   r@   s       r%   r   Page.load_pageB   s~     W'&/!96?5122w||~&D'C3x1}wwy))g%{++DEEr(   c                    SU R                   ;   a%  SU R                   S   ;   a  U R                   S   S   $ SU R                   ;   aF  U R                   S   (       a2  U R                  R                  R                  U R                   S   5      $ g)zP
:return str: Returns a link to the previous_page_url or None if doesn't exist.
r?   previous_page_urlr   Nr   r   domainabsolute_urlr+   s    r%   rJ   Page.previous_page_urlU   sv    
 T]]"':dmmF>S'S==()<==4==0T]]CV5W==''44T]]CV5WXXr(   c                    SU R                   ;   a%  SU R                   S   ;   a  U R                   S   S   $ SU R                   ;   aF  U R                   S   (       a2  U R                  R                  R                  U R                   S   5      $ g)zL
:return str: Returns a link to the next_page_url or None if doesn't exist.
r?   next_page_urlr   NrK   r+   s    r%   rP   Page.next_page_urlc   sr    
 T]]"$--:O'O==(99-$--2P==''44T]]?5STTr(   c                     [        S5      e)zv
:param dict payload: A JSON-loaded representation of an instance record.
:return: A rich, resource-dependent object.
z<Page.get_instance() must be implemented in the derived classr   )r!   r$   s     r%   r3   Page.get_instanceo   s    
 J
 	
r(   c                     U R                   (       d  gU R                  R                  R                  R	                  SU R                   5      n[        U 5      nU" U R                  XR                  5      $ )z:
Return the `Page` after this one.
:return The next page.
NGET)rP   r   rL   twiliorequesttyper   r!   r   r<   s      r%   	next_pagePage.next_pagex   sV    
 !!==''..66ud>P>PQ4j4==(NN;;r(   c                   #    U R                   (       d  gU R                  R                  R                  R	                  SU R                   5      I Sh  vN n[        U 5      nU" U R                  XR                  5      $  N,7f)zI
Asynchronously return the `Page` after this one.
:return The next page.
NrU   )rP   r   rL   rV   request_asyncrX   r   rY   s      r%   next_page_asyncPage.next_page_async   sh     
 !!--44BB4%%
 
 4j4==(NN;;	
   ABA?-Bc                     U R                   (       d  gU R                  R                  R                  R	                  SU R                   5      n[        U 5      nU" U R                  XR                  5      $ )z?
Return the `Page` before this one.
:return The previous page.
NrU   )rJ   r   rL   rV   rW   rX   r   rY   s      r%   previous_pagePage.previous_page   sV    
 %%==''..66ud>T>TU4j4==(NN;;r(   c                   #    U R                   (       d  gU R                  R                  R                  R	                  SU R                   5      I Sh  vN n[        U 5      nU" U R                  XR                  5      $  N,7f)zN
Asynchronously return the `Page` before this one.
:return The previous page.
NrU   )rJ   r   rL   rV   r]   rX   r   rY   s      r%   previous_page_asyncPage.previous_page_async   sh     
 %%--44BB4))
 
 4j4==(NN;;	
r`   c                     g)Nz<Page>r*   r+   s    r%   __repr__Page.__repr__   s    r(   )r   r    r   r   N)__name__
__module____qualname____firstlineno____doc__rE   r   r&   r,   r0   r/   classmethodr   r   r   strr   propertyr   rJ   rP   r3   rZ   r^   rb   re   rh   __static_attributes__r*   r(   r%   r
   r
      s   I >@ 6( 66 
) 
)S 
) 
)Fc3h F& 8C=   	x} 	 	
DcN 
s 

<8F+ 
<<x'7 <
<x/ 
<<8F+; <# r(   r
   )r9   typingr   r   r   twilio.base.exceptionsr   twilio.http.responser   objectr
   r*   r(   r%   <module>rw      s"     & & 2 )e6 er(   