
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,aKQ  ã                   @   sv  d dl mZ d dlmZ d dlmZ d dlmZ G dd„ dƒZG dd„ dƒZG d	d
„ d
e	ƒZ
dd„ ZG dd„ dƒZG dd„ deƒZG dd„ dƒZG dd„ deƒZG dd„ dƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZG dd„ dƒZG dd „ d ƒZG d!d"„ d"eƒZG d#d$„ d$eƒZG d%d&„ d&ƒZG d'd(„ d(ƒZeeeeeeeeeeeeeeeeeeeed)œZG d*d+„ d+ƒZd,S )-é    )ÚMappingProxyType)Úutils)Úerrors)Ú_header_value_parserc                   @   s^   e Zd Zddd„Zedd„ ƒZedd„ ƒZed	d
„ ƒZedd„ ƒZdd„ Z	dd„ Z
dd„ ZdS )ÚAddressÚ Nc                 C   sœ   d  td ||||fƒ¡}d|ks(d|kr0tdƒ‚|d k	r†|s@|rHtdƒ‚t |¡\}}|rjtd ||¡ƒ‚|jrz|jd ‚|j}|j	}|| _
|| _|| _d S )Nr   úÚ
z8invalid arguments; address parts cannot contain CR or LFz=addrspec specified when username and/or domain also specifiedz6Invalid addr_spec; only '{}' could be parsed from '{}'r   )ÚjoinÚfilterÚ
ValueErrorÚ	TypeErrorÚparserZget_addr_specÚformatÚall_defectsÚ
local_partÚdomainÚ_display_nameÚ	_usernameÚ_domain)ÚselfÚdisplay_nameÚusernamer   Ú	addr_specZinputsZa_sÚrest© r   ú9/opt/alt/python38/lib64/python3.8/email/headerregistry.pyÚ__init__   s&     þ
zAddress.__init__c                 C   s   | j S ©N©r   ©r   r   r   r   r   <   s    zAddress.display_namec                 C   s   | j S r   )r   r    r   r   r   r   @   s    zAddress.usernamec                 C   s   | j S r   )r   r    r   r   r   r   D   s    zAddress.domainc                 C   sT   t | jƒ}t|ƒt|tj ƒkr.t | j¡}n| j}| jrH|d | j S |sPdS |S )Nú@ú<>)Úsetr   Úlenr   ZDOT_ATOM_ENDSÚquote_stringr   )r   ÚnamesetZlpr   r   r   r   H   s    
zAddress.addr_specc                 C   s   d  | jj| j| j| j¡S )Nz1{}(display_name={!r}, username={!r}, domain={!r}))r   Ú	__class__Ú__name__r   r   r   r    r   r   r   Ú__repr__X   s      þzAddress.__repr__c                 C   s^   t | jƒ}t|ƒt|tj ƒkr.t | j¡}n| j}|rX| jdkrFdn| j}d ||¡S | jS )Nr"   r   z{} <{}>)r#   r   r$   r   ÚSPECIALSr%   r   r   )r   r&   Údispr   r   r   r   Ú__str__]   s    
zAddress.__str__c                 C   s8   t |ƒt | ƒkrdS | j|jko6| j|jko6| j|jkS ©NF)Útyper   r   r   ©r   Úotherr   r   r   Ú__eq__h   s    
ÿ
þzAddress.__eq__)r   r   r   N)r(   Ú
__module__Ú__qualname__r   Úpropertyr   r   r   r   r)   r,   r1   r   r   r   r   r      s   
*



