Ë
    UV.jE  ã                  óð   — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
mZmZmZ 	 ddlZdZd
dlmZ  eed¬«      Z ee«      Z G d„ de«      Zd„ Zd„ ZeZ	 	 dd„Zdd„Zdd„Zd„ Zy# e$ r d	ZY ŒFw xY w)zURL Utilities.é    )Úannotations)ÚMapping)Úpartial)Ú
NamedTuple)Ú	parse_qslÚquoteÚunquoteÚurlparseNTFé   )Ú
get_loggerÚ )Úsafec                  óX   — e Zd ZU dZded<   ded<   ded<   ded<   ded<   ded	<   d
ed<   y)Úurlpartsz*Named tuple representing parts of the URL.ÚstrÚschemeÚhostnameÚintÚportÚusernameÚpasswordÚpathr   ÚqueryN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__© ó    úQC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\kombu/utils/url.pyr   r      s(   … Ù4àƒKØƒMØ
ƒIØƒMØƒMØ
ƒIØ„Nr    r   c           
     ó’  — t        | «      \  }}}}}}}|rœ|j                  «       D �cg c]  }|j                  d«      sŒ|‘Œ }	}|	D ]h  }|dk(  r||   j                  «       dk7  ||<   n0|dk(  r+t	        ||   «      ||<   ||   €t
        j                  d«       d|vri |d<   ||   |d   |<   ||= Œj t        d||||||dœ|¤ŽS c c}w )	z%Parse URL into mapping of components.Ússl_Ússl_check_hostnameÚfalseÚssl_cert_reqsz%Defaulting to insecure SSL behaviour.Ússl)Ú	transportr   r   Úuseridr   Úvirtual_hostr   )Ú
_parse_urlÚkeysÚ
startswithÚlowerÚparse_ssl_cert_reqsÚloggerÚwarningÚdict)
Úurlr   Úhostr   Úuserr   r   r   Úkeyr,   s
             r!   Ú	parse_urlr7   #   sþ   € ô 7AÀ³oÑ3€FˆD�$˜˜h¨¨eÙØ$Ÿz™zœ|ÓF™|˜¨s¯~©~¸fÕ/E’˜|ˆÐFÛˆCØÐ*Ò*Ø" 3™Z×-Ñ-Ó/°7Ñ:��c’
Ø˜Ò'Ü0°°s±Ó<��c‘
Ø˜‘:Ð%Ü—N‘NÐ#JÔKà˜EÑ!Ø!��e‘à % c¡
ˆE�%‰L˜ÑØ�c‘
ð ô ð ?˜&¨4Ø $Ø!°ñ?à8=ñ?ð ?ùò Gs
   ¨C¿Cc                óÞ  — t        | «      j                  }| t        |«      dz   d }t        d|z   «      }|j                  xs d}|r|d   dk(  r|dd n|}t	        |t        |j                  xs d«      xs d|j                  t        |j                  xs d«      xs dt        |j                  xs d«      xs dt        |xs d«      xs dt        t        |j                  «      «      «      S )z5Parse URL into :class:`urlparts` tuple of components.é   Nzhttp://r   r   Ú/é   )r
   r   Úlenr   r   r	   r   r   r   r   r2   r   r   )r3   r   Ú
schemelessÚpartsr   s        r!   Úurl_to_partsr?   <   sÙ   € ô �c‹]×!Ñ!€FØ”S˜“[ 1‘_Ð%Ð&€Jä�Y Ñ+Ó,€EØ�:‰:Ò˜€DÙ  Q¡¨3¢ˆ4��‰8°D€DÜØÜ�—‘Ò$ "Ó%Ò-¨Ø�
‰
Ü�—‘Ò$ "Ó%Ò-¨Ü�—‘Ò$ "Ó%Ò-¨Ü�’
˜ÓÒ#˜tÜŒY�u—{‘{Ó#Ó$óð r    c	                óž  — | › d�g}	|s|rf|r|	j                  t        |«      «       |r7|r|	j                  |rd|gndg«       n|	j                  dt        |«      g«       |	j                  d«       |	j                  |rt        |«      nd«       |r|	j                  d|g«       |	j                  d|g«       dj                  d„ |	D «       «      S )z"Generate URL from component parts.ú://Ú:Ú@r   r:   c              3  ó8   K  — | ]  }|sŒt        |«      –— Œ y ­w)N)r   )Ú.0Úparts     r!   Ú	<genexpr>zas_url.<locals>.<genexpr>e   s   è ø€ Ð7© ²$”3�t—9©ùs   ‚Š)ÚappendÚ	safequoteÚextendÚjoin)
r   r4   r   r5   r   r   r   ÚsanitizeÚmaskr>   s
             r!   Úas_urlrN   S   s´   € ð ˆx�sˆ^Ð€EÙ‰xÙØ�L‰Lœ 4›Ô)ÙÙØ—‘©D˜c 4™[°s°eÕ<à—‘˜c¤9¨XÓ#6Ð7Ô8Ø�‰�SÔØ	‡L�L¡D”˜4”¨bÔ1ÙØ�‰�c˜4�[Ô!Ø	‡L�L�#�t�ÔØ�7‰7Ñ7©Ó7Ó7Ð7r    c                ó,   — t        t        | «      d|dœŽS )z)Return copy of URL with password removed.T)rL   rM   )rN   r+   ©r3   rM   s     r!   Úsanitize_urlrQ   h   s   € ô ”:˜c“?¨T¸Ò=Ð=r    c                óF   — t        | t        «      rd| v rt        | |«      S | S )z-Sanitize url, or do nothing if url undefined.rA   )Ú
isinstancer   rQ   rP   s     r!   Úmaybe_sanitize_urlrT   n   s&   € ô �#”sÔ ¨¡Ü˜C Ó&Ð&Ø€Jr    c                óÔ   — t         rbt        j                  t        j                  t        j                  t        j                  t        j                  t        j                  dœ}||    S y)zMGiven the query parameter for ssl_cert_reqs, return the SSL constant or None.)ÚCERT_REQUIREDÚCERT_OPTIONALÚ	CERT_NONEÚrequiredÚoptionalÚnoneN)Ússl_availabler'   rV   rW   rX   )Úquery_valueÚquery_value_to_constants     r!   r/   r/   v   sQ   € õ ä ×.Ñ.Ü ×.Ñ.ÜŸ™Ü×)Ñ)Ü×)Ñ)Ü—M‘Mñ#
Ðð ' {Ñ3Ð3àr    )NNNNNNFú**)r_   )r   Ú
__future__r   Úcollections.abcr   Ú	functoolsr   Útypingr   Úurllib.parser   r   r	   r
   r'   r\   ÚImportErrorÚlogr   rI   r   r0   r   r7   r?   r+   rN   rQ   rT   r/   r   r    r!   Ú<module>rg      s•   ðÙ õ #å #Ý Ý ß <Ó <ðÛØ€Mõ á�E Ô#€	Ù	�HÓ	€ô	ˆzô 	ò?ò2ð( €
ð >BØ7;ó8ó*>óóøðO ò Ø‚Mðús   ¨A+ Á+A5Á4A5