§
    ëXÊ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dS )(é    )ÚannotationsNé   )ÚHeaders)Ú	CertTypesÚHeaderTypesÚTimeoutTypes)ÚURL)ÚLimitsÚProxyÚTimeoutÚcreate_ssl_contextc                  ó   — e Zd ZdS )Ú	UnsetTypeN)Ú__name__Ú
__module__Ú__qualname__© ó    ú?C:\Projects\Historical\venv\Lib\site-packages\httpx2/_config.pyr   r      s   € € € € € Ø€Dr   r   TÚverifyússl.SSLContext | str | boolÚcertúCertTypes | NoneÚ	trust_envÚboolÚreturnússl.SSLContextc                óx  — dd l }dd l}dd l}| du r¢|rBt          j                             d¦  «        r# |j        t          j        d         ¬¦  «        }�n|rAt          j                             d¦  «        r" |j        t          j        d         ¬¦  «        }nÎ|                     |j        ¦  «        }n³| du r) |j        |j        ¦  «        }d|_	        |j
        |_        n†t          | t          ¦  «        ro|rt          d¦  «        ‚d	}|                     |t           ¦  «         t          j                             | ¦  «        r |j        | ¬¦  «        S  |j        | ¬¦  «        S | }|rRd
}|                     |t           ¦  «         t          |t          ¦  «        r|                     |¦  «         n
 |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)r   r   r   r#   r$   r%   ÚctxÚmessages           r   r   r      sò  € ð
 €J€J€JØ€O€O€OàÐÐÐà�€~€~Øð 	A�œŸš¨Ñ8Ô8ð 	AØ,�#Ô,µB´J¸Ô4OÐPÑPÔPˆC‰CØð 	A�2œ:Ÿ>š>¨.Ñ9Ô9ð 	AØ,�#Ô,µB´J¸~Ô4NÐOÑOÔOˆCˆCð ×'Ò'¨Ô(?Ñ@Ô@ˆCˆCØ	�5ˆˆØˆcŒn˜SÔ4Ñ5Ô5ˆØ"ˆÔØœ-ˆŒˆÝ	�F�CÑ	 Ô	 ð Øð 	ÝðQñô ð ðJð 	ð
 	�Š�gÕ1Ñ2Ô2Ð2ÝŒ7�=Š=˜Ñ Ô ð 	=Ø-�3Ô-°VÐ<Ñ<Ô<Ð<Ø)ˆsÔ)°Ð8Ñ8Ô8Ð8àˆàð 	'ðLð 	ð 	�Š�gÕ1Ñ2Ô2Ð2Ý�d�CÑ Ô ð 	'Ø×Ò Ñ%Ô%Ð%Ð%àˆCÔ Ð&Ð&à€Jr   F)ÚinitÚreprc                  ód   — 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S )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©r=   r>   r?   r@   ÚtimeoutúTimeoutTypes | UnsetTypeúNone | float | UnsetTyper   ÚNonec               óò  — t          |t          ¦  «        r^|t          u sJ ‚|t          u sJ ‚|t          u sJ ‚|t          u sJ ‚|j        | _        |j        | _        |j        | _        |j        | _        d S t          |t          ¦  «        r`|d         | _        |d         | _        t          |¦  «        dk     rd n|d         | _        t          |¦  «        dk     rd n|d         | _        d S t          |t          ¦  «        s]t          |t          ¦  «        sHt          |t          ¦  «        s3t          |t          ¦  «        s|| _        || _        || _        || _        d S t          |t          ¦  «        rt          d¦  «        ‚t          |t          ¦  «        r|n|| _        t          |t          ¦  «        r|n|| _        t          |t          ¦  «        r|n|| _        t          |t          ¦  «        r|n|| _        d S )Nr   r   é   é   é   zThttpx2.Timeout must either include a default, or set all four parameters explicitly.)r/   r   ÚUNSETr=   r>   r?   r@   ÚtupleÚlenr   Ú
ValueError)ÚselfrB   r=   r>   r?   r@   s         r   Ú__init__zTimeout.__init__c   sâ  € õ �g�wÑ'Ô'ð  	Ià�eÐ#Ð#Ð#Ð#Ø�5�=�=�=�=Ø�E�>�>�>�>Ø�5�=�=�=�=Ø"œ?ˆDŒLØœˆDŒIØ œˆDŒJØœˆDŒIˆIˆIÝ˜¥Ñ'Ô'ð 	Ià" 1œ:ˆDŒLØ œ
ˆDŒIÝ!$ W¡¤°Ò!1Ð!1˜˜°w¸q´zˆDŒJÝ # G¡¤¨qÒ 0Ð 0˜˜°g¸a´jˆDŒIˆIˆIå�w¥	Ñ*Ô*ð	Iå˜$¥	Ñ*Ô*ð	Iõ ˜%¥Ñ+Ô+ð	Iõ ˜$¥	Ñ*Ô*ð		Ið #ˆDŒLØˆDŒIØˆDŒJØˆDŒIˆIˆIå˜'¥9Ñ-Ô-ð yÝ Ð!wÑxÔxÐxÝ&0°½)Ñ&DÔ&DÐQ˜7˜7È'ˆDŒLÝ#-¨dµIÑ#>Ô#>ÐH˜˜ÀDˆDŒIÝ$.¨uµiÑ$@Ô$@ÐK˜˜ÀeˆDŒJÝ#-¨dµIÑ#>Ô#>ÐH˜˜ÀDˆDŒIˆIˆIr   údict[str, float | None]c                ó8   — | j         | j        | j        | j        dœS )NrA   rA   ©rN   s    r   Úas_dictzTimeout.as_dictŽ   s%   € à”|Ø”IØ”ZØ”Ið	
ð 
ð 	
r   r0   c           
     óÔ   — | 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   rL   r=   r>   r?   r@   )rN   Ú
class_names     r   Ú__repr__zTimeout.__repr__–   s‚   € Ø”^Ô,ˆ
Ý�”˜dœi¨¬°T´YÐ?Ñ@Ô@ÀAÒEÐEØ Ð:Ð:¨4¬<Ð:Ð:Ð:Ð:ØÐnÐn t¤|ÐnÐn¸D¼IÐnÐnÈtÌzÐnÐnÐbfÔbkÐnÐnÐnÐnr   N)rB   rC   r=   rD   r>   rD   r?   rD   r@   rD   r   rE   )r   rP   ©r   r0   )	r   r   r   Ú__doc__Ú__annotations__rJ   rO   rS   rX   r   r   r   r   r   O   s¾   € € € € € € ðð ð ÐÐÑØÐÐÑØÐÐÑØÐÐÑð -2ð)Ið -2Ø).Ø*/Ø).ð)Ið )Ið )Ið )Ið )Ið )IðV
ð 
ð 
ð 
ðoð oð oð oð oð 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<   dS )	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ç      @r<   Úkeepalive_expiry)r   r   r   rZ   r^   r[   r_   ra   r   r   r   r
   r
   �   sS   € € € € € € ðð ð #'€OÐ&Ð&Ð&Ñ&Ø,0ÐÐ0Ð0Ð0Ñ0Ø%(ÐÐ(Ð(Ð(Ñ(Ð(Ð(r   r
   c                  ó@   — e Zd Zddddœdd„Zedd„¦   «         Zdd„ZdS )r   N)Ússl_contextÚauthÚheadersÚurlú	URL | strrc   ússl.SSLContext | Nonerd   útuple[str, str] | Nonere   úHeaderTypes | Noner   rE   c               ó  — t          |¦  «        }t          |¦  «        }|j        dvrt          d|›�¦  «        ‚|j        s|j        r%|j        |j        f}|                     d d ¬¦  «        }|| _        || _        || _	        || _
        d S )N)ÚhttpÚhttpsÚsocks5Úsocks5hzUnknown scheme for proxy URL )ÚusernameÚpassword)r	   r   ÚschemerM   rp   rq   Ú	copy_withrf   rd   re   rc   )rN   rf   rc   rd   re   s        r   rO   zProxy.__init__²   sš   € õ �#‰hŒhˆÝ˜'Ñ"Ô"ˆàŒ:ÐCÐCÐCÝÐD¸SÐDÐDÑEÔEÐEàŒ<ð 	>˜3œ<ð 	>à”L #¤,Ð/ˆDØ—-’-¨¸�-Ñ=Ô=ˆCàˆŒØˆŒ	ØˆŒØ&ˆÔÐÐr   útuple[bytes, bytes] | Nonec                ó”   — | j         €d n?| j         d                              d¦  «        | j         d                              d¦  «        fS )Nr   zutf-8r   )rd   ÚencoderR   s    r   Úraw_authzProxy.raw_authÊ   sD   € ð ”yÐ(ˆtˆt¨t¬y¸¬|×/BÒ/BÀ7Ñ/KÔ/KÈTÌYÐWXÌ\×M`ÒM`ÐahÑMiÔMiÐ.jÐjr   r0   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(rU   )rd   r0   rf   re   Údict)rN   rd   Úurl_strÚauth_strÚheaders_strs        r   rX   zProxy.__repr__Ï   s‡   € à-1¬YÐ@�”	˜!”˜jÐ)Ð)¸Dˆõ ˜œ‘]”]Ð&ˆØ)-Ð5Ð%˜TÐ%Ð%Ð%°2ˆØ=A¼\ÐQÐ9¥4¨¬Ñ#5Ô#5Ð9Ð9Ð9ÈrˆØ9˜Ð9 Ð9¨;Ð9Ð9Ð9Ð9r   )
rf   rg   rc   rh   rd   ri   re   rj   r   rE   )r   rt   rY   )r   r   r   rO   Úpropertyrw   rX   r   r   r   r   r   ±   su   € € € € € ð
 .2Ø'+Ø&*ð'ð 'ð 'ð 'ð 'ð 'ð0 ðkð kð kñ „Xðkð:ð :ð :ð :ð :ð :r   r   r`   )rB   éd   é   )r^   r_   i   i   i   g      4@)TNT)r   r   r   r   r   r   r   r   )Ú
__future__r   Údataclassesr&   ÚtypingÚ_modelsr   Ú_typesr   r   r   Ú_urlsr	   ÚTYPE_CHECKINGr#   Ú__all__r   rJ   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Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø Ð Ð Ð Ð Ð à	Ôð Ø€J€J€Jà
>Ð
>Ð
>€ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ˆ	‰Œ€ð +/Ø!Øð4ð 4ð 4ð 4ð 4ðn €Ô˜E¨Ð.Ñ.Ô.ðJoð Joð Joð Joð Joñ Joô Joñ /Ô.ðJoðZ €Ô˜tÐ$Ñ$Ô$ð)ð )ð )ð )ð )ñ )ô )ñ %Ô$ð)ð&&:ð &:ð &:ð &:ð &:ñ &:ô &:ð &:ðR !˜¨Ð-Ñ-Ô-Ð Ø�¨ÀrÐJÑJÔJ€ØÐ à*Ð à!'Ð ØÐ Ø*.Ð 'Ø)-Ð &Ð &Ð &r   