r   c                   @   sF   e Zd Zddd„Zedd„ ƒZedd„ ƒZdd	„ Zd
d„ Zdd„ Z	dS )ÚGroupNc                 C   s   || _ |rt|ƒntƒ | _d S r   )r   ÚtupleÚ
_addresses)r   r   Ú	addressesr   r   r   r   r   s    zGroup.__init__c                 C   s   | j S r   r   r    r   r   r   r   „   s    zGroup.display_namec                 C   s   | j S r   )r7   r    r   r   r   r8   ˆ   s    zGroup.addressesc                 C   s   d  | jj| j| j¡S )Nz${}(display_name={!r}, addresses={!r})r   r'   r(   r   r8   r    r   r   r   r)   Œ   s
     þzGroup.__repr__c                 C   sŽ   | j d kr&t| jƒdkr&t| jd ƒS | j }|d k	r\t|ƒ}t|ƒt|tj ƒkr\t |¡}d dd„ | jD ƒ¡}|r~d| n|}d 	||¡S )Né   r   ú, c                 s   s   | ]}t |ƒV  qd S r   ©Ústr)Ú.0Úxr   r   r   Ú	<genexpr>™   s     z Group.__str__.<locals>.<genexpr>ú z{}:{};)
r   r$   r8   r<   r#   r   r*   r%   r
   r   )r   r+   r&   Zadrstrr   r   r   r,   ‘   s    
zGroup.__str__c                 C   s,   t |ƒt | ƒkrdS | j|jko*| j|jkS r-   )r.   r   r8   r/   r   r   r   r1   �   s
    
ÿzGroup.__eq__)NN)
r(   r2   r3   r   r4   r   r8   r)   r,   r1   r   r   r   r   r5   p   s   


r5   c                   @   sP   e Zd Zdd„ Zdd„ Zedd„ ƒZedd„ ƒZd	d
„ Ze	dd„ ƒZ
dd„ ZdS )Ú
BaseHeaderc                 C   s\   dg i}|   ||¡ t |d ¡r4t |d ¡|d< t | |d ¡}|d= |j|f|Ž |S )NÚdefectsÚdecoded)Úparser   Z_has_surrogatesÚ	_sanitizer<   Ú__new__Úinit)ÚclsÚnameÚvalueÚkwdsr   r   r   r   rF   È   s    zBaseHeader.__new__c                C   s   || _ || _|| _d S r   )Ú_nameÚ_parse_treeÚ_defects)r   rI   Ú
parse_treerB   r   r   r   rG   Ò   s    zBaseHeader.initc                 C   s   | j S r   )rL   r    r   r   r   rI   ×   s    zBaseHeader.namec                 C   s
   t | jƒS r   )r6   rN   r    r   r   r   rB   Û   s    zBaseHeader.defectsc                 C   s   t | jj| jjt| ƒf| jfS r   )Ú_reconstruct_headerr'   r(   Ú	__bases__r<   Ú__dict__r    r   r   r   Ú
__reduce__ß   s    ýùzBaseHeader.__reduce__c                 C   s   t  | |¡S r   )r<   rF   )rH   rJ   r   r   r   Ú_reconstructé   s    zBaseHeader._reconstructc             	   C   s`   t  t  t  | jd¡t  dd¡g¡g¡}| jrH| t  t  dd¡g¡¡ | | j¡ |j	|d�S )Nzheader-nameú:z
header-sepr@   Zfws)Úpolicy)
r   ZHeaderZHeaderLabelZValueTerminalrI   rM   ÚappendZCFWSListZWhiteSpaceTerminalÚfold)r   rV   Úheaderr   r   r   rX   í   s    
þÿÿzBaseHeader.foldN)r(   r2   r3   rF   rG   r4   rI   rB   rS   ÚclassmethodrT   rX   r   r   r   r   rA   ¦   s   "




rA   c                 C   s   t | |i ƒ |¡S r   )r.   rT   )Zcls_nameÚbasesrJ   r   r   r   rP   
  s    rP   c                   @   s&   e Zd ZdZeejƒZedd„ ƒZ	dS )ÚUnstructuredHeaderNc                 C   s"   |   |¡|d< t|d ƒ|d< d S )NrO   rC   )Úvalue_parserr<   ©rH   rJ   rK   r   r   r   rD     s    zUnstructuredHeader.parse)
r(   r2   r3   Ú	max_countÚstaticmethodr   Úget_unstructuredr]   rZ   rD   r   r   r   r   r\     s   
r\   c                   @   s   e Zd ZdZdS )ÚUniqueUnstructuredHeaderr9   N©r(   r2   r3   r_   r   r   r   r   rb     s   rb   c                       sB   e Zd ZdZeejƒZedd„ ƒZ	‡ fdd„Z
edd„ ƒZ‡  ZS )Ú
DateHeaderNc                 C   sz   |s6|d   t ¡ ¡ d |d< d|d< t ¡ |d< d S t|tƒrJt |¡}||d< t 	|d ¡|d< |  
|d ¡|d< d S )NrB   Údatetimer   rC   rO   )rW   r   ZHeaderMissingRequiredValuer   Z	TokenListÚ
isinstancer<   r   Zparsedate_to_datetimeZformat_datetimer]   r^   r   r   r   rD   .  s    

zDateHeader.parsec                    s   |  d¡| _tƒ j||Ž d S )Nre   )ÚpopÚ	_datetimeÚsuperrG   ©r   ÚargsÚkw©r'   r   r   rG   <  s    zDateHeader.initc                 C   s   | j S r   )rh   r    r   r   r   re   @  s    zDateHeader.datetime)r(   r2   r3   r_   r`   r   ra   r]   rZ   rD   rG   r4   re   Ú__classcell__r   r   rm   r   rd     s   

