Ë
    s0žjÌ"  ã                  ó.  — d dl mZ d dlZd dlZddlmZ ddlmZmZm	Z	 ddl
mZ ej                  rd dlZg d¢Z G d„ d	«      Z e«       Z	 	 	 d	 	 	 	 	 	 	 dd
„Z G d„ d«      Z G d„ d«      Z G d„ d«      Z ed¬«      Z edd¬«      ZdZdZdZdZdZdZy)é    )ÚannotationsNé   )ÚHeaders)Ú	CertTypesÚHeaderTypesÚTimeoutTypes)ÚURL)ÚLimitsÚProxyÚTimeoutÚcreate_ssl_contextc                  ó   — e Zd Zy)Ú	UnsetTypeN)Ú__name__Ú
__module__Ú__qualname__© ó    úF/home/Script/Script_env/lib/python3.12/site-packages/httpx2/_config.pyr   r      s   „ Ør   r   c                óz  — dd l }dd l}dd l}| du r©|rEt        j                  j                  d«      r& |j                  t        j                  d   ¬«      }�n|rDt        j                  j                  d«      r% |j                  t        j                  d   ¬«      }nÑ|j                  |j                  «      }nµ| du r5 |j                  |j                  «      }d|_	        |j                  |_        n|t        | t        «      rj|rt        d«      ‚d	}|j                  |t         «       t        j"                  j%                  | «      r |j                  | ¬«      S  |j                  | ¬«      S | }|rJd
}|j                  |t         «       t        |t        «      r|j'                  |«       |S  |j&                  |Ž  |S )Nr   TÚSSL_CERT_FILE)ÚcafileÚSSL_CERT_DIR)ÚcapathFzª`verify=<str>` cannot be combined with `cert=...`. Build an `ssl.SSLContext` and pass it as `verify=<ctx>`, using `.load_cert_chain()` to configure the certificate chain.z�`verify=<str>` is deprecated. Use `verify=ssl.create_default_context(cafile=...)` or `verify=ssl.create_default_context(capath=...)` instead.zz`cert=...` is deprecated. Use `verify=<ssl_context>` instead,with `.load_cert_chain()` to configure the certificate chain.)ÚsslÚwarningsÚ
truststoreÚosÚenvironÚgetÚcreate_default_contextÚ
SSLContextÚPROTOCOL_TLS_CLIENTÚcheck_hostnameÚ	CERT_NONEÚverify_modeÚ
isinstanceÚstrÚ	TypeErrorÚwarnÚDeprecationWarningÚpathÚisdirÚload_cert_chain)ÚverifyÚcertÚ	trust_envr   r   r   ÚctxÚmessages           r   r   r      s‚  € ó
 Ûãà��~ÙœŸ™Ÿ™¨Ô8Ø,�#×,Ñ,´B·J±J¸Ñ4OÔPŠCÙœ2Ÿ:™:Ÿ>™>¨.Ô9Ø,�#×,Ñ,´B·J±J¸~Ñ4NÔO‰Cð ×'Ñ'¨×(?Ñ(?Ó@‰CØ	�5‰Øˆc�n‰n˜S×4Ñ4Ó5ˆØ"ˆÔØŸ-™-ˆ�Ü	�FœCÔ	 ÙÜðQóð ðJð 	ð
 	�‰�gÔ1Ô2Ü�7‰7�=‰=˜Ô Ø-�3×-Ñ-°VÔ<Ð<Ø)ˆs×)Ñ)°Ô8Ð8àˆáðLð 	ð 	�‰�gÔ1Ô2Ü�dœCÔ Ø×Ñ Ô%ð €Jð  ˆC×Ñ Ñ&à€Jr   c                  ó€   — e Zd ZU dZded<   ded<   ded<   ded<   efeeeedœ	 	 	 	 	 	 	 	 	 	 	 dd„Zdd	„Zdd
„Zdd„Z	y)r   aÄ  
    Timeout configuration.

    **Usage**:

    Timeout(None)               # No timeouts.
    Timeout(5.0)                # 5s timeout on all operations.
    Timeout(None, connect=5.0)  # 5s timeout on connect, no other timeouts.
    Timeout(5.0, connect=10.0)  # 10s timeout on connect. 5s timeout elsewhere.
    Timeout(5.0, pool=None)     # No timeout on acquiring connection from pool.
                                # 5s timeout elsewhere.
    úfloat | NoneÚconnectÚreadÚwriteÚpool©r6   r7   r8   r9   c               ót  — t        |t        «      rm|t        u sJ ‚|t        u sJ ‚|t        u sJ ‚|t        u sJ ‚|j                  | _        |j                  | _        |j
                  | _        |j                  | _        y t        |t        «      rO|d   | _        |d   | _        t        |«      dk  rd n|d   | _        t        |«      dk  rd | _        y |d   | _        y t        |t        «      sMt        |t        «      s=t        |t        «      s-t        |t        «      s|| _        || _        || _        || _        y t        |t        «      rt        d«      ‚t        |t        «      r|n|| _        t        |t        «      r|n|| _        t        |t        «      r|n|| _        t        |t        «      r|n|| _        y )Nr   r   é   é   é   zThttpx2.Timeout must either include a default, or set all four parameters explicitly.)r'   r   ÚUNSETr6   r7   r8   r9   ÚtupleÚlenr   Ú
