
    i?1i                    @   d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
mZmZmZmZmZmZmZ d dlmZmZ e
rd dlmZ dZdZd	d
gZ ed      Zeg df   ZddZddZddZddddd	 	 	 	 	 	 	 	 	 	 	 ddZddddd	 	 	 	 	 	 	 	 	 	 	 ddZ ddZ!ddZ"d d!dZ#y)"    )annotationsN)
HTTPStatus)TYPE_CHECKINGAny	AwaitableCallableDictListTypeVarcast)is_file_or_bytesmaybe_extract_enum_member_value)ApifyApiError   Atzrecord-not-foundzrecord-or-token-not-foundTc                &    | j                  dd      S )N/~)replace)ids    ]/home/www/therecruiter.miabetepe.com/venv/lib/python3.12/site-packages/apify_client/_utils.py
to_safe_idr      s     ::c3    c                f    t        | t              rd| v rt        t        | d         S t	        d      Ndataz/The "data" property is missing in the response.)
isinstancedictr   r	   
ValueErrorparsed_responses    r   
pluck_datar#       1    /4(V-FD/&122
F
GGr   c                f    t        | t              rd| v rt        t        | d         S t	        d      r   )r   r   r   r
   r    r!   s    r   pluck_data_as_listr&   '   r$   r      i        )max_retriesbackoff_base_millisbackoff_factorrandom_factorc               n   t        t        d|      d      }t        t        d|      d      }ddfd}t        d|dz         D ]  }	  | ||      c S   | ||dz         S # t        $ r s Y nw xY wt	        j
                  dd|z         }|dz  }||dz
  z  }	||z  |	z  }
t        j                  |
       r)Nr   r)   
   Tc                 
    d y NF swallows   r   stop_retryingz-retry_with_exp_backoff.<locals>.stop_retrying:       r     returnNone)minmaxrange	Exceptionrandomuniformtimesleep)funcr*   r+   r,   r-   r5   attemptrandom_sleep_factorbackoff_base_secsbackoff_exp_factorsleep_time_secsr4   s              @r   retry_with_exp_backoffrI   .   s     A}-q1MQ/4NG K!O, $	w//$ {Q//  	 	 %nnQM0AB/$6+!<-0AADVV

?#s   	A!!A0/A0c                 K   t        t        d|      d      }t        t        d|      d      }ddfd}t        d|dz         D ]  }	  | ||       d {   c S   | ||dz          d {   S 7 # t        $ r s Y nw xY wt	        j
                  dd|z         }|dz  }||dz
  z  }	||z  |	z  }
t        j                  |
       d {  7   7 ew)Nr   r)   r/   Tc                 
    d y r1   r2   r3   s   r   r5   z3retry_with_exp_backoff_async.<locals>.stop_retrying[   r6   r   r7   r8   )r;   r<   r=   r>   r?   r@   asynciorB   )
async_funcr*   r+   r,   r-   r5   rD   rE   rF   rG   rH   r4   s              @r   retry_with_exp_backoff_asyncrN   O   s      A}-q1MQ/4NG K!O, -	#M7;;;- M;?;;; < 	 	 %nnQM0AB/$6+!<-0AADVVmmO,,,;sU   ACA5A3A5C.C/C3A55BCBA	CCCc                n    | j                   t        j                  k(  }| j                  t        v }|r|s| y N)status_coder   	NOT_FOUNDtype RECORD_NOT_FOUND_EXCEPTION_TYPES)excis_not_found_statusis_not_found_types      r   catch_not_found_or_throwrX   p   s7    //Z-A-AA$DD$5	 %6r   c                (   g }| D ]A  }|d   D cg c]  }t        |       c}|d   d}d|v r|d   |d<   |j                  |       C t        j                  t	        j
                  |      j                  d            j                  d      S c c}w )zgEncode a list of dictionaries representing webhooks to their base64-encoded representation for the API.event_typesrequest_url)
eventTypes
requestUrlpayload_templatepayloadTemplateutf-8ascii)r   appendbase64	b64encodejsondumpsencodedecode)webhooksr   webhook
event_typewebhook_representations        r   encode_webhook_list_to_base64rm   w   s    D ,Y`anYop:::Fp!-0"
 (8?@R8S"#45*+, DJJt,33G<=DDWMM qs   Bc                    |s#t        |       rd}nt        | t              rd}nd}d|v rHt        |       s=t        | t              s-t        j                  | dddt              j                  d      } | |fS )	Nzapplication/octet-streamztext/plain; charset=utf-8zapplication/json; charset=utf-8zapplication/jsonFr(   )ensure_asciiindent	allow_nandefaultr`   )r   r   strre   rf   rg   )valuecontent_types     r   #encode_key_value_store_record_valuerv      sp    E"5Ls#6L<L\)2B52IR\]bdgRh

5uQ%Y\]ddelm<  r   )r   rs   r9   rs   )r"   r   r9   r   )r"   r   r9   list)rC   z$Callable[[StopRetryingType, int], T]r*   intr+   rx   r,   floatr-   ry   r9   r   )rM   z/Callable[[StopRetryingType, int], Awaitable[T]]r*   rx   r+   rx   r,   ry   r-   ry   r9   r   )rU   r   r9   r:   )ri   z
list[dict]r9   rs   rP   )rt   r   ru   z
str | Noner9   ztuple[Any, str])$
__future__r   rL   rc   re   r?   rA   httpr   typingr   r   r   r   r	   r
   r   r   apify_shared.utilsr   r   apify_client._errorsr   PARSE_DATE_FIELDS_MAX_DEPTHPARSE_DATE_FIELDS_KEY_SUFFIXrT   r   StopRetryingTyper   r#   r&   rI   rN   rX   rm   rv   r2   r   r   <module>r      s   "       U U U P2 # $68S#T  CLBH%  HH "0
.0 0 	0
 0 0 0H "<?< < 	<
 < < <BN!r   