rd   c                   @   s   e Zd ZdZdS )ÚUniqueDateHeaderr9   Nrc   r   r   r   r   ro   E  s   ro   c                       sP   e Zd ZdZedd„ ƒZedd„ ƒZ‡ fdd„Ze	dd	„ ƒZ
e	d
d„ ƒZ‡  ZS )ÚAddressHeaderNc                 C   s   t  | ¡\}} |S r   )r   Zget_address_list)rJ   Úaddress_listr   r   r   r]   N  s    zAddressHeader.value_parserc                 C   s¾   t |tƒrV|  |¡ |d< }g }|jD ]"}| t|jdd„ |jD ƒƒ¡ q&t|j	ƒ}n"t
|dƒsf|g}dd„ |D ƒ}g }||d< ||d< d d	d„ |D ƒ¡|d
< d|krº|  |d
 ¡|d< d S )NrO   c                 S   s*   g | ]"}t |jpd |jpd |jp"d ƒ‘qS )r   )r   r   r   r   )r=   Zmbr   r   r   Ú
<listcomp>]  s
   ý
þz'AddressHeader.parse.<locals>.<listcomp>Ú__iter__c                 S   s&   g | ]}t |d ƒstd|gƒn|‘qS )r8   N)Úhasattrr5   ©r=   Úitemr   r   r   rr   f  s   þÚgroupsrB   r:   c                 S   s   g | ]}t |ƒ‘qS r   r;   ru   r   r   r   rr   l  s     rC   )rf   r<   r]   r8   rW   r5   r   Zall_mailboxesÚlistr   rt   r
   )rH   rJ   rK   rq   rw   ZaddrrB   r   r   r   rD   T  s*    


