a
    &ñ»j€  ã                   @  sª   d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	m
Z
mZmZmZmZmZ ddlmZ ddlmZmZ ddlmZ d	Zed
 ZG dd„ deeƒZG dd„ deƒZdS )é    )Úannotations)ÚMappingÚMutableMapping)ÚEnum)ÚAnyÚ	ItemsViewÚKeysViewÚListÚLiteralÚOptionalÚTupleÚ
ValuesViewé   )ÚHeaderError)Ú	ByteOrStrÚHeaderTypes)Úto_str)ÚHeadersÚHeaderAlias)Ú*ÚlowerÚ
capitalizec                   @  s,   e Zd ZdZdZdZedddœdd„ƒZd	S )
r   r   r   r   r   Úbool©ÚkeyÚreturnc                   s   t ‡ fdd„| D ƒƒS )Nc                 3  s   | ]}|j ˆ kV  qd S ©N)Úvalue)Ú.0Úitem©r   © úAE:\soccer\ml_env\Lib\site-packages\tls_requests/models/headers.pyÚ	<genexpr>   ó    z'HeaderAlias.contains.<locals>.<genexpr>)Úany)Úclsr   r!   r    r"   Úcontains   s    zHeaderAlias.containsN)Ú__name__Ú
__module__Ú__qualname__ZLOWERÚ
CAPITALIZEÚALLÚclassmethodr'   r!   r!   r!   r"   r      s
   r   c                   @  s  e Zd Zd?ddœdddœdd„Zd@d	d
d
dœdd„Zddœdd„Zddœdd„Zddœdd„Zdddœdd„Zddœdd„Z	dddœd d!„Z
d"d	d#œd$d%„Zd&dœd'd(„Zd)dœd*d+„Zddœd,d-„Zd.d/„ Zd0d1„ Zd
d2d#œd3d4„Zd5d6„ Zd7d8„ Zd9d2d:œd;d<„Zd=d>„ ZdS )Ar   Nr   ©ÚaliaszOptional[HeaderTypes]ÚHeaderAliasTypes)Úheadersr/   c                C  s$   t  |¡r|nd| _|  |¡| _d S )Nr   )r   r'   r/   Ú_prepare_itemsÚ_items)Úselfr1   r/   r!   r!   r"   Ú__init__   s    zHeaders.__init__Ústrr   )r   Údefaultr   c                 C  s4   |   |¡}| jD ]\}}||krd |¡  S q|S )Nú,)Ú_normalize_keyr3   Újoin)r4   r   r7   ÚkÚvr!   r!   r"   Úget"   s
    
zHeaders.getr   )r   c                 C  s   dd„ | j D ƒ ¡ S )Nc                 S  s   i | ]\}}|d   |¡“qS )r8   ©r:   ©r   r;   r<   r!   r!   r"   Ú
<dictcomp>*   r$   z!Headers.items.<locals>.<dictcomp>)r3   Úitems©r4   r!   r!   r"   rA   )   s    zHeaders.itemsr   c                 C  s   dd„ |   ¡ D ƒ ¡ S )Nc                 S  s   i | ]\}}||“qS r!   r!   r?   r!   r!   r"   r@   -   r$   z Headers.keys.<locals>.<dictcomp>)rA   ÚkeysrB   r!   r!   r"   rC   ,   s    zHeaders.keysr   c                 C  s   dd„ |   ¡ D ƒ ¡ S )Nc                 S  s   i | ]\}}||“qS r!   r!   r?   r!   r!   r"   r@   0   r$   z"Headers.values.<locals>.<dictcomp>)rA   ÚvaluesrB   r!   r!   r"   rD   /   s    zHeaders.valuesÚNone)r1   r   c                 C  sP   |d u rd S | j || jd�}|jD ]\}}|| v r"|  |¡ q"| j |j¡ d S ©Nr.   )Ú	__class__r/   r3   ÚpopÚextend)r4   r1   Únew_headersr   Ú_r!   r!   r"   Úupdate2   s    zHeaders.updatez	'Headers'c                 C  s   | j | j ¡ | jd�S rF   )rG   r3   Úcopyr/   rB   r!   r!   r"   rM   <   s    zHeaders.copyzList[Tuple[str, List[str]]]c              	     s˜   |d u rg S t |ˆ jƒr,‡ fdd„|jD ƒS t |tƒrL‡ fdd„| ¡ D ƒS t |tttfƒrŒz‡ fdd„|D ƒ}|W S  tt	fyŠ   Y n0 t
dƒ‚d S )Nc                   s   g | ]\}}ˆ   ||¡‘qS r!   ©Ú
_normalizer?   rB   r!   r"   Ú
<listcomp>C   r$   z*Headers._prepare_items.<locals>.<listcomp>c                   s   g | ]\}}ˆ   ||¡‘qS r!   rN   r?   rB   r!   r"   rP   E   r$   c                   s    g | ]^}}ˆ   ||d  ¡‘qS )r   rN   )r   r;   ÚargsrB   r!   r"   rP   H   r$   zInvalid headers format)Ú
isinstancerG   r3   r   rA   ÚlistÚtupleÚsetÚ
IndexErrorÚ
ValueErrorr   )r4   r1   rA   r!   rB   r"   r2   ?   s    
zHeaders._prepare_itemsr   r   c                 C  sJ   t |dd�}| jtjkr|S | jtjkrBd dd„ | d¡D ƒ¡S | ¡ S )NÚascii)Úencodingú-c                 S  s   g | ]}|  ¡ ‘qS r!   )r   )r   Úsr!   r!   r"   rP   T   r$   z*Headers._normalize_key.<locals>.<listcomp>)r   r/   r   r,   r+   r:   Úsplitr   )r4   r   r!   r!   r"   r9   N   s    zHeaders._normalize_keyz	List[str]c                 C  s^   t |tƒrtdƒ‚t |tttfƒrTg }|D ]$}t |tƒr@tdƒ‚| t|ƒ¡ q*|S t|ƒgS )Nz$Header value cannot be a dictionary.z*Header value items cannot be a dictionary.)rR   Údictr   rS   rT   rU   Úappendr   )r4   r   rA   r   r!   r!   r"   Ú_normalize_valueX   s    

