Edit File: message.cpython-36.opt-2.pyc
3 � \�������������������@���s����d�dgZ�ddlZddlZddlZddlmZmZ�ddlmZ�ddlm Z �ddl mZmZ�ddlm Z�dd lmZ�ejZd Zejd�Zdd ��Zddd�Zdd��Zdd��ZG�dd���d��ZG�dd��de�ZG�dd��de�ZdS�)�Message�EmailMessage�����N)�BytesIO�StringIO)�utils)�errors)�Policy�compat32)�charset)�decode_bz; z[ \(\)<>@,;:\\"/\[\]\?=]c�������������C���s4���t�|��jd�\}}}|s$|j��d�fS�|j��|j��fS�)N�;)�str� partition�strip)�param�a�sep�b��r����%/usr/lib64/python3.6/email/message.py�_splitparam���s����r���Tc�������������C���s����|d�k r�t�|�dkr�t|t�rL|�d7�}�tj|d�|d�|d��}d|�|f�S�y|jd��W�n2�tk r����|�d7�}�tj|dd�}d|�|f�S�X�|s�tj|�r�d |�tj |�f�S�d|�|f�S�n|�S�d�S�) Nr����*��������z%s=%s�asciizutf-8��z%s="%s") �len� isinstance�tupler���Zencode_rfc2231�encode�UnicodeEncodeError� tspecials�search�quote)r����valuer#���r���r���r����_formatparam'���s���� r%���c�������������C���s����dt�|���}�g�}x�|�d�d��dkr�|�dd���}�|�jd�}x<|dkrt|�jdd|�|�jdd|��d�rt|�jd|d��}q:W�|dk�r�t|��}|�d�|��}d|kr�|jd�}|d�|��j��j��d�||d�d���j���}|j|j����|�|d���}�qW�|S�)Nr���r���r����"z\"r����=)r ����find�countr����indexr����lower�append)�sZplist�end�f�ir���r���r����_parseparamI���s ���� * ,r1���c�������������C���s4���t�|�t�r&|�d�|�d�tj|�d��fS�tj|��S�d�S�)Nr���r���r���)r���r���r����unquote)r$���r���r���r���� _unquotevalue]���s���� r3���c���������������@���s���e�Zd�Zefdd�Zdd��Zdcdd �Zd d��Zdddd �Zdd��Z dd��Z dd��Zdd��Zdedd�Z dfdd�Zdd��Zdd��Zdd��Zd d!��Zd"d#��Zd$d%��Zd&d'��Zd(d)��Zd*d+��Zd,d-��Zd.d/��Zdgd0d1�Zd2d3��Zd4d5��Zdhd6d7�Zd8d9��Zd:d;��Zd<d=��Z d>d?��Z!d@dA��Z"dBdC��Z#dDdE��Z$dFdG��Z%didJdK�Z&djdLdM�Z'dkdPdQ�Z(dldRdS�Z)dmdTdU�Z*dndVdW�Z+dodXdY�Z,dZd[��Z-dpd\d]�Z.dqd^d_�Z/d`da��Z0ddbl1m2Z2�dS�)rr���c�������������C���s:���||�_�g�|�_d�|�_d�|�_d�|�_d��|�_|�_g�|�_d|�_d�S�)Nz text/plain) �policy�_headers� _unixfrom�_payload�_charsetZpreambleZepilogue�defects� _default_type)�selfr4���r���r���r����__init__x���s����zMessage.__init__c�������������C���s���|�j���S�)N)� as_string)r;���r���r���r����__str__����s����zMessage.__str__Fr���Nc�������������C���sJ���ddl�m}�|d�kr|�jn|}t��}||d||d�}|j|�|d��|j��S�)Nr���)� GeneratorF)�mangle_from_�maxheaderlenr4���)�unixfrom)�email.generatorr?���r4���r����flatten�getvalue)r;���rB���rA���r4���r?����fp�gr���r���r���r=�������s����zMessage.as_stringc�������������C���s���|�j���S�)N)�as_bytes)r;���r���r���r���� __bytes__����s����zMessage.__bytes__c�������������C���sH���ddl�m}�|d�kr|�jn|}t��}||d|d�}|j|�|d��|j��S�)Nr���)�BytesGeneratorF)r@���r4���)rB���)rC���rJ���r4���r���rD���rE���)r;���rB���r4���rJ���rF���rG���r���r���r���rH�������s����zMessage.as_bytesc�������������C���s���t�|�jt�S�)N)r���r7����list)r;���r���r���r����is_multipart����s����zMessage.is_multipartc�������������C���s ���||�_�d�S�)N)r6���)r;���rB���r���r���r����set_unixfrom����s����zMessage.set_unixfromc�������������C���s���|�j�S�)N)r6���)r;���r���r���r����get_unixfrom����s����zMessage.get_unixfromc�������������C���sF���|�j�d�kr|g|�_�n.y|�j�j|��W�n�tk r@���td��Y�nX�d�S�)Nz=Attach is not valid on a message with a non-multipart payload)r7���r,����AttributeError� TypeError)r;����payloadr���r���r����attach����s���� zMessage.attachc�������������C���s���|�j���r(|rd�S�|d�kr|�jS�|�j|�S�|d�k rPt|�jt��rPtdt|�j����|�j}t|�jdd��j��}t|t��rt j |�r�|jdd�}|s�y|j|�j dd�d�}W�n �tk r����|jdd�}Y�nX�n6|�ry|jd�}W�n �tk �r����|jd�}Y�nX�|�s|S�|d k�r tj|�S�|d k�rbtdj|j����\}}x|D�]}|�jj|�|���qFW�|S�|dk�r�t|�} t��} ytj| | dd��| j��S��tjk �r����|S�X�t|t��r�|S�|S�)NzExpected list, got %szcontent-transfer-encodingr���r����surrogateescaper ����replacezraw-unicode-escapezquoted-printable�base64������ x-uuencode�uuencode�uue�x-uueT)�quiet)rW���rX���rY���rZ���)rL���r7���r���rK���rP����typer ����getr+���r���Z_has_surrogatesr����decode� get_param�LookupError�UnicodeError�quopriZdecodestringr����join� splitlinesr4���Z handle_defectr����uurE����Error)r;���r0���r^���rQ����cteZbpayloadr$���r9���ZdefectZin_fileZout_filer���r���r����get_payload����sV����" zMessage.get_payloadc�������������C���sp���t�|d�r:|d�kr||�_d�S�t|t�s.t|�}|j|j�}t�|d�rT|jdd�|�_n||�_|d�k rl|�j|��d�S�)Nr���r^���r���rS���)�hasattrr7���r����Charsetr����output_charsetr^����set_charset)r;���rQ���r ���r���r���r����set_payload/��s���� zMessage.set_payloadc�������������C���s��|d�kr|�j�d��d�|�_d�S�t|t�s.t|�}||�_d|�krH|�jdd��d|�krf|�jdd|j��d��n|�jd|j����||j��kr�|j|�j�|�_d|�k�r|j ��}y||���W�nj�t k �r���|�j}|r�y|jdd �}W�n �tk r����|j|j �}Y�nX�|j|�|�_|�jd|��Y�nX�d�S�) Nr ���zMIME-Versionz1.0zContent-Typez text/plain)r ���zContent-Transfer-Encodingr���rS���)� del_paramr8���r���rj���� add_headerZget_output_charset� set_paramZbody_encoder7���Zget_body_encodingrP���r���ra���rk���)r;���r ���rg���rQ���r���r���r���rl���C��s8���� zMessage.set_charsetc�������������C���s���|�j�S�)N)r8���)r;���r���r���r����get_charsetr��s����zMessage.get_charsetc�������������C���s ���t�|�j�S�)N)r���r5���)r;���r���r���r����__len__z��s����zMessage.__len__c�������������C���s ���|�j�|�S�)N)r]���)r;����namer���r���r����__getitem__~��s���� zMessage.__getitem__c�������������C���sv���|�j�j|�}|r\|j��}d}x>|�jD�]4\}}|j��|kr$|d7�}||kr$tdj||���q$W�|�jj|�j�j||���d�S�)Nr���r���z/There may be at most {} {} headers in a message)r4���Zheader_max_countr+���r5���� ValueError�formatr,����header_store_parse)r;���rs����valZ max_countZlname�found�k�vr���r���r����__setitem__���s����zMessage.__setitem__c�������������C���sD���|j���}g�}x,|�jD�]"\}}|j���|kr|j||f��qW�||�_d�S�)N)r+���r5���r,���)r;���rs���� newheadersrz���r{���r���r���r����__delitem__���s����zMessage.__delitem__c�������������C���s���|j���dd��|�jD��kS�)Nc�������������S���s���g�|�]\}}|j����qS�r���)r+���)�.0rz���r{���r���r���r���� <listcomp>���s����z(Message.__contains__.<locals>.<listcomp>)r+���r5���)r;���rs���r���r���r����__contains__���s����zMessage.__contains__c�������������c���s���x|�j�D�]\}}|V��qW�d�S�)N)r5���)r;���Zfieldr$���r���r���r����__iter__���s����zMessage.__iter__c�������������C���s���dd��|�j�D��S�)Nc�������������S���s���g�|�]\}}|�qS�r���r���)r���rz���r{���r���r���r���r�������s����z Message.keys.<locals>.<listcomp>)r5���)r;���r���r���r����keys���s����zMessage.keysc����������������s�����fdd���j�D��S�)Nc����������������s���g�|�]\}}��j�j||��qS�r���)r4����header_fetch_parse)r���rz���r{���)r;���r���r���r�������s���z"Message.values.<locals>.<listcomp>)r5���)r;���r���)r;���r����values���s���� zMessage.valuesc����������������s�����fdd���j�D��S�)Nc����������������s"���g�|�]\}}|��j�j||�f�qS�r���)r4���r����)r���rz���r{���)r;���r���r���r�������s���z!Message.items.<locals>.<listcomp>)r5���)r;���r���)r;���r����items���s���� z Message.itemsc�������������C���s:���|j���}x,|�jD�]"\}}|j���|kr|�jj||�S�qW�|S�)N)r+���r5���r4���r����)r;���rs����failobjrz���r{���r���r���r���r]������s ����zMessage.getc�������������C���s���|�j�j||f��d�S�)N)r5���r,���)r;���rs���r$���r���r���r����set_raw���s����zMessage.set_rawc�������������C���s���t�|�jj���S�)N)�iterr5����copy)r;���r���r���r���� raw_items���s����zMessage.raw_itemsc�������������C���sL���g�}|j���}x2|�jD�](\}}|j���|kr|j|�jj||���qW�|sH|S�|S�)N)r+���r5���r,���r4���r����)r;���rs���r����r����rz���r{���r���r���r����get_all���s���� zMessage.get_allc�������������K���st���g�}xH|j���D�]<\}}|d�kr2|j|jdd���q|jt|jdd�|���qW�|d�k rb|jd|��tj|�|�|<�d�S�)N�_�-r���)r����r,���rT���r%����insert� SEMISPACErc���)r;����_name�_valueZ_params�partsrz���r{���r���r���r���ro�����s����zMessage.add_headerc�������������C���s^���|j���}xPttt|�j��|�j�D�].\}\}}|j���|kr |�jj||�|�j|<�P�q W�t|��d�S�)N)r+����zip�ranger���r5���r4���rw����KeyError)r;���r����r����r0���rz���r{���r���r���r����replace_header!��s����$zMessage.replace_headerc�������������C���sH���t���}|�jd|�}||kr"|�j��S�t|�d�j��}|jd�dkrDdS�|S�)Nzcontent-typer����/r���z text/plain)�objectr]����get_default_typer���r+���r)���)r;����missingr$����ctyper���r���r����get_content_type4��s���� zMessage.get_content_typec�������������C���s���|�j���}|jd�d�S�)Nr����r���)r�����split)r;���r����r���r���r����get_content_maintypeL��s����zMessage.get_content_maintypec�������������C���s���|�j���}|jd�d�S�)Nr����r���)r����r����)r;���r����r���r���r����get_content_subtypeU��s����zMessage.get_content_subtypec�������������C���s���|�j�S�)N)r:���)r;���r���r���r���r����^��s����zMessage.get_default_typec�������������C���s ���||�_�d�S�)N)r:���)r;���r����r���r���r����set_default_typeg��s����zMessage.set_default_typec������� ������C���s����t���}|�j||�}||kr|S�g�}xdt|�D�]X}y$|jdd�\}}|j��}|j��}W�n �tk rt���|j��}d}Y�nX�|j||f��q,W�tj|�}|S�)Nr'���r���r���) r����r]���r1���r����r���ru���r,���r���Z decode_params) r;���r�����headerr����r$����params�prs���rx���r���r���r����_get_params_preservep��s ���� zMessage._get_params_preserve�content-typeTc�������������C���s8���t���}|�j||�}||kr|S�|r0dd��|D��S�|S�d�S�)Nc�������������S���s���g�|�]\}}|t�|�f�qS�r���)r3���)r���rz���r{���r���r���r���r�������s����z&Message.get_params.<locals>.<listcomp>)r����r����)r;���r����r����r2���r����r����r���r���r���� get_params���s���� zMessage.get_paramsc�������������C���sJ���||�kr|S�x8|�j�||�D�](\}}|j��|j��kr|r>t|�S�|S�qW�|S�)N)r����r+���r3���)r;���r���r����r����r2���rz���r{���r���r���r���r_������s����zMessage.get_param�Content-Typer���c�������������C���s��t�|t��r|r|||f}||�kr4|j��dkr4d}n |�j|�}|�j||d�sv|s^t|||�}q�tj|t|||�g�}nfd}x`|�j||d�D�]N\} } d}| j��|j��kr�t|||�}nt| | |�}|s�|}q�tj||g�}q�W�||�j|�k�r|�r�|�j ||��n|�|=�||�|<�d�S�)Nzcontent-typez text/plain)r����r���)r����r2���) r���r���r+���r]���r_���r%���r����rc���r����r����)r;���r���r$���r�����requoter ���ZlanguagerT���r����Z old_paramZ old_valueZappend_paramr���r���r���rp������s2���� zMessage.set_paramc�������������C���s����||�krd�S�d}xR|�j�||d�D�]@\}}|j��|j��kr |sJt|||�}q tj|t|||�g�}q W�||�j|�kr�|�|=�||�|<�d�S�)Nr���)r����r2���)r����r+���r%���r����rc���r]���)r;���r���r����r����Z new_ctyper����r{���r���r���r���rn������s����zMessage.del_paramc�������������C���s����|j�d�dkst�|j��dkr,|�d=�d|�d<�||�kr@||�|<�d�S�|�j||d�}|�|=�||�|<�x(|dd���D�]\}}|�j||||��qjW�d�S�)Nr����r���zcontent-typezmime-versionz1.0zMIME-Version)r����r2���)r)���ru���r+���r����rp���)r;���r\���r����r����r����r����r{���r���r���r����set_type��s����zMessage.set_typec�������������C���sD���t���}|�jd|d�}||kr*|�jd|d�}||kr6|S�tj|�j��S�)N�filenamezcontent-dispositionrs���zcontent-type)r����r_���r����collapse_rfc2231_valuer���)r;���r����r����r����r���r���r����get_filename&��s����zMessage.get_filenamec�������������C���s,���t���}|�jd|�}||kr|S�tj|�j��S�)N�boundary)r����r_���r���r�����rstrip)r;���r����r����r����r���r���r����get_boundary6��s ����zMessage.get_boundaryc�������������C���s ��t���}|�j|d�}||kr$tjd��g�}d}xB|D�]:\}}|j��dkr^|jdd|�f��d}q2|j||f��q2W�|s�|jdd|�f��g�}x�|�jD�]�\} } | j��dk�rg�}x6|D�].\}} | dkr�|j|��q�|jd|| f���q�W�tj|�} |j|�j j | | ���q�|j| | f��q�W�||�_d�S�) Nzcontent-typezNo Content-Type header foundFr����z"%s"Tr���z%s=%s)r����r����r���ZHeaderParseErrorr+���r,���r5���r����rc���r4���rw���)r;���r����r����r����Z newparamsZfoundpZpkZpvr}����hr{���r����rz���rx���r���r���r����set_boundaryC��s2���� zMessage.set_boundaryc�������������C���s����t���}|�jd|�}||kr|S�t|t�rr|d�p2d}y|d�jd�}t||�}W�n �ttfk rp���|d�}Y�nX�y|jd��W�n�tk r����|S�X�|j��S�)Nr ���r���zus-asciir���zraw-unicode-escape) r����r_���r���r���r���r ���r`���ra���r+���)r;���r����r����r ���ZpcharsetrH���r���r���r����get_content_charsetq��s ���� zMessage.get_content_charsetc����������������s�����fdd�|�j���D��S�)Nc����������������s���g�|�]}|j�����qS�r���)r����)r����part)r����r���r���r�������s����z(Message.get_charsets.<locals>.<listcomp>)�walk)r;���r����r���)r����r����get_charsets���s����zMessage.get_charsetsc�������������C���s*���|�j�d�}|d�krd�S�t|�d�j��}|S�)Nzcontent-dispositionr���)r]���r���r+���)r;���r$����c_dr���r���r����get_content_disposition���s ���� zMessage.get_content_disposition)r����)Fr���N)FN)NF)N)N)N)Nr����T)Nr����T)r����TNr���F)r����T)r����T)N)N)N)N)3�__name__� __module__�__qualname__r ���r<���r>���r=���rI���rH���rL���rM���rN���rR���rh���rm���rl���rq���rr���rt���r|���r~���r����r����r����r����r����r]���r����r����r����ro���r����r����r����r����r����r����r����r����r_���rp���rn���r����r����r����r����r����r����r����Zemail.iteratorsr����r���r���r���r���r���i���s`��� Z / � !� 2 . c�������������������s����e�Zd�Zd3dd�Zd4��fdd� Zdd��Zd d ��Zdd��Zd6dd�Zd7d8d9d:hZ dd��Z dd��Zdd�dd�Zdd�dd�Z dd��Zd;d d!�Zd<d"d#�Zd=d$d%�Zdd&�d'd(�Zd)d*��Zd+d,��Zd-d.��Zd/d0��Zd1d2��Z���ZS�)>�MIMEPartNc�������������C���s(���|d�krddl�m}�|}tj|�|��d�S�)Nr���)�default)Zemail.policyr����r���r<���)r;���r4���r����r���r���r���r<������s����zMIMEPart.__init__Fc����������������s0���|d�kr|�j�n|}|d�kr |j}t��j||d�S�)N)rA���r4���)r4���Zmax_line_length�superr=���)r;���rB���rA���r4���)� __class__r���r���r=������s����zMIMEPart.as_stringc�������������C���s���|�j�|�jjdd�d�S�)NT)�utf8)r4���)r=���r4���Zclone)r;���r���r���r���r>������s����zMIMEPart.__str__c�������������C���s ���|�j�d�}|d�krdS�|jdkS�)Nzcontent-dispositionF� attachment)r]���Zcontent_disposition)r;���r����r���r���r���� is_attachment���s���� zMIMEPart.is_attachmentc������� ������c���s��|j���rd�S�|j��jd�\}}|dkrB||kr>|j|�|fV��d�S�|dkrNd�S�|dkr~x"|j��D�]}|�j||�E�d�H��q`W�d�S�d|kr�|jd�|fV��d�}|jd�}|r�x"|j��D�]}|d�|kr�|}P�q�W�|d�kr�|j��}|r�|d�nd�}|d�k �r|�j||�E�d�H��d�S�)Nr�����text� multipart�related�startz content-idr���)r����r����r����r*���� iter_parts� _find_bodyr_���rh���) r;���r�����preferencelist�maintype�subtypeZsubpart� candidater����Zsubpartsr���r���r���r�������s6���� zMIMEPart._find_bodyr�����html�plainc�������������C���sD���t�|�}d�}x2|�j|�|�D�]"\}}||k�r|}|}|dkrP�qW�|S�)Nr���)r���r����)r;���r����Z best_prioZbodyZprior����r���r���r����get_body���s���� zMIMEPart.get_bodyr����r�����alternativec������� ������c���s��|�j���jd�\}}|dks"|dkr&d�S�|�j��j��}|dkr�|dkr�|�jd�}|r�d}g�}x*|D�]"}|jd�|krvd}q^|j|��q^W�|r�|E�d�H��d�S�|jd ��|E�d�H��d�S�g�}xP|D�]H}|j���jd�\}}||f|�jkr�|j ���r�||kr�|j|��q�|V��q�W�d�S�) Nr����r����r����r����r����Fz content-idTr���) r����r����rh���r����r_���r]���r,����pop�_body_typesr����) r;���r����r����r����r����ry���Zattachmentsr�����seenr���r���r����iter_attachments��s6���� zMIMEPart.iter_attachmentsc�������������c���s���|�j���dkr|�j��E�d�H��d�S�)Nr����)r����rh���)r;���r���r���r���r����4��s����zMIMEPart.iter_parts)�content_managerc������������O���s"���|d�kr|�j�j}|j|�f|�|�S�)N)r4���r�����get_content)r;���r�����args�kwr���r���r���r����<��s����zMIMEPart.get_contentc������������O���s&���|d�kr|�j�j}|j|�f|�|��d�S�)N)r4���r�����set_content)r;���r����r����r����r���r���r���r����A��s����zMIMEPart.set_contentc������� ������C���s����|�j���dkr6|�j��}||f�}||kr6tdj||���g�}g�}x>|�jD�]4\}}|j��jd�rl|j||f��qF|j||f��qFW�|r�t|��|�j d�} || _|�j | _ | g|�_ ng�|�_ ||�_d|�|�d<�|d�k r�|�jd|��d�S�)Nr����zCannot convert {} to {}zcontent-)r4���z multipart/zContent-Typer����)r����r����ru���rv���r5���r+���� startswithr,���r\���r4���r7���rp���) r;���r����Zdisallowed_subtypesr����Zexisting_subtypeZkeep_headersZpart_headersrs���r$���r����r���r���r����_make_multipartF��s,���� zMIMEPart._make_multipartc�������������C���s���|�j�dd|��d�S�)Nr����r�����mixed)r����r����)r����)r;���r����r���r���r����make_relateda��s����zMIMEPart.make_relatedc�������������C���s���|�j�dd|��d�S�)Nr����r����)r����)r����)r;���r����r���r���r����make_alternatived��s����zMIMEPart.make_alternativec�������������C���s���|�j�df�|��d�S�)Nr����)r����)r;���r����r���r���r���� make_mixedg��s����zMIMEPart.make_mixed)�_dispc������������O���sf���|�j���dks|�j��|kr(t|�d|�����t|��|�jd�}|j||��|rXd|krX||d<�|�j|��d�S�)Nr����Zmake_)r4���zcontent-dispositionzContent-Disposition)r����r�����getattrr\���r4���r����rR���)r;���Z_subtyper����r����r����r����r���r���r����_add_multipartj��s����zMIMEPart._add_multipartc�������������O���s���|�j�d|�ddi|���d�S�)Nr����r����Zinline)r����)r����)r;���r����r����r���r���r����add_relatedt��s����zMIMEPart.add_relatedc�������������O���s���|�j�d|�|��d�S�)Nr����)r����)r����)r;���r����r����r���r���r����add_alternativew��s����zMIMEPart.add_alternativec�������������O���s���|�j�d|�ddi|���d�S�)Nr����r����r����)r����)r����)r;���r����r����r���r���r����add_attachmentz��s����zMIMEPart.add_attachmentc�������������C���s���g�|�_�d�|�_d�S�)N)r5���r7���)r;���r���r���r����clear}��s����zMIMEPart.clearc�������������C���s���dd��|�j�D��|�_�d�|�_d�S�)Nc�������������S���s&���g�|�]\}}|j���jd��s||f�qS�)zcontent-)r+���r����)r����nr{���r���r���r���r�������s����z*MIMEPart.clear_content.<locals>.<listcomp>)r5���r7���)r;���r���r���r���� clear_content���s����zMIMEPart.clear_content)N)FNN�r����r����r����)r����)r����r����)r����r����)r����r����)r����r����)N)N)N)r����r����r����r<���r=���r>���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����� __classcell__r���r���)r����r���r�������s0��� . r����c�������������������s���e�Zd�Z��fdd�Z���ZS�)r���c����������������s"���t���j||��d|�krd|�d<�d�S�)NzMIME-Versionz1.0)r����r����)r;���r����r����)r����r���r���r�������s����zEmailMessage.set_content)r����r����r����r����r����r���r���)r����r���r������s���)NT)�__all__�rere���rb����ior���r���Zemailr���r���Zemail._policybaser���r ���r ���r8���Zemail._encoded_wordsr���rj���r�����compiler!���r���r%���r1���r3���r���r����r���r���r���r���r����<module>���s4��� "������N�W