ýÿ
þzAddressHeader.parsec                    s(   t | d¡ƒ| _d | _tƒ j||Ž d S )Nrw   )r6   rg   Ú_groupsr7   ri   rG   rj   rm   r   r   rG   p  s    zAddressHeader.initc                 C   s   | j S r   )ry   r    r   r   r   rw   u  s    zAddressHeader.groupsc                 C   s&   | j d kr tdd„ | jD ƒƒ| _ | j S )Nc                 s   s   | ]}|j D ]
}|V  qqd S r   )r8   )r=   ÚgroupÚaddressr   r   r   r?   |  s     ÿz*AddressHeader.addresses.<locals>.<genexpr>)r7   r6   ry   r    r   r   r   r8   y  s    
zAddressHeader.addresses)r(   r2   r3   r_   r`   r]   rZ   rD   rG   r4   rw   r8   rn   r   r   rm   r   rp   J  s   


rp   c                   @   s   e Zd ZdZdS )ÚUniqueAddressHeaderr9   Nrc   r   r   r   r   r|   �  s   r|   c                   @   s   e Zd Zedd„ ƒZdS )ÚSingleAddressHeaderc                 C   s(   t | jƒdkrtd | j¡ƒ‚| jd S )Nr9   z9value of single address header {} is not a single addressr   )r$   r8   r   r   rI   r    r   r   r   r{   ˆ  s
    ÿzSingleAddressHeader.addressN)r(   r2   r3   r4   r{   r   r   r   r   r}   †  s   r}   c                   @   s   e Zd ZdZdS )ÚUniqueSingleAddressHeaderr9   Nrc   r   r   r   r   r~   �  s   r~   c                       sZ   e Zd ZdZeejƒZedd„ ƒZ	‡ fdd„Z
edd„ ƒZedd	„ ƒZed
d„ ƒZ‡  ZS )ÚMIMEVersionHeaderr9   c                 C   s€   |   |¡ |d< }t|ƒ|d< |d  |j¡ |jd kr<d n|j|d< |j|d< |jd k	rtd |d |d ¡|d< nd |d< d S )NrO   rC   rB   ÚmajorÚminorz{}.{}Úversion)r]   r<   Úextendr   r�   r€   r   ©rH   rJ   rK   rO   r   r   r   rD   ›  s    

zMIMEVersionHeader.parsec                    s6   |  d¡| _|  d¡| _|  d¡| _tƒ j||Ž d S )Nr‚   r€   r�   )rg   Ú_versionÚ_majorÚ_minorri   rG   rj   rm   r   r   rG   §  s    zMIMEVersionHeader.initc                 C   s   | j S r   )r†   r    r   r   r   r€   ­  s    zMIMEVersionHeader.majorc                 C   s   | j S r   )r‡   r    r   r   r   r�   ±  s    zMIMEVersionHeader.minorc                 C   s   | j S r   )r…   r    r   r   r   r‚   µ  s    zMIMEVersionHeader.version)r(   r2   r3   r_   r`   r   Zparse_mime_versionr]   rZ   rD   rG   r4   r€   r�   r‚   rn   r   r   rm   r   r   •  s   



r   c                       s8   e Zd ZdZedd„ ƒZ‡ fdd„Zedd„ ƒZ‡  Z	S )ÚParameterizedMIMEHeaderr9   c                 C   sZ   |   |¡ |d< }t|ƒ|d< |d  |j¡ |jd krBi |d< ndd„ |jD ƒ|d< d S )NrO   rC   rB   Úparamsc                 S   s&   i | ]\}}t  |¡ ¡ t  |¡“qS r   )r   rE   Úlower)r=   rI   rJ   r   r   r   Ú
<dictcomp>Ê  s   þz1ParameterizedMIMEHeader.parse.<locals>.<dictcomp>)r]   r<   rƒ   r   r‰   r„   r   r   r   rD   Á  s    

þzParameterizedMIMEHeader.parsec                    s   |  d¡| _tƒ j||Ž d S )Nr‰   )rg   Ú_paramsri   rG   rj   rm   r   r   rG   Î  s    zParameterizedMIMEHeader.initc                 C   s
   t | jƒS r   )r   rŒ   r    r   r   r   r‰   Ò  s    zParameterizedMIMEHeader.params)