zHeaders._normalize_valuezTuple[str, List[str]]c                 C  s   |   |¡|  |¡fS r   )r9   r_   )r4   r   r   r!   r!   r"   rO   f   s    zHeaders._normalizec                 C  sb   d}|   ||¡\}}t| jƒD ]*\}\}}||kr||f| j|< d} qJq|s^| j ||f¡ d S )NFT)rO   Ú	enumerater3   r^   )r4   r   r   ÚfoundÚidxr;   rK   r!   r!   r"   Ú__setitem__i   s    zHeaders.__setitem__c                 C  s   |   |¡}|d u rt|ƒ‚|S r   )r=   ÚKeyError)r4   r   Úvalr!   r!   r"   Ú__getitem__u   s    
zHeaders.__getitem__c                 C  sN   |   |¡}d }t| jƒD ]\}\}}||kr|} q6q|d urJ| j |¡ d S r   )r9   r`   r3   rH   )r4   r   Zpop_idxrb   r;   rK   r!   r!   r"   Ú__delitem__{   s    
zHeaders.__delitem__r   c                 C  s,   |   |¡}| jD ]\}}||kr dS qdS )NTF)r9   r3   )r4   r   r;   rK   r!   r!   r"   Ú__contains__†   s
    
zHeaders.__contains__c                 C  s   dd„ | j D ƒS )Nc                 s  s   | ]\}}|V  qd S r   r!   )r   r;   rK   r!   r!   r"   r#   Ž   r$   z#Headers.__iter__.<locals>.<genexpr>)r3   rB   r!   r!   r"   Ú__iter__�   s    zHeaders.__iter__c                 C  s
   t | jƒS r   )Úlenr3   rB   r!   r!   r"   Ú__len__�   s    zHeaders.__len__Úobject)Úotherr   c              	   C  sZ   t |tttt| jfƒsdS z"t| jƒ}t|  |¡ƒ}||kW S  t	t
fyT   Y dS 0 d S )NF)rR   r   rS   rT   rU   rG   Úsortedr3   r2   r   Ú	TypeError)r4   rm   rA   Zother_preparedr!   r!   r"   Ú__eq__“   s    

zHeaders.__eq__c                   s2   ‡fdd„dD ƒ‰ dˆj j‡ fdd„ˆjD ƒf S )Nc                   s   g | ]}ˆ   |¡‘qS r!   )r9   )r   r   rB   r!   r"   rP   Ÿ   r$   z$Headers.__repr__.<locals>.<listcomp>)ÚAuthorizationzProxy-Authorizationz<%s: %s>c                   s(   i | ] \}}||ˆ v rd nd  |¡“qS )z[secure]r8   r>   r?   )ÚSECUREr!   r"   r@   ¢   r$   z$Headers.__repr__.<locals>.<dictcomp>)rG   r(   r3   rB   r!   )rr   r4   r"   Ú__repr__ž   s
    þzHeaders.__repr__)N)N)r(   r)   r*   r5   r=   rA   rC   rD   rL   rM   r2   r9   r_   rO   rc   rf   rg   rh   ri   rk   rp   rs   r!   r!   r!   r"   r      s&   

r   N)Ú
__future__r   Úcollections.abcr   r   Úenumr   Útypingr   r   r   r	   r
   r   r   r   Ú
exceptionsr   Útypesr   r   Úutilsr   Ú__all__r0   r6   r   r   r!   r!   r!   r"   Ú<module>   s   (