ValueError)ÚselfÚtimeoutr6   r7   r8   r9   s         r   Ú__init__zTimeout.__init__a   sb  € ô �gœwÔ'àœeÑ#Ð#Ð#Øœ5‘=Ð �=ØœE‘>Ð!�>Øœ5‘=Ð �=Ø"Ÿ?™?ˆDŒLØŸ™ˆDŒIØ Ÿ™ˆDŒJØŸ™ˆD�IÜ˜¤Ô'à" 1™:ˆDŒLØ ™
ˆDŒIÜ!$ W£°Ò!1™°w¸q±zˆDŒJÜ # G£¨qÒ 0˜ˆD�I°g¸a±jˆD�Iä�w¤	Ô*Ü˜$¤	Ô*Ü˜%¤Ô+Ü˜$¤	Ô*à"ˆDŒLØˆDŒIØˆDŒJØˆD�Iä˜'¤9Ô-Ü Ð!wÓxÐxÜ&0°¼)Ô&D™7È'ˆDŒLÜ#-¨d´IÔ#>™ÀDˆDŒIÜ$.¨u´iÔ$@™ÀeˆDŒJÜ#-¨d´IÔ#>™ÀDˆD�Ir   c                ó`   — | j                   | j                  | j                  | j                  dœS )Nr:   r:   ©rC   s    r   Úas_dictzTimeout.as_dictŒ   s(   € à—|‘|Ø—I‘IØ—Z‘ZØ—I‘Iñ	
ð 	
r   c                ó  — t        || j                  «      xrj | j                  |j                  k(  xrO | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j
                  |j
                  k(  S ©N)r'   Ú	__class__r6   r7   r8   r9   ©rC   Úothers     r   Ú__eq__zTimeout.__eq__”   sm   € ä�u˜dŸn™nÓ-ò (Ø—‘ §¡Ñ-ò(à—	‘	˜UŸZ™ZÑ'ò(ð —
‘
˜eŸk™kÑ)ò(ð —	‘	˜UŸZ™ZÑ'ð	
r   c           
     ó8  — | j                   j                  }t        | j                  | j                  | j
                  | j                  h«      dk(  r|› d| j                  › d�S |› d| j                  › d| j                  › d| j
                  › d| j                  › d�
S )Nr   z	(timeout=ú)z	(connect=z, read=z, write=z, pool=)rK   r   rA   r6   r7   r8   r9   ©rC   Ú
class_names     r   Ú__repr__zTimeout.__repr__�   s‰   € Ø—^‘^×,Ñ,ˆ
Ü�—‘˜dŸi™i¨¯©°T·Y±YÐ?Ó@ÀAÒEØ �\ ¨4¯<©<¨.¸Ð:Ð:Ø�˜Y t§|¡| n°G¸D¿I¹I¸;ÀhÈtÏzÉzÈlÐZaÐbf×bkÑbkÐalÐlmÐnÐnr   N)rD   zTimeoutTypes | UnsetTyper6   úNone | float | UnsetTyper7   rT   r8   rT   r9   rT   ÚreturnÚNone)rU   zdict[str, float | None]©rM   z
typing.AnyrU   Úbool©rU   r(   )
r   r   r   Ú__doc__Ú__annotations__r?   rE   rH   rN   rS   r   r   r   r   r   N   s‘   … ñð ÓØ
ÓØÓØ
Óð -2ð)Ið -2Ø).Ø*/Ø).ñ)Ià)ð)Ið *ð	)Ið
 'ð)Ið (ð)Ið 'ð)Ið 
ó)IóV
ó
ôor   r   c                  ó@   — e Zd ZdZddddœ	 	 	 	 	 	 	 dd„Zd	d„Zd
d„Zy)r
   aÖ  
    Configuration for limits to various client behaviors.

    **Parameters:**

    * **max_connections** - The maximum number of concurrent connections that may be
            established.
    * **max_keepalive_connections** - Allow the connection pool to maintain
            keep-alive connections below this point. Should be less than or equal
            to `max_connections`.
    * **keepalive_expiry** - Time limit on idle keep-alive connections in seconds.
    Nç      @©Úmax_connectionsÚmax_keepalive_connectionsÚkeepalive_expiryc               ó.   — || _         || _        || _        y rJ   r^   )rC   r_   r`   ra   s       r   rE   zLimits.__init__²   s   € ð  /ˆÔØ)BˆÔ&Ø 0ˆÕr   c                óÐ   — t        || j                  «      xrO | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j                  |j                  k(  S rJ   )r'   rK   r_   r`   ra   rL   s     r   rN   zLimits.__eq__½   se   € ä�u˜dŸn™nÓ-ò @Ø×$Ñ$¨×(=Ñ(=Ñ=ò@à×.Ñ.°%×2QÑ2QÑQò@ð ×%Ñ%¨×)?Ñ)?Ñ?ð		