r(   r2   r3   r_   rZ   rD   rG   r4   r‰   rn   r   r   rm   r   rˆ   º  s   
rˆ   c                       sJ   e Zd ZeejƒZ‡ fdd„Zedd„ ƒZ	edd„ ƒZ
edd„ ƒZ‡  ZS )	ÚContentTypeHeaderc                    s2   t ƒ j||Ž t | jj¡| _t | jj¡| _d S r   )	ri   rG   r   rE   rM   ÚmaintypeÚ	_maintypeÚsubtypeÚ_subtyperj   rm   r   r   rG   Û  s    zContentTypeHeader.initc                 C   s   | j S r   )r�   r    r   r   r   rŽ   à  s    zContentTypeHeader.maintypec                 C   s   | j S r   )r‘   r    r   r   r   r�   ä  s    zContentTypeHeader.subtypec                 C   s   | j d | j S )Nú/)rŽ   r�   r    r   r   r   Úcontent_typeè  s    zContentTypeHeader.content_type)r(   r2   r3   r`   r   Zparse_content_type_headerr]   rG   r4   rŽ   r�   r“   rn   r   r   rm   r   r�   ×  s   


r�   c                       s2   e Zd ZeejƒZ‡ fdd„Zedd„ ƒZ	‡  Z
S )ÚContentDispositionHeaderc                    s2   t ƒ j||Ž | jj}|d kr"|nt |¡| _d S r   )ri   rG   rM   Úcontent_dispositionr   rE   Ú_content_disposition)r   rk   rl   Zcdrm   r   r   rG   ñ  s    zContentDispositionHeader.initc                 C   s   | j S r   )r–   r    r   r   r   r•   ö  s    z,ContentDispositionHeader.content_disposition)r(   r2   r3   r`   r   Z parse_content_disposition_headerr]   rG   r4   r•   rn   r   r   rm   r   r”   í  s   
r”   c                       sB   e Zd ZdZeejƒZedd„ ƒZ	‡ fdd„Z
edd„ ƒZ‡  ZS )ÚContentTransferEncodingHeaderr9   c                 C   s2   |   |¡ |d< }t|ƒ|d< |d  |j¡ d S ©NrO   rC   rB   ©r]   r<   rƒ   r   r„   r   r   r   rD     s    z#ContentTransferEncodingHeader.parsec                    s"   t ƒ j||Ž t | jj¡| _d S r   )ri   rG   r   rE   rM   ÚcteÚ_cterj   rm   r   r   rG     s    z"ContentTransferEncodingHeader.initc                 C   s   | j S r   )r›   r    r   r   r   rš     s    z!ContentTransferEncodingHeader.cte)r(   r2   r3   r_   r`   r   Z&parse_content_transfer_encoding_headerr]   rZ   rD   rG   r4   rš   rn   r   r   rm   r   r—   û  s   

r—   c                   @   s&   e Zd ZdZeejƒZedd„ ƒZ	dS )ÚMessageIDHeaderr9   c                 C   s2   |   |¡ |d< }t|ƒ|d< |d  |j¡ d S r˜   r™   r„   r   r   r   rD     s    zMessageIDHeader.parseN)
r(   r2   r3   r_   r`   r   Zparse_message_idr]   rZ   rD   r   r   r   r   rœ     s   
rœ   )ZsubjectÚdatezresent-datez	orig-dateZsenderzresent-senderÚtoz	resent-toZccz	resent-ccZbccz
resent-bccÚfromzresent-fromzreply-tozmime-versionzcontent-typezcontent-dispositionzcontent-transfer-encodingz
message-idc                   @   s4   e Zd Zeedfdd„Zdd„ Zdd„ Zdd	„ Zd
S )ÚHeaderRegistryTc                 C   s&   i | _ || _|| _|r"| j  t¡ d S r   )ÚregistryÚ
base_classÚdefault_classÚupdateÚ_default_header_map)r   r¢   r£   Zuse_default_mapr   r   r   r   9  s
    zHeaderRegistry.__init__c                 C   s   || j | ¡ < d S r   )r¡   rŠ   ©r   rI   rH   r   r   r   Úmap_to_typeK  s    zHeaderRegistry.map_to_typec                 C   s,   | j  | ¡ | j¡}td|j || jfi ƒS )NÚ_)r¡   ÚgetrŠ   r£   r.   r(   r¢   r¦   r   r   r   Ú__getitem__Q  s    zHeaderRegistry.__getitem__c                 C   s   | | ||ƒS r   r   )r   rI   rJ   r   r   r   Ú__call__U  s    
zHeaderRegistry.__call__N)	r(   r2   r3   rA   r\   r   r§   rª   r«   r   r   r   r   r    5  s   ÿ
r    N)Útypesr   Zemailr   r   r   r   r   r5   r<   rA   rP   r\   rb   rd   ro   rp   r|   r}   r~   r   rˆ   r�   r”   r—   rœ   r¥   r    r   r   r   r   Ú<module>
   sV   `6d'7
%ì