
    ni                     t    S SK r S SKrS SKrS SKJrJrJr  S SKrS SKrS SKr " S S\	5      r
 " S S\5      rg)    N)datetimetzinfo	timedeltac                   j    \ rS rSr0 S4S jrS rS rS rS rS r	S	 r
0 4S
 jrS rS rS rS rSrg)PandaRequest   Nc                    UR                  5       U l        U R                  U5      U l        X0l        X@l        XPl        U R
                  R                  5        H?  u  pg[        U[        5      (       d  M  [        R                  " U5      U R
                  U'   MA     U R                  5       nS U l        U R                  S:X  a  SU;   a  S[        US   S5      0U l        U R                  5       < US-   U R!                  U5      -   < 3U l        g )NPOSTfilerb?)upperverbcanonical_pathpathcreddata	timestamp	iteritems
isinstancedictjsondumpssigned_paramsfilesopenapi_urlcanonical_querystringrequests_url)	selfr   r   r   r   r   namevalr   s	            I/var/www/html/land-ocr/venv/lib/python3.13/site-packages/panda/request.py__init__PandaRequest.__init__   s    JJL	''-			",,.ID#t$$"&**S/		$ / **,
99FdN $tF|T":;DJ&*llndSj4C]C]^kCl6lm    c                     [        [        U R                  R                  5       5      " U R                  U R
                  S9nUR                  $ )N)r   )getattrrequestsr   lowerr   r   text)r    reqs     r#   sendPandaRequest.send   s3    h		 1243D3DDJJWxxr&   c                    U R                   R                  5       nU R                  S   US'   U R                  S   US'   U R                  =(       d    U R	                  5       US'   UR                  5       nUR                  U5        SU;   a  US	 U R                  U R                  U R                  U R                  S   U R                  S   U5      US'   U$ )Ncloud_id
access_keyr   r   api_host
secret_key	signature)	r   copyr   r   generate_timestampupdategenerate_signaturer   r   )r    auth_paramsadditional_argss      r#   r   PandaRequest.signed_params   s    iinn&"&))J"7J$(IIl$;L!#'>>#NT5L5L5NK %**,{+ _$'#'#:#:499diiQUQZQZ[eQfhlhqhqr~h  BQ  $RK r&   c                 >    [        U R                  S   5      S:X  a  gg)Napi_port443httpshttpstrr   r    s    r#   api_protocolPandaRequest.api_protocol.   s    tyy$%.r&   c                 l    U R                  5       S-   U R                  5       -   U R                  5       -   $ )Nz://)rD   api_host_and_portapi_pathrC   s    r#   r   PandaRequest.api_url4   s/      "U*T-C-C-EEWWr&   c                     U R                   S   n[        U R                   S   5      S:w  a  US[        U R                   S   5      -   -  nU$ )Nr2   r=   80:)r   rB   )r    rets     r#   rG   PandaRequest.api_host_and_port7   sH    ii
#tyy$%-3TYYz2333C
r&   c                 8    S[        U R                  S   5      -   $ )Nz/vapi_versionrA   rC   s    r#   rH   PandaRequest.api_path=   s    c$))M2333r&   c                 2   U R                  U5      nUR                  5       S-   UR                  5       -   S-   U-   S-   U-   n[        R                  " XG[
        R                  5      R                  5       n[        R                  " U5      R                  5       $ )N
)r   r   r*   hmacnewhashlibsha256digestbase64	b64encodestrip)	r    r   request_urihostr3   paramsquery_stringstring_to_signr4   s	            r#   r8   PandaRequest.generate_signature@   s    11&9 JJL4JJL   	 HHZHOOQ		*0022r&   c                     [        U5      R                  S5      n[        R                  " U5      R	                  SS5      R	                  SS5      R	                  SS5      $ )Nzutf-8z%7E~ z%20/z%2F)unicodeencodeurllibquotereplace)r    ss     r#   	urlescapePandaRequest.urlescapeL   sL    AJg&||A&&uc2::3FNNsTYZZr&   c                 *    SUR                  S5      -   $ )Nre   z 	
 /)r[   )r    r   s     r#   r   PandaRequest.canonical_pathP   s    TZZ 0111r&   c                 F   ^ ^ SUU 4S jjmSR                  T" U5      5      $ )Nc                   > / n[        U R                  5        VVs/ s H  u  p4X44PM
     snn5      nU H  u  pgUS:X  a  M  [        US5      (       a  UT	" Xv5      -  nM+  S nU(       a,  U< ST
R                  U5      < ST
R                  U5      < 3nO'T
R                  U5      < ST
R                  U5      < 3nUR	                  U5        M     U$ s  snnf )Nr   values[z]==)sortedr   hasattrrl   append)dbasepairskvordered_paramskeyvaluenew_pair	recursionr    s            r#   r   5PandaRequest.canonical_querystring.<locals>.recursionT   s    E#$FaV$FGN,
&=5(++Yu22E#H26s8KT^^\aMb#c.2nnS.A4>>RWCX#YLL* - L %Gs   C
&N)join)r    rx   r   s   ` @r#   r   "PandaRequest.canonical_querystringS   s"    	 	" xx	!%%r&   c                 Z    [         R                  " [        5       5      R                  5       $ r   )r   nowUTC	isoformatrC   s    r#   r6   PandaRequest.generate_timestampg   s    ||CE",,..r&   )r   r   r   r   r   r   r   )__name__
__module____qualname____firstlineno__r$   r-   r   rD   r   rG   rH   r8   rl   r   r   r6   __static_attributes__ r&   r#   r   r      sM    .0D n&X4 NP 
3[2&(/r&   r   c                   *    \ rS rSrS rS rS rS rSrg)r   j   c                     [        S5      $ Nr   r   r    dts     r#   	utcoffsetUTC.utcoffsetm       |r&   c                     g)Nr   r   r   s     r#   tzname
UTC.tznamep   s    r&   c                     [        S5      $ r   r   r   s     r#   dstUTC.dsts   r   r&   r   N)	r   r   r   r   __doc__r   r   r   r   r   r&   r#   r   r   j   s    r&   r   )rV   rT   rY   r   r   r   r)   rh   r   objectr   r   r   r&   r#   <module>r      s5      0 0   a/6 a/F
& 
r&   