r   c                ó†   — | j                   j                  }|› d| j                  › d| j                  › d| j                  › d�S )Nz(max_connections=z, max_keepalive_connections=z, keepalive_expiry=rP   )rK   r   r_   r`   ra   rQ   s     r   rS   zLimits.__repr__Å   sT   € Ø—^‘^×,Ñ,ˆ
àˆlÐ+¨D×,@Ñ,@Ð+Að B)Ø)-×)GÑ)GÐ(Hð I Ø $× 5Ñ 5Ð6°að9ð	
r   )r_   ú
int | Noner`   re   ra   r5   rU   rV   rW   rY   )r   r   r   rZ   rE   rN   rS   r   r   r   r
   r
   ¤   sI   „ ñð  '+Ø04Ø),ñ	1ð $ð	1ð $.ð		1ð
 'ð	1ð 
ó	1ó
ô
r   r
   c                  óJ   — e Zd Zddddœ	 	 	 	 	 	 	 	 	 dd„Zedd„«       Zdd„Zy)	r   N)Ússl_contextÚauthÚheadersc               ó&  — t        |«      }t        |«      }|j                  dvrt        d|›�«      ‚|j                  s|j
                  r+|j                  |j
                  f}|j                  d d ¬«      }|| _        || _        || _	        || _
        y )N)ÚhttpÚhttpsÚsocks5Úsocks5hzUnknown scheme for proxy URL )ÚusernameÚpassword)r	   r   ÚschemerB   ro   rp   Ú	copy_withÚurlrh   ri   rg   )rC   rs   rg   rh   ri   s        r   rE   zProxy.__init__Ï   s…   € ô �#‹hˆÜ˜'Ó"ˆà�:‰:ÐCÑCÜÐ<¸S¸GÐDÓEÐEà�<Š<˜3Ÿ<š<à—L‘L #§,¡,Ð/ˆDØ—-‘-¨¸�-Ó=ˆCàˆŒØˆŒ	ØˆŒØ&ˆÕr   c                ó–   — | j                   €d S | j                   d   j                  d«      | j                   d   j                  d«      fS )Nr   zutf-8r   )rh   ÚencoderG   s    r   Úraw_authzProxy.raw_authç   sE   € ð —y‘yÐ(ˆtÐj¨t¯y©y¸©|×/BÑ/BÀ7Ó/KÈTÏYÉYÐWXÉ\×M`ÑM`ÐahÓMiÐ.jÐjr   c                óÞ   — | j                   r| j                   d   dfnd }t        | j                  «      ›}|rd|›�nd}| j                  rdt	        | j                  «      ›�nd}d|› |› |› d�S )Nr   z********z, auth=Ú z
, headers=zProxy(rP   )rh   r(   rs   ri   Údict)rC   rh   Úurl_strÚauth_strÚheaders_strs        r   rS   zProxy.__repr__ì   ss   € à-1¯YªY�—	‘	˜!‘˜jÑ)¸Dˆô ˜Ÿ™“]Ð%ˆÙ)-�W˜T˜HÑ%°2ˆØ=A¿\º\˜
¤4¨¯©Ó#5Ð"8Ñ9ÈrˆØ˜�y  
¨;¨-°qÐ9Ð9r   )
rs   z	URL | strrg   zssl.SSLContext | Nonerh   ztuple[str, str] | Noneri   zHeaderTypes | NonerU   rV   )rU   ztuple[bytes, bytes] | NonerY   )r   r   r   rE   Úpropertyrv   rS   r   r   r   r   r   Î   s]   „ ð
 .2Ø'+Ø&*ñ'àð'ð +ð	'ð
 %ð'ð $ð'ð 
ó'ð0 òkó ðkô:r   r   r]   )rD   éd   é   )r_   r`   i   i   i   g      4@)TNT)r/   zssl.SSLContext | str | boolr0   zCertTypes | Noner1   rX   rU   zssl.SSLContext)Ú
__future__r   r   ÚtypingÚ_modelsr   Ú_typesr   r   r   Ú_urlsr	   ÚTYPE_CHECKINGr   Ú__all__r   r?   r   r   r
   r   ÚDEFAULT_TIMEOUT_CONFIGÚDEFAULT_LIMITSÚDEFAULT_MAX_REDIRECTSÚDEFAULT_MAX_EVENT_SIZE_BYTESÚDEFAULT_MAX_MESSAGE_SIZE_BYTESÚDEFAULT_QUEUE_SIZEÚ'DEFAULT_KEEPALIVE_PING_INTERVAL_SECONDSÚ&DEFAULT_KEEPALIVE_PING_TIMEOUT_SECONDSr   r   r   ú<module>r�      sÕ   ðÝ "ã 	Û å ß 8Ñ 8Ý à	×ÒÛâ
>€÷	ñ 	ñ 	‹€ð +/Ø!Øð4Ø'ð4à
ð4ð ð4ð ó	4÷nSoñ So÷l'
ñ '
÷T&:ñ &:ñR !¨Ô-Ð Ù¨ÀrÔJ€ØÐ à*Ð à!'Ð ØÐ Ø*.Ð 'Ø)-Ñ &r   