Ë
    Eü´j§  ã                  ó�  — d dl m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
 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 ej&                  dd¬«       G d„ d«      «       Z ej&                  d
¬«       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__© ó    úL/root/workspace/ytshorts/venv/lib/python3.12/site-packages/httpx2/_config.pyr   r      s   „ Ør   r   Tc                ó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   F)ÚinitÚreprc                  óx   — 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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©r8   r9   r:   r;   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   ÚUNSETr8   r9   r:   r;   ÚtupleÚlenr   Ú
ValueError)ÚselfÚtimeoutr8   r9   r:   r;   s         r   Ú__init__zTimeout.__init__c   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<   ©rE   s    r   Úas_dictzTimeout.as_dictŽ   s(   € à—|‘|Ø—I‘IØ—Z‘ZØ—I‘Iñ	
ð 	
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=)Ú	__class__r   rC   r8   r9   r:   r;   )rE   Ú
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)rF   zTimeoutTypes | UnsetTyper8   úNone | float | UnsetTyper9   rP   r:   rP   r;   rP   ÚreturnÚNone)rQ   zdict[str, float | None]©rQ   r(   )	r   r   r   Ú__doc__Ú__annotations__rA   rG   rJ   rO   r   r   r   r   r   O   sŒ   … ñð ÓØ
ÓØÓØ
Óð -2ð)Ið -2Ø).Ø*/Ø).ñ)Ià)ð)Ið *ð	)Ið
 'ð)Ið (ð)Ið 'ð)Ið 
ó)IóV
ôor   r   )Úkw_onlyc                  ó<   — e Zd ZU dZdZded<   dZded<   dZded<   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.
    Nz
int | NoneÚmax_connectionsÚmax_keepalive_connectionsç      @r7   Úkeepalive_expiry)r   r   r   rT   rX   rU   rY   r[   r   r   r   r
   r
   �   s)   … ñð #'€O�ZÓ&Ø,0Ð˜zÓ0Ø%(Ð�lÔ(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   ÚschemerD   re   rf   Ú	copy_withÚurlr^   r_   r]   )rE   ri   r]   r^   r_   s        r   rG   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   )r^   ÚencoderI   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(rL   )r^   r(   ri   r_   Údict)rE   r^   Úurl_strÚauth_strÚheaders_strs        r   rO   zProxy.__repr__Ï   ss   € à-1¯YªY�—	‘	˜!‘˜jÑ)¸Dˆô ˜Ÿ™“]Ð%ˆÙ)-�W˜T˜HÑ%°2ˆØ=A¿\º\˜
¤4¨¯©Ó#5Ð"8Ñ9ÈrˆØ˜�y  
¨;¨-°qÐ9Ð9r   )
ri   z	URL | strr]   zssl.SSLContext | Noner^   ztuple[str, str] | Noner_   zHeaderTypes | NonerQ   rR   )rQ   ztuple[bytes, bytes] | NonerS   )r   r   r   rG   Úpropertyrl   rO   r   r   r   r   r   ±   s]   „ ð
 .2Ø'+Ø&*ñ'àð'ð +ð	'ð
 %ð'ð $ð'ð 
ó'ð0 òkó ðkô:r   r   rZ   )rF   éd   é   )rX   rY   i   i   i   g      4@)TNT)r/   zssl.SSLContext | str | boolr0   zCertTypes | Noner1   ÚboolrQ   zssl.SSLContext)Ú
__future__r   Údataclassesr   ÚtypingÚ_modelsr   Ú_typesr   r   r   Ú_urlsr	   ÚTYPE_CHECKINGr   Ú__all__r   rA   r   Ú	dataclassr   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 €×Ñ˜E¨Ô.÷Joð Joó /ðJoðZ €×Ñ˜tÔ$÷)ð )ó %ð)÷&&:ñ &:ñR !¨Ô-Ð Ù¨ÀrÔJ€ØÐ à*Ð à!'Ð ØÐ Ø*.Ð 'Ø)-Ñ &r   