����JFIF���������
1#@!#!123s
D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
lib64
/
python3.8
/
__pycache__
/
Filename :
mailbox.cpython-38.opt-2.pyc
back
Copy
U ����e5dE3���������������������@���sN��d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dl Zd�dl Z d�dlZzd�dlZW�n�e k r����dZY�nX�dddddddd d ddd dddddgZe�j�d�ZG�dd��d�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��dejj�ZG�dd ��d e�ZG�d d!��d!e�ZG�d"d ��d e�ZG�d#d��de�ZG�d$d��de�ZG�d%d ��d e�Z G�d&d'��d'�Z!G�d(d)��d)e!�Z"d<d+d,�Z#d-d.��Z$d/d0��Z%d1d2��Z&d3d4��Z'd5d6��Z(G�d7d��de)�Z*G�d8d��de*�Z+G�d9d��de*�Z,G�d:d��de*�Z-G�d;d��de*�Z.dS�)=�����N�Mailbox�Maildir�mbox�MH�Babyl�MMDF�Message�MaildirMessage�mboxMessage� MHMessage�BabylMessage�MMDFMessage�Error�NoSuchMailboxError� NotEmptyError�ExternalClashError�FormatError�asciic�������������������@���s��e�Zd�ZdBdd�Zdd��Zdd��Zd d ��Zdd��Zd d��ZdCdd�Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zdd ��Zd!d"��Zd#d$��Zd%d&��Zd'd(��Zd)d*��Zd+d,��Zd-d.��ZdDd/d0�Zd1d2��ZdEd3d4�Zd5d6��Zd7d8��Zd9d:��Zd;d<��Zd=d>��Z d?Z!dFd@dA�Z"dS�)Gr���NTc�����������������C���s ���t�j�t�j�|��|�_||�_d�S��N)�os�path�abspath� expanduser�_path�_factory��selfr����factory�create��r����/usr/lib64/python3.8/mailbox.py�__init__$���s����zMailbox.__init__c�����������������C���s���t�d��d�S��Nz&Method must be implemented by subclass��NotImplementedError�r����messager���r���r ����add)���s����zMailbox.addc�����������������C���s���t�d��d�S�r"���r#����r����keyr���r���r ����remove-���s����zMailbox.removec�����������������C���s���|���|��d�S�r���)r*���r(���r���r���r ����__delitem__1���s����zMailbox.__delitem__c�����������������C���s(���z|���|��W�n�tk r"���Y�nX�d�S�r���)r*����KeyErrorr(���r���r���r ����discard4���s����zMailbox.discardc�����������������C���s���t�d��d�S�r"���r#����r���r)���r&���r���r���r ����__setitem__;���s����zMailbox.__setitem__c�����������������C���s*���z|���|�W�S��tk r$���|�Y�S�X�d�S�r���)�__getitem__r,���)r���r)����defaultr���r���r ����get?���s����zMailbox.getc�������������� ���C���sB���|�j�s|��|�S�t�|��|���}|���|�W��5�Q�R���S�Q�R�X�d�S�r���)r����get_message� contextlib�closing�get_file)r���r)����filer���r���r ���r0���F���s���� zMailbox.__getitem__c�����������������C���s���t�d��d�S�r"���r#���r(���r���r���r ���r3���N���s����zMailbox.get_messagec�����������������C���s���t��|��|�����S�r�����email�message_from_bytes� get_bytesZ as_stringr(���r���r���r ���� get_stringR���s����zMailbox.get_stringc�����������������C���s���t�d��d�S�r"���r#���r(���r���r���r ���r;���Y���s����zMailbox.get_bytesc�����������������C���s���t�d��d�S�r"���r#���r(���r���r���r ���r6���]���s����zMailbox.get_filec�����������������C���s���t�d��d�S�r"���r#����r���r���r���r ����iterkeysa���s����zMailbox.iterkeysc�����������������C���s���t�|�����S�r���)�listr>���r=���r���r���r ����keyse���s����zMailbox.keysc�������������� ���c���s>���|�����D�]0}z|�|�}W�n�tk r0���Y�qY�nX�|V��qd�S�r����r>���r,����r���r)����valuer���r���r ���� itervaluesi���s���� zMailbox.itervaluesc�����������������C���s���|�����S�r���)rD���r=���r���r���r ����__iter__r���s����zMailbox.__iter__c�����������������C���s���t�|�����S�r���)r?���rD���r=���r���r���r ����valuesu���s����zMailbox.valuesc�������������� ���c���sB���|�����D�]4}z|�|�}W�n�tk r0���Y�qY�nX�||fV��qd�S�r���rA���rB���r���r���r ���� iteritemsy���s���� zMailbox.iteritemsc�����������������C���s���t�|�����S�r���)r?���rG���r=���r���r���r ����items����s����z Mailbox.itemsc�����������������C���s���t�d��d�S�r"���r#���r(���r���r���r ����__contains__����s����zMailbox.__contains__c�����������������C���s���t�d��d�S�r"���r#���r=���r���r���r ����__len__����s����zMailbox.__len__c�����������������C���s���|�����D�]}|��|��qd�S�r���)r@���r-���r(���r���r���r ����clear����s����z Mailbox.clearc�����������������C���s4���z|�|�}W�n�t�k r$���|�Y�S�X�|��|��|S�r���)r,���r-���)r���r)���r1����resultr���r���r ����pop����s���� zMailbox.popc�����������������C���s*���|�����D�]}||��|�f��S�td��d�S�)NzNo messages in mailbox)r>���rM���r,���r(���r���r���r ����popitem����s����zMailbox.popitemc�������������� ���C���st���t�|d�r|���}nt�|d�r(|���}n|}d}|D�].\}}z||�|<�W�q4�tk r`���d}Y�q4X�q4|rptd��d�S�)NrG���rH���FTzNo message with key(s))�hasattrrG���rH���r,���)r����arg�sourceZbad_keyr)���r&���r���r���r ����update����s���� zMailbox.updatec�����������������C���s���t�d��d�S�r"���r#���r=���r���r���r ����flush����s����z Mailbox.flushc�����������������C���s���t�d��d�S�r"���r#���r=���r���r���r ����lock����s����zMailbox.lockc�����������������C���s���t�d��d�S�r"���r#���r=���r���r���r ����unlock����s����zMailbox.unlockc�����������������C���s���t�d��d�S�r"���r#���r=���r���r���r ����close����s����z Mailbox.closec�����������������C���s.���z|��d�W�S��tk r(���td��Y�nX�d�S�)Nr���z?String input must be ASCII-only; use bytes or a Message instead)�encode�UnicodeError� ValueErrorr%���r���r���r ����_string_to_bytes����s����zMailbox._string_to_bytesFc����������� ������C���s���t�|tjj�rvt���}tj�||d�}|�|��|� d��|� ��}|�dt�}|� |��|�jrr|�t�sr|� t���n�t�|tttjf��rt�|tj�r�t�dtd��|���}t�|t�r�|��|�}|r�|�dd�}|�dt�}|� |��|�j�r�|�t��s�|� t��n�t|d��r�t|d��r2t�d td��|j}d�}|���}|�d ��r\|d�d��d�}n|�d��rx|d�d ��d�}|�s��q�|�r�|�d��r�d|dd����}|�dt�}|� |��|}�q6|�j�r�|�r�|�t��s�|� t��ntdt|����d�S�)Nr������� �8Use of StringIO input is deprecated, use BytesIO instead����s��� From s��� >From �read�buffer�DUse of text mode files is deprecated, use a binary mode file instead���� ������� �������From s���>From �����Invalid message type: %s)� isinstancer9���r&���r����io�BytesIO� generator�BytesGenerator�flatten�seekr^����replace�linesep�write�_append_newline�endswith�str�bytes�StringIO�warnings�warn�DeprecationWarning�getvaluerZ���rO���r_����readline� startswith� TypeError�type) r���r&����targetZmangle_from_r_����gen�dataZlastline�liner���r���r ���� _dump_message����s`���� �� �� zMailbox._dump_message)NT)N)N)N)F)#�__name__� __module__�__qualname__r!���r'���r*���r+���r-���r/���r2���r0���r3���r<���r;���r6���r>���r@���rD���rE���rF���rG���rH���rI���rJ���rK���rM���rN���rR���rS���rT���rU���rV���rZ���rr���r����r���r���r���r ���r���!���s@��� c�������������������@���s����e�Zd�ZdZd5dd�Zdd��Zdd ��Zd d��Zdd ��Zdd��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zdd��Zd d!��Zd"d#��Zd$d%��Zd&d'��Zd(d)��Zd*d+��Zd,Zd-d.��Zd/d0��Zd1d2��Zd3d4��ZdS�)6r����:NTc�����������������C���s����t��|�|||��tj�|�jd�tj�|�jd�tj�|�jd�d�|�_tj�|�j�s�|r�t�|�jd��|�j� ��D�]}t�|d��qln t |�j��i�|�_ddd�|�_d|�_ d|�_d�S�) N�tmp�new�cur)r����r����r�������r���)r����r����g�������?)r���r!���r���r����joinr����_paths�exists�mkdirrF���r����_toc�_toc_mtimes� _last_read�_skewfactor)r����dirnamer���r���r���r���r���r ���r!��� ��s����� zMaildir.__init__c�������������� ���C���s~��|�����}z|��||��W�n*�tk rB���|����t�|j����Y�nX�t|��t|t �r||� ��}|�j|����}||�jkr�d}nd}d}tj �|j��|�j�d�}tj �|�j|||��}t|t �r�t�|jtj �|j�|���f��zLzt�|j|��W�n(�ttfk �r���t�|j|��Y�nX�t�|j��W�nN�tk �rx�}�z.t�|j��|jtjk�rftd|���n��W�5�d�}~X�Y�nX�|S�)N��r����r���z$Name clash with existing message: %s)�_create_tmpr����� BaseExceptionrV���r���r*����name�_sync_closerh���r ���� get_subdir�colon�get_infor����basename�splitr����r����utime�getatime�get_date�link�AttributeError�PermissionError�rename�OSError�errnoZEEXISTr���)r���r&���Ztmp_file�subdir�suffix�uniq�dest�er���r���r ���r'���!��sF���� ��zMaildir.addc�����������������C���s ���t��t�j�|�j|��|����d�S�r���)r���r*���r���r����r����_lookupr(���r���r���r ���r*���K��s����zMaildir.removec�������������� ���C���s,���z|���|��W�n�ttfk r&���Y�nX�d�S�r���)r*���r,����FileNotFoundErrorr(���r���r���r ���r-���O��s����zMaildir.discardc�����������������C���s����|���|�}|��|�}|���|�}t|t�r.|}n|}tj�|�}|�j|kr`|�j|�|�j�d��}nd}|�� |��tj� |�j|�} tj� |�j|||��} t|t�r�t�| tj� | �|���f��t�| | ��d�S�)Nrd���r����)r����r'���rh���r ���r���r���r����r����r����r-���r����r���r����r����r����r����)r���r)���r&���Zold_subpathZtemp_keyZtemp_subpathZdominant_subpathr����r����Ztmp_path�new_pathr���r���r ���r/���W��s$���� �zMaildir.__setitem__c�������������� ���C���s����|���|�}ttj�|�j|�d�� }|�jr4|��|�}nt|�}W�5�Q�R�X�tj�|�\}}|� |��|�j |kr�|�|�|�j �d���|�tj� tj�|�j|����|S�)N�rbrd���)r�����openr���r���r����r���r���r ���r����� set_subdirr�����set_info�set_date�getmtime)r���r)���Zsubpath�f�msgr����r����r���r���r ���r3���r��s���� zMaildir.get_messagec�������������� ���C���sD���t�tj�|�j|��|��d��}|����td�W��5�Q�R���S�Q�R�X�d�S�)Nr����r[���) r����r���r���r����r���r����r^���ro���rp����r���r)���r����r���r���r ���r;������s����zMaildir.get_bytesc�����������������C���s$���t�tj�|�j|��|��d�}t|�S�)Nr����)r����r���r���r����r���r����� _ProxyFiler����r���r���r ���r6������s����zMaildir.get_filec�������������� ���c���sF���|������|�jD�]2}z|��|��W�n�tk r8���Y�qY�nX�|V��qd�S�r���)�_refreshr����r����r,���r(���r���r���r ���r>������s���� zMaildir.iterkeysc�����������������C���s���|������||�jkS�r���)r����r����r(���r���r���r ���rI������s����zMaildir.__contains__c�����������������C���s���|������t|�j�S�r���)r�����lenr����r=���r���r���r ���rJ������s����zMaildir.__len__c�����������������C���s���d�S�r���r���r=���r���r���r ���rS������s����z Maildir.flushc�����������������C���s���d�S�r���r���r=���r���r���r ���rT������s����zMaildir.lockc�����������������C���s���d�S�r���r���r=���r���r���r ���rU������s����zMaildir.unlockc�����������������C���s���d�S�r���r���r=���r���r���r ���rV������s����z Maildir.closec�����������������C���s\���g�}t��|�j�D�]F}t|�dkr|d�dkrt�j�t�j�|�j|��r|�|dd�����q|S�)N����r����.)r����listdirr���r����r����isdirr�����append�r���rL����entryr���r���r ����list_folders���s�����zMaildir.list_foldersc�����������������C���s ���t�tj�|�jd|��|�jdd�S�)Nr����F�r���r���)r���r���r���r����r���r����r����folderr���r���r ���� get_folder���s�����zMaildir.get_folderc�����������������C���s\���t�j�|�jd|��}t||�jd�}t�j�|d�}t�j�|�sXt��t��|t�j t�j B�d���|S�)Nr�����r���Z maildirfolder���)r���r���r����r���r���r���r����rV���r�����O_CREAT�O_WRONLY)r���r����r���rL���Zmaildirfolder_pathr���r���r ���� add_folder���s�����zMaildir.add_folderc�����������������C���s��t�j�|�jd|��}t��t�j�|d��t��t�j�|d���D�](}t|�dk�sX|d�dkr<td|���q<t��|�D�]B}|dkrp|dkrp|dkrpt�j�t�j�||��rptd||f���qpt�j|d d �D�]F\}}}|D�]}t�� t�j�||���q�|D�]}t�� t�j�||���q�q�t�� |��d�S�)Nr����r����r����r����r���zFolder contains message(s): %sr����z%Folder contains subdirectory '%s': %sF)�topdown)r���r���r����r���r����r����r���r�����walkr*����rmdir)r���r����r���r�����root�dirs�filesr���r���r ���� remove_folder���s&�������zMaildir.remove_folderc�����������������C���sX���t�����}t�tj�|�jd��D�]4}tj�|�jd|�}|tj�|��dkrt�|��qd�S�)Nr����i@��)�timer���r����r���r����r���r����r*���)r����nowr����r���r���r���r ����clean���s ����z Maildir.cleanr����c�����������������C���s����t�����}t���}d|kr$|�dd�}d|kr8|�dd�}dt|�t|d�d��t���tj|f�}tj � |�jd|�}zt�|��W�nF�t k r����t�jd7��_zt|�W��Y�S��tk r����Y�nX�Y�nX�td |���d�S�) N�/z\057r����z\072z%s.M%sP%sQ%s.%sr����g������.Ar����z&Name clash prevented file creation: %s)r�����socket�gethostnamero����intr����getpidr����_countr���r����r����statr�����_create_carefully�FileExistsErrorr���)r���r����Zhostnamer����r���r���r���r ���r�������s,�������zMaildir._create_tmpc�����������������C���s����t�����|�j�d|�j�kr^d}|�jD�]2}tj�|�j|��}||�j|�krJd}||�j|<�q"|s^d�S�i�|�_|�jD�]^}|�j|�}t� |�D�]D}tj� ||�}tj�|�r�q�|�|�j �d�}tj� ||�|�j|<�q�qjt�����|�_d�S�)N����FTr���)r����r����r����r����r���r���r����r����r����r����r����r����r����r����)r���Zrefreshr�����mtimer���r�����pr����r���r���r ���r�������s&���� zMaildir._refreshc�����������������C���s����z.t�j�t�j�|�j|�j|���r,|�j|�W�S�W�n�tk rB���Y�nX�|�����z|�j|�W�S��tk rz���td|��d��Y�nX�d�S��N�No message with key: %s)r���r���r����r����r���r����r,���r����r(���r���r���r ���r����#��s����zMaildir._lookupc�����������������C���sX���t�|�d�s|����|�_z|�t|�j��W�S��tk r:���Y�d�S��tk rP���Y�qY�qX�qd�S�)N� _onetime_keys)rO���r>���r�����next� StopIterationr,���r=���r���r���r ���r����1��s���� zMaildir.next)NT)r����r����r����r����r!���r'���r*���r-���r/���r3���r;���r6���r>���rI���rJ���rS���rT���rU���rV���r����r����r����r����r����r����r����r����r����r����r���r���r���r ���r�����s4��� * $c�������������������@���s����e�Zd�Zd#dd�Zdd��Zdd��Zd d ��Zdd��Zd d��Zdd��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zd$dd �Zd!d"��ZdS�)%�_singlefileMailboxNTc�������������� ���C���s����t��|�|||��zt|�jd�}W�nn�tk r��}�zP|jtjkr\|rPt|�jd�}q~t|�j��n"|jtjtj fkr|t|�jd�}n��W�5�d�}~X�Y�nX�||�_ d�|�_d|�_d|�_ d|�_d|�_d�|�_d�S�)N�rb+zwb+r����r���F)r���r!���r����r���r����r�����ENOENTr����EACCES�EROFS�_filer����� _next_key�_pending� _pending_sync�_locked�_file_length)r���r���r���r���r����r����r���r���r ���r!���A��s$����z_singlefileMailbox.__init__c�����������������C���s8���|������|��|�|�j|�j<�|��jd7��_d|�_|�jd�S�)Nr����T)r�����_append_messager����r����r����r%���r���r���r ���r'���X��s ����z_singlefileMailbox.addc�����������������C���s���|���|��|�j|=�d|�_d�S��NT)r����r����r����r(���r���r���r ���r*���b��s���� z_singlefileMailbox.removec�����������������C���s$���|���|��|��|�|�j|<�d|�_d�S�r����)r����r����r����r����r.���r���r���r ���r/���h��s���� z_singlefileMailbox.__setitem__c�����������������c���s���|������|�j���E�d�H��d�S�r���)r����r����r@���r=���r���r���r ���r>���n��s����z_singlefileMailbox.iterkeysc�����������������C���s���|������||�jkS�r���)r����r����r(���r���r���r ���rI���s��s����z_singlefileMailbox.__contains__c�����������������C���s���|������t|�j�S�r���)r����r����r����r=���r���r���r ���rJ���x��s����z_singlefileMailbox.__len__c�����������������C���s���|�j�st|�j��d|�_�d�S�r����)r����� _lock_filer����r=���r���r���r ���rT���}��s���� z_singlefileMailbox.lockc�����������������C���s���|�j�rt|�j��d|�_�d�S��NF)r�����_unlock_filer����r=���r���r���r ���rU������s���� z_singlefileMailbox.unlockc����������� ������C���s���|�j�s |�jrt|�j��d|�_d�S�|�j�dd��|�j���}||�jkrTtd|�j|f���t|�j �}z�i�}|�� |��t|�j� ���D�]x}|�j|�\}}|�j�|��|��|��|���}|�j�td||�j������}|s�q�|�|��q�||���f||<�|��|��q||���|�_W�n"���|����t�|j����Y�nX�t|��|�j����t�|�j �j} t�|j| ��zt�|j|�j ��W�n2�tk �r����t�|�j ��t�|j|�j ��Y�nX�t|�j d�|�_||�_d|�_�d|�_|�j�r�t|�jdd��d�S�)NFr���r����z4Size of mailbox file changed (expected %i, found %i)����r����)�dotlock) r����r�����_sync_flushr����rn����tellr����r����_create_temporaryr����_pre_mailbox_hook�sortedr����r@����_pre_message_hookr^����minrq����_post_message_hookrV���r���r*���r����r����r�����st_mode�chmodr����r����r����r����r����) r���Zcur_lenZnew_fileZnew_tocr)����start�stopZ new_startr_����moder���r���r ���rS������s`���� � � z_singlefileMailbox.flushc�����������������C���s���d�S�r���r����r���r����r���r���r ���r�������s����z$_singlefileMailbox._pre_mailbox_hookc�����������������C���s���d�S�r���r���r��r���r���r ���r�������s����z$_singlefileMailbox._pre_message_hookc�����������������C���s���d�S�r���r���r��r���r���r ���r�����s����z%_singlefileMailbox._post_message_hookc�����������������C���s4���z|�����W�5�z|�jr|�����W�5�|�j�����X�X�d�S�r���)r����rV���r����rU���rS���r=���r���r���r ���rV������s����z_singlefileMailbox.closec�����������������C���sN���|�j�d�kr|�����|d�k rJz|�j�|�W�S��tk rH���td|��d��Y�nX�d�S�r����)r����� _generate_tocr,���r(���r���r���r ���r�������s���� z_singlefileMailbox._lookupc�����������������C���s����|�j��dd��|�j����}t|�j�dkr8|�js8|��|�j���z&|��|�j���|��|�}|�� |�j���W�n"�t k r����|�j��|����Y�nX�|�j�����|�j����|�_ |S�)Nr���r����)r����rn���r����r����r����r����r����r�����_install_messager��r�����truncaterS���r����)r���r&���ZbeforeZoffsetsr���r���r ���r�������s���� z"_singlefileMailbox._append_message)NT)N)r����r����r����r!���r'���r*���r/���r>���rI���rJ���rT���rU���rS���r����r����r��rV���r����r����r���r���r���r ���r����>��s ��� @ r����c�������������������@���s>���e�Zd�ZdZdd��Zddd�Zddd�Zdd d �Zdd��Zd S�)� _mboxMMDFTc�����������������C���sp���|���|�\}}|�j�|��|�j����td�}|�j�||�j�����}|��|�td��}|� |dd���� d���|S�)N�����r[���rf���r���)r����r����rn���r{���ro���rp���r^���r�����_message_factory�set_from�decode)r���r)���r��r��� from_line�stringr����r���r���r ���r3�����s����z_mboxMMDF.get_messageFc�����������������C���s���t��|��||��j|d�S�)N)�unixfromr8���)r���r)����from_r���r���r ���r<�����s ���� ��z_mboxMMDF.get_stringc�����������������C���sJ���|���|�\}}|�j�|��|s(|�j����|�j�||�j�����}|�td�S��Nr[���)r����r����rn���r{���r^���r����ro���rp���)r���r)���r��r��r��r��r���r���r ���r;�����s���� z_mboxMMDF.get_bytesc�����������������C���s<���|���|�\}}|�j�|��|s(|�j����t|�j|�j���|�S�r���)r����r����rn���r{����_PartialFiler����)r���r)���r��r��r��r���r���r ���r6�����s ���� z_mboxMMDF.get_filec�����������������C���s��d�}t�|t�r|��|�}t�|t�rf|�d�rf|�d�}|dkr\|d�|��}||d�d���}q�|}d}nJt�|t�r�|����d�}d|�}n(t�|t j j�r�|���}|d�k r�|�d�}|d�kr�dt �t ��������}|�j���}|�j�|t���|��||�j|�j��|�j���}||fS�)Nre���r[���rd���r����r��r���s���From MAILER-DAEMON )rh���rt���rZ���ru���r|����find�_mboxMMDFMessage�get_fromrW���r9���r&���r����get_unixfromr�����asctime�gmtimer����r����rq���rp���r����� _mangle_from_)r���r&���r���newlineZauthorr��r��r���r���r ���r ��&��s0���� z_mboxMMDF._install_messageN)F)F)F) r����r����r����r��r3���r<���r;���r6���r ��r���r���r���r ���r����s��� r��c�������������������@���s.���e�Zd�ZdZdZd dd�Zdd��Zdd��ZdS�) r���TNc�����������������C���s���t�|�_t�|�|||��d�S�r���)r ���r ��r��r!���r���r���r���r ���r!���L��s����z mbox.__init__c�����������������C���s���|��t��d�S�r����rq���rp���r��r���r���r ���r��Q��s����zmbox._post_message_hookc�����������������C���s����g�g��}}d}|�j��d��|�j����}|�j����}|�d�rzt|�t|�k�rj|r`|�|tt����n |�|��|�|��d}q|s�|r�|�|tt����q�|�|��q�q|tkr�d}qd}qtt t ||���|�_t|�j�|�_|�j����|�_ d�S�)NFr���re���T)r����rn���r����r{���r|���r����r����rp����dict� enumerate�zipr����r����r����)r����starts�stopsZlast_was_empty�line_posr����r���r���r ���r��U��s.���� zmbox._generate_toc)NT)r����r����r����r��rr���r!���r��r��r���r���r���r ���r���C��s ��� c�������������������@���s.���e�Zd�Zddd�Zdd��Zdd��Zd d ��ZdS�)r���NTc�����������������C���s���t�|�_t�|�|||��d�S�r���)r ���r ��r��r!���r���r���r���r ���r!���z��s����z MMDF.__init__c�����������������C���s���|��dt���d�S��N����r��r��r���r���r ���r������s����zMMDF._pre_message_hookc�����������������C���s���|��td�t���d�S�r%��r��r��r���r���r ���r�����s����zMMDF._post_message_hookc�����������������C���s����g�g��}}|�j��d��d}|}|�j����}|�j����}|�dt��r�|�|��|}|�j����}|�j����}|dt�kr�|�|tt����q�qJ|sJ|�|��q�qJq|sq�qtt t ||���|�_t|�j�|�_|�j��dd��|�j����|�_ d�S�)Nr���r&��r����)r����rn���r{���r����r|���rp���r����r����r��r ��r!��r����r����r����)r���r"��r#���next_posr$��r����r���r���r ���r�����s.���� zMMDF._generate_toc)NT)r����r����r����r!���r����r��r��r���r���r���r ���r���w��s��� c�������������������@���s����e�Zd�Zd/dd�Zdd��Zdd��Zd d ��Zdd��Zd d��Zdd��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zdd ��Zd!d"��Zd#d$��Zd%d&��Zd'd(��Zd)d*��Zd+d,��Zd-d.��ZdS�)0r���NTc�����������������C���st���t��|�|||��tj�|�j�sj|r`t�|�jd��t�t�tj� |�jd�tj tjB�tjB�d���n t |�j��d|�_d�S�)Nr����� .mh_sequencesi���F)r���r!���r���r���r����r���r����rV���r����r����r�����O_EXCLr����r���r����r���r���r���r ���r!������s������ zMH.__init__c�����������������C���s����|�����}t|�dkrd}nt|�d�}tj�|�jt|��}t|�}d}z�|�j rVt|��zfz|�� ||��W�n:�tk r����|�j r�t|��t |��d}t�|����Y�nX�t|t�r�|��||��W�5�|�j r�t|��X�W�5�|s�t |��X�|S�)Nr���r����FT)r@���r�����maxr���r���r����r���rt���r����r����r����r����r����r����r����r*���rh���r����_dump_sequences)r���r&���r@���Znew_keyr����r�����closedr���r���r ���r'������s6���� zMH.addc�������������� ���C���sx���t�j�|�jt|��}zt|d�}W�n>�tk r`�}�z |jtjkrNt d|���n��W�5�d�}~X�Y�nX�|� ���t��|��d�S��Nr����r����)r���r���r����r���rt���r����r����r����r����r,���rV���r*���)r���r)���r���r����r����r���r���r ���r*������s����z MH.removec�������������� ���C���s����t�j�|�jt|��}zt|d�}W�n>�tk r`�}�z |jtjkrNt d|���n��W�5�d�}~X�Y�nX�zd|�jrrt|��z@t��t��|t�jt�jB����|��||��t|t�r�|��||��W�5�|�jr�t |��X�W�5�t |��X�d�S�r-��)r���r���r����r���rt���r����r����r����r����r,���r����r����r����r����rV���r�����O_TRUNCr����rh���r���r+��)r���r)���r&���r���r����r����r���r���r ���r/������s$���� zMH.__setitem__c�������������� ���C���s����z@|�j�r$ttj�|�jt|��d�}nttj�|�jt|��d�}W�n>�tk r~�}�z |jtj krlt d|���n��W�5�d�}~X�Y�nX�|�2�|�j�r�t|��zt |�}W�5�|�j�r�t|��X�W�5�Q�R�X�|�������D�]\}}||kr�|�|��q�|S�)Nr����r����r����)r����r����r���r���r����r���rt���r����r����r����r,���r����r����r���� get_sequencesrH����add_sequence)r���r)���r����r����r����r�����key_listr���r���r ���r3������s&����zMH.get_messagec�������������� ���C���s����z@|�j�r$ttj�|�jt|��d�}nttj�|�jt|��d�}W�n>�tk r~�}�z |jtj krlt d|���n��W�5�d�}~X�Y�nX�|�F�|�j�r�t|��z |� ���td�W��W��5�Q�R���S�|�j�r�t|��X�W�5�Q�R�X�d�S�)Nr����r����r����r[���)r����r����r���r���r����r���rt���r����r����r����r,���r����r����r^���ro���rp����r���r)���r����r����r���r���r ���r;�����s���� zMH.get_bytesc�������������� ���C���sf���zt�tj�|�jt|��d�}W�n>�tk r\�}�z |jtjkrJt d|���n��W�5�d�}~X�Y�nX�t |�S�)Nr����r����)r����r���r���r����r���rt���r����r����r����r,���r����r2��r���r���r ���r6���)��s����zMH.get_filec�����������������C���s���t�tdd��t�|�j�D����S�)Nc�����������������s���s���|�]}|����rt|�V��qd�S�r���)�isdigitr����)�.0r����r���r���r ���� <genexpr>6��s�����zMH.iterkeys.<locals>.<genexpr>)�iterr����r���r����r���r=���r���r���r ���r>���4��s����zMH.iterkeysc�����������������C���s���t�j�t�j�|�jt|���S�r���)r���r���r����r����r���rt���r(���r���r���r ���rI���9��s����zMH.__contains__c�����������������C���s���t�t|������S�r���)r����r?���r>���r=���r���r���r ���rJ���=��s����z MH.__len__c�����������������C���s2���|�j�s.ttj�|�jd�d�|�_t|�j��d|�_�d�S�)Nr(��r����T)r����r����r���r���r����r���r����r����r=���r���r���r ���rT���A��s���� zMH.lockc�����������������C���s(���|�j�r$t|�j��t|�j��|�`d|�_�d�S�r����)r����r����r����r����r=���r���r���r ���rU���H��s ���� z MH.unlockc�����������������C���s���d�S�r���r���r=���r���r���r ���rS���P��s����zMH.flushc�����������������C���s���|�j�r|�����d�S�r���)r����rU���r=���r���r���r ���rV���T��s����zMH.closec�����������������C���s<���g�}t��|�j�D�]&}t�j�t�j�|�j|��r|�|��q|S�r���)r���r����r���r���r����r����r����r����r���r���r ���r����Y��s ����zMH.list_foldersc�����������������C���s���t�tj�|�j|�|�jdd�S�)NFr�����r���r���r���r����r���r���r����r���r���r ���r����a��s������z MH.get_folderc�����������������C���s���t�tj�|�j|�|�jd�S�)Nr����r7��r����r���r���r ���r����f��s�����z MH.add_folderc�����������������C���s`���t�j�|�j|�}t��|�}|dgkr:t��t�j�|d���n|g�krDntd|�j���t��|��d�S�)Nr(��zFolder not empty: %s)r���r���r����r���r����r*���r���r����)r���r����r����entriesr���r���r ���r����k��s���� zMH.remove_folderc����������� ��� ������s��i�}t�tj�|�jd�ddd���}t|�������|D�]�}z�|�d�\}}t��}|���D�]H}|���rn|� t |���qRdd��|�d�D��\}} |�t|| d ����qR��fd d�t |�D��||<�t||��dkr�||=�W�q0�tk r����td |������Y�q0X�q0W�5�Q�R�X�|S�)Nr(���r�ASCII��encodingr����c�����������������s���s���|�]}t�|�V��qd�S�r���)r����)r4���xr���r���r ���r5�����s�����z#MH.get_sequences.<locals>.<genexpr>�-r����c��������������������s���g�|�]}|��kr|�qS�r���r���)r4��r)����Zall_keysr���r ���� <listcomp>���s�����z$MH.get_sequences.<locals>.<listcomp>r���z"Invalid sequence specification: %s)r����r���r���r����r����setr@���r����r3��r'���r����rR����ranger����r����rY���r����rstrip) r���Zresultsr����r����r�����contentsr@����specr��r��r���r?��r ���r/��w��s(���� �zMH.get_sequencesc�����������������C���s��t�tj�|�jd�ddd�}z�t�t��|jtjtj B����|� ��D�]�\}}t|�dkrVq@|�|d���d�}d}t t|��D�]R}|d�|kr�|s�d }|�d ��n*|r�d}|�d||f���n|�d|���|}qx|r�|�t|�d ���q@|�d ��q@W�5�t|��X�d�S�)Nr(��zr+r:��r;��r���r����Fr����Tr>��z%s %sz %s� )r����r���r���r����r���r����rV���r����r����r.��rH���r����rq���r����rA��rt���)r���� sequencesr����r����r@����prevZ completingr)���r���r���r ���� set_sequences���s.����zMH.set_sequencesc����������� ��� ���C���s>��|�����}d}g�}|����D�]�}|d�|kr�|�||d�f��z4t�tj�|�jt|��tj�|�jt|d�����W�nH�t t fk r����t�tj�|�jt|��tj�|�jt|d�����Y�nX�t�tj�|�jt|����|d7�}q|d�|�_ t|�dkr�d�S�|���D�]0\}}|D�]"\}}||k�r |||�|�<��q q�|��|��d�S�)Nr���r����)r/��r>���r����r���r����r���r����r���rt���r����r����r�����unlinkr����r����rH����indexrI��) r���rG��rH��Zchangesr)���r����r1���oldr����r���r���r ����pack���s0������ zMH.packc�����������������C���st���|����}|�����}|���D�]0\}}||kr4|�|��q||kr||�|�=�q|D�]}||krN|g||<�qN|��|��d�S�r���)r/��rH���r����rK��rI��)r���r&���r)���Zpending_sequencesZ all_sequencesr����r1���sequencer���r���r ���r+�����s����zMH._dump_sequences)NT)r����r����r����r!���r'���r*���r/���r3���r;���r6���r>���rI���rJ���rT���rU���rS���rV���r����r����r����r����r/��rI��rM��r+��r���r���r���r ���r������s,��� "c�������������������@���s����e�Zd�Zedddddddh�Zd$d d�Zdd ��Zdd��Zdd��Zdd��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zd d!��Zd"d#��ZdS�)%r����unseen�deletedZfiled�answered� forwardedZedited�resentNTc�����������������C���s���t��|�|||��i�|�_d�S�r���)r����r!����_labelsr���r���r���r ���r!������s����zBabyl.__init__c�����������������C���s(���t��|�|�}t|t�r$|���|�j|<�|S�r���)r����r'���rh���r���� get_labelsrT��)r���r&���r)���r���r���r ���r'������s���� z Babyl.addc�����������������C���s"���t��|�|��||�jkr|�j|=�d�S�r���)r����r*���rT��r(���r���r���r ���r*������s���� zBabyl.removec�����������������C���s*���t��|�||��t|t�r&|���|�j|<�d�S�r���)r����r/���rh���r���rU��rT��r.���r���r���r ���r/������s���� zBabyl.__setitem__c����������� ������C���s����|���|�\}}|�j�|��|�j����t���}|�j���}|dt�ks\|sHq\|�|�td���q,t���}|�j���}|tks�|s|q�|�|�td���qd||�j� ���}|�j� |�}|�td�}t|���|��} | � |�����||�jkr�| �|�j|���| S��N����*** EOOH ***r[���)r����r����rn���r{���ri���rj���rp���rq���ro���r����r^���r���rz����set_visiblerT��� set_labels) r���r)���r��r���original_headersr����Zvisible_headers�nZbodyr����r���r���r ���r3������s*���� zBabyl.get_messagec����������� ������C���s����|���|�\}}|�j�|��|�j����t���}|�j���}|dt�ks\|sHq\|�|�td���q,|�j���}|tksv|s\qvq\|� ��}||�j� ���}|�j�|�}|�td�}||�S�rV��)r����r����rn���r{���ri���rj���rp���rq���ro���rz���r����r^���) r���r)���r��r��rZ��r����Zheadersr[��r����r���r���r ���r;�����s ���� zBabyl.get_bytesc�����������������C���s���t��|��|��dt��S�r��)ri���rj���r;���ro���rp���r(���r���r���r ���r6���%��s����zBabyl.get_filec�����������������C���s<���|������t��}|�j���D�]}|�|��q|�|�j��t|�S�r���)r����rA��rT��rF���rR����difference_update�_special_labelsr?���)r����labelsZ label_listr���r���r ���rU��)��s����zBabyl.get_labelsc�����������������C���s:��g�g��}}|�j��d��d}g�}|}|�j����}|�j����}|dt�kr�t|�t|�k�rd|�|tt����|�|��dd��|�j����dd����d�D��}|�|��q|dks�|dt�kr�t|�t|�k�r�|�|tt����q|s|�|tt����q�qtt t ||���|�_tt |��|�_t|�j�|�_ |�j��dd��|�j����|�_d�S�) Nr���s���c�����������������S���s���g�|�]}|����r|�����qS�r���)�strip�r4���labelr���r���r ���r@��@��s�����z'Babyl._generate_toc.<locals>.<listcomp>r��������,����r����)r����rn���r{���r����rp���r����r����r����r��r ��r!��r����rT��r����r����)r���r"��r#��r'��Zlabel_listsr$��r����r^��r���r���r ���r��2��s4���� �zBabyl._generate_tocc�����������������C���sV���dt��}|dt��7�}|����}dd��|D��}|dd�|��t��7�}|d7�}|�|��d�S�)Ns���BABYL OPTIONS:s ���Version: 5c�����������������s���s���|�]}|����V��qd�S�r���)rW���r`��r���r���r ���r5��U��s�����z*Babyl._pre_mailbox_hook.<locals>.<genexpr>s���Labels:rb��rc��)rp���rU��r����rq���)r���r����Zbabylr^��r���r���r ���r����P��s����zBabyl._pre_mailbox_hookc�����������������C���s���|��dt���d�S�)N����r��r��r���r���r ���r����Z��s����zBabyl._pre_message_hookc�����������������C���s���|��td���d�S�)Nrc��r��r��r���r���r ���r��^��s����zBabyl._post_message_hookc�����������������C���sx��|�j����}t|t�r�g�}g�}|���D�]$}||�jkr>|�|��q$|�|��q$|�j��d��|D�]}|�j��d|������qZ|�j��d��|D�]}|�j��d|����d���q�|�j��t ��n|�j��dt ���t|t jj��rt ���}t j�|dd�}|�|��|�d��|���}|�j��|�d t ���|d k�s,|s��q,q�|�j��d t ���t|t��r�t ���} t j�| dd�} | �|�����| ���}|�j��|�d t ���|d k�s�|�sn�q�qnn>|�d��|���}|�j��|�d t ���|d k�s�|�s��q�q�|�d�}|�s��qf|�j��|�d t ����q�nTt|ttt jf��rt|t j��rJt�dtd ��|���}t|t��r`|��|�}|�d�d�}|d�dk�r�|�j��|d�|���d t ���|�j��d t ���|�j��|d�|���d t ���|�j��||d����d t ���n(|�j��d t �t ���|�j��|�d t ����nXt |d��rVt |d��r:t�dtd ��|j!}|���} d}|���}|�"d��rl|d�d��d �}n|�"d��r�|d�d��d �}|�j��|�d t ���|d k�s�|�sF|�r�d}|�j��d t ���|�| ��n�qڐqF|���}|�s�qf|�"d��r |d�d��t �}n:|�"d��r(|d�d��t �}n|�"d ��rD|d�d��t �}|�j��|���q�nt#dt$|����|�j����}||fS�)N����1s���, s���,,���� rb��s���1,,Fr���r[���rW��r����r\���r]���s��� r����rd���r{���r_���r`���Tra���rb���rc���rg���)%r����r����rh���r���rU��r]��r����rq���rW���rp���r9���r&���r���ri���rj���rk���rl���rm���rn���r{���ro����get_visibler^���ru���rt���rv���rw���rx���ry���rz���rZ���r��rO���r_���rs���r}���r~���)r���r&���r��Zspecial_labelsr^��ra��Zorig_bufferZorig_generatorr����Z vis_bufferZ vis_generatorr_���Z body_startZoriginal_posZ first_passr��r���r���r ���r ��b��s����� �� �� zBabyl._install_message)NT)r����r����r����� frozensetr]��r!���r'���r*���r/���r3���r;���r6���rU��r��r����r����r��r ��r���r���r���r ���r������s$��� ��� c�������������������@���s&���e�Zd�Zddd�Zdd��Zdd��ZdS�) r���Nc�����������������C���s����t�|tjj�r4|��t�|���t�|t�r�|�|���n�t�|t�rP|��t� |���n~t�|t �rl|��t�|���nbt�|tj �r�|��t�|���nDt|d�r�|��t�|���n(|d�kr�tjj�|���ntdt|����d�S�)Nr^���rg���)rh���r9���r&���r����_become_message�copyZdeepcopy�_explain_toru���r:���rt���Zmessage_from_stringri���� TextIOWrapperZmessage_from_filerO���Zmessage_from_binary_filer!���r}���r~���r%���r���r���r ���r!������s���� zMessage.__init__c�����������������C���s4���t�|dg��}|jD�]}||kr|j|�|�j|<�qd�S�)N�_type_specific_attributes)�getattr�__dict__)r���r&���Z type_specificr����r���r���r ���ri�����s���� zMessage._become_messagec�����������������C���s���t�|t�rd�S�td��d�S�)Nz Cannot convert to specified type)rh���r���r}���r%���r���r���r ���rk�����s���� zMessage._explain_to)N)r����r����r����r!���ri��rk��r���r���r���r ���r������s��� c�������������������@���sx���e�Zd�ZdddgZddd�Zdd��Zd d ��Zdd��Zd d��Zdd��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��ZdS�)r ����_subdir�_info�_dateNc�����������������C���s&���d|�_�d|�_t���|�_t�|�|��d�S�)Nr����r����)rp��rq��r����rr��r���r!���r%���r���r���r ���r!������s���� zMaildirMessage.__init__c�����������������C���s���|�j�S�r���)rp��r=���r���r���r ���r�������s����zMaildirMessage.get_subdirc�����������������C���s(���|dks|dkr||�_�ntd|���d�S�)Nr����r����z!subdir must be 'new' or 'cur': %s)rp��rY���)r���r����r���r���r ���r������s����zMaildirMessage.set_subdirc�����������������C���s"���|�j��d�r|�j�dd���S�dS�d�S�)N�2,r����r����)rq��r|���r=���r���r���r ���� get_flags ��s����zMaildirMessage.get_flagsc�����������������C���s���dd��t|���|�_d�S�)Nrs��r����)r����r����rq��)r����flagsr���r���r ���� set_flags��s����zMaildirMessage.set_flagsc�����������������C���s$���|���d�t|�����t|�B����d�S��Nr�����rv��r����rA��rt���r����flagr���r���r ����add_flag��s����zMaildirMessage.add_flagc�����������������C���s,���|�����r(|��d�t|������t|�����d�S�rw��)rt��rv��r����rA��ry��r���r���r ����remove_flag��s����zMaildirMessage.remove_flagc�����������������C���s���|�j�S�r���)rr��r=���r���r���r ���r������s����zMaildirMessage.get_datec�����������������C���s6���zt�|�|�_W�n"�tk r0���td|��d��Y�nX�d�S�)Nzcan't convert to float: %s)�floatrr��rY���r}���)r����dater���r���r ���r����"��s����zMaildirMessage.set_datec�����������������C���s���|�j�S�r���)rq��r=���r���r���r ���r����)��s����zMaildirMessage.get_infoc�����������������C���s&���t�|t�r||�_ntdt|����d�S�)Nzinfo must be a string: %s)rh���rt���rq��r}���r~���)r����infor���r���r ���r����-��s���� zMaildirMessage.set_infoc�����������������C���s���t�|t�r8|�|������|�|������|�|�������nht�|t�r�t |�����}d|kr`|� d��|����dkrv|� d��d|kr�|� d��d|kr�|� d��d|kr�|� d��|�d t� |�������n�t�|t��rt |�����}d|kr�|�d ��d|k�r|�d��d|k�r�|�d��n�t�|t��r�t |�����}d|k�rD|�d ��d|k�rX|�d ��d|k�rl|�d��d|k�r�|�d��nt�|t��r�ntdt|����d�S�)N�S�Rr�����O�T�D�F�A� MAILER-DAEMONrO���replied�flaggedrP��rQ���PrR���$Cannot convert to specified type: %s)rh���r ���rv��rt��r����r����r����r����r��rA��r{��r��r����r��r���r0��r���� add_labelr���r}���r~���)r���r&���ru��r���r���r ���rk��4��sP���� �zMaildirMessage._explain_to)N)r����r����r����rm��r!���r����r����rt��rv��r{��r|��r����r����r����r����rk��r���r���r���r ���r ������s��� c�������������������@���sV���e�Zd�ZdgZddd�Zdd��Zddd�Zd d ��Zdd��Zd d��Z dd��Z dd��ZdS�)r���_fromNc�����������������C���sV���|���dd��t|tjj�rF|���}|d�k rF|�d�rF|���|dd�����t�|�|��d�S�)Nr���TzFrom rf���)r��rh���r9���r&���r���r��r|���r!���)r���r&���r��r���r���r ���r!���e��s����z_mboxMMDFMessage.__init__c�����������������C���s���|�j�S�r���)r���r=���r���r���r ���r��n��s����z_mboxMMDFMessage.get_fromc�����������������C���s4���|d�k r*|dkrt����}|dt��|��7�}||�_d�S�)NT� )r����r��r��r���)r���r��Ztime_r���r���r ���r��r��s ����z_mboxMMDFMessage.set_fromc�����������������C���s���|���dd�|���dd��S�)N�Statusr�����X-Status)r2���r=���r���r���r ���rt��z��s����z_mboxMMDFMessage.get_flagsc�����������������C���s����t�|�}d\}}dD�]}||kr||7�}|�|��qdD�]}||kr8||7�}|�|��q8|d�t|��7�}z|��d|��W�n �tk r����|��d|��Y�nX�z|��d|��W�n �tk r����|��d|��Y�nX�d�S�)N)r����r����)r���r���)r���r���r���r����r���r���)rA��r*���r����r�����replace_headerr,���Z add_header)r���ru��Zstatus_flagsZ xstatus_flagsrz��r���r���r ���rv��~��s&����z_mboxMMDFMessage.set_flagsc�����������������C���s$���|���d�t|�����t|�B����d�S�rw��rx��ry��r���r���r ���r{�����s����z_mboxMMDFMessage.add_flagc�����������������C���s4���d|�ksd|�kr0|���d�t|�����t|�����d�S�)Nr���r���r����rx��ry��r���r���r ���r|�����s����z_mboxMMDFMessage.remove_flagc�������������� ���C���s���t�|t�r�t|�����}d|kr(|�d��d|kr:|�d��d|krL|�d��d|kr^|�d��d|krp|�d��|d =�|d =�d�|�������dd����}z|� t �t� |d ����W�n�ttfk r����Y�nX��n t�|t�r�|�|������|�|������n�t�|t��rZt|�����}d|k�r$|�d��d|k�r8|�d��d|k�rL|�d��|d =�|d =�n�t�|t��r�t|�����}d|k�r�|�d��d|k�r�|�d��d|k�r�|�d��|d =�|d =�nt�|t��r�ntdt|����d�S�)Nr���r����r���r���r���r���r���r���Zstatuszx-statusr������z%a %b %d %H:%M:%S %YrO��r���r���rP��rQ��r���)rh���r ���rA��rt��r����r{��r����r��r����r�����calendarZtimegmr�����strptimerY���� OverflowErrorr��rv��r��r���r0��r���r���r���r}���r~���)r���r&���ru��Z maybe_dater���r���r ���rk�����sb���� � �z_mboxMMDFMessage._explain_to)N)N)r����r����r����rm��r!���r��r��rt��rv��r{��r|��rk��r���r���r���r ���r��`��s��� r��c�������������������@���s���e�Zd�ZdS�)r ���N�r����r����r����r���r���r���r ���r ������s���c�������������������@���sD���e�Zd�ZdgZddd�Zdd��Zdd��Zd d ��Zdd��Zd d��Z dS�)r���� _sequencesNc�����������������C���s���g�|�_�t�|�|��d�S�r���)r���r���r!���r%���r���r���r ���r!������s����zMHMessage.__init__c�����������������C���s���|�j�d�d���S�r���)r���r=���r���r���r ���r/�����s����zMHMessage.get_sequencesc�����������������C���s���t�|�|�_d�S�r���)r?���r���)r���rG��r���r���r ���rI�����s����zMHMessage.set_sequencesc�����������������C���s6���t�|t�r"||�jkr2|�j�|��ntdt|����d�S�)Nzsequence type must be str: %s)rh���rt���r���r����r}���r~����r���rN��r���r���r ���r0�����s���� zMHMessage.add_sequencec�����������������C���s*���z|�j��|��W�n�tk r$���Y�nX�d�S�r���)r���r*���rY���r���r���r���r ����remove_sequence���s����zMHMessage.remove_sequencec�����������������C���sF��t�|t�rdt|�����}d|kr*|�d��n|�d��|�d��d|krP|�d��d|krb|�d��n�t�|t�r�t|�����}d|kr�|�d��n |�d ��d|kr�|�d��d|kr�|�d ��n�t�|t�r�|����D�]}|�|��q�n`t�|t ��r$t|�����}d|k�r|� d��d|k�rB|� d��nt�|t��r2ntdt |����d�S�) NrO��r����r���r���r���r���r����ROr���r���rQ��r���)rh���r ���rA��r/��r����r{��r��r���r0��r���r���r���r}���r~���)r���r&���rG��rN��r���r���r ���rk�����sB���� �zMHMessage._explain_to)N) r����r����r����rm��r!���r/��rI��r0��r���rk��r���r���r���r ���r������s��� c�������������������@���s^���e�Zd�ZddgZddd�Zdd��Zdd ��Zd d��Zdd ��Zdd��Z dd��Z dd��Zdd��ZdS�)r���rT���_visibleNc�����������������C���s���g�|�_�t��|�_t�|�|��d�S�r���)rT��r���r���r!���r%���r���r���r ���r!���"��s����zBabylMessage.__init__c�����������������C���s���|�j�d�d���S�r���)rT��r=���r���r���r ���rU��(��s����zBabylMessage.get_labelsc�����������������C���s���t�|�|�_d�S�r���)r?���rT��)r���r^��r���r���r ���rY��,��s����zBabylMessage.set_labelsc�����������������C���s6���t�|t�r"||�jkr2|�j�|��ntdt|����d�S�)Nzlabel must be a string: %s)rh���rt���rT��r����r}���r~����r���ra��r���r���r ���r���0��s���� zBabylMessage.add_labelc�����������������C���s*���z|�j��|��W�n�tk r$���Y�nX�d�S�r���)rT��r*���rY���r���r���r���r ����remove_label8��s����zBabylMessage.remove_labelc�����������������C���s ���t�|�j�S�r����r���r���r=���r���r���r ���rg��?��s����zBabylMessage.get_visiblec�����������������C���s���t�|�|�_d�S�r���r���)r���Zvisibler���r���r ���rX��C��s����zBabylMessage.set_visiblec�����������������C���sb���|�j����D�](}||�kr*|�j��||�|���q |�j�|=�q dD�]$}||�kr8||�j�kr8|�|�|�j�|<�q8d�S�)N)ZDateZFromzReply-ToZToZCCZSubject)r���r@���r���)r����headerr���r���r ����update_visibleG��s���� zBabylMessage.update_visiblec�����������������C���sr��t�|t�r~t|�����}d|kr*|�d��n|�d��|�d��d|ksNd|krX|�d��d|krj|�d��d |kr||�d ��n�t�|t�r�t|�����}d|kr�|�d��n |�d��d |kr�|�d ��d|kr�|�d��n�t�|t��rt|�����}d|k�r|�d��d|k�rn|�d��nTt�|t ��rP|� |������|����D�]}|�|���q<nt�|t ��r^ntdt|����d�S�)NrO��r����r���rR��rS��r���rQ��r���rP��r���r���r���r���r���r���r���)rh���r ���rA��rU��r����r{��r��r���r0��r���rX��rg��r���r���r}���r~���)r���r&���r^��ra��r���r���r ���rk��R��sH���� �zBabylMessage._explain_to)N) r����r����r����rm��r!���rU��rY��r���r���rg��rX��r���rk��r���r���r���r ���r�����s��� c�������������������@���s���e�Zd�ZdS�)r ���Nr���r���r���r���r ���r ���|��s���c�������������������@���s����e�Zd�Zd%dd�Zd&dd�Zd'dd�Zd(dd �Zd)d d�Zdd ��Zdd��Z d*dd�Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zdd ��Zd!d"��Zed#d$���ZdS�)+r����Nc�����������������C���s$���||�_�|d�kr|���|�_n||�_d�S�r���)r����r�����_pos)r���r�����posr���r���r ���r!������s����z_ProxyFile.__init__c�����������������C���s���|���||�jj�S�r���)�_readr����r^����r����sizer���r���r ���r^������s����z_ProxyFile.readc�����������������C���s���|���||�jj�S�r���)r���r�����read1r���r���r���r ���r������s����z_ProxyFile.read1c�����������������C���s���|���||�jj�S�r���)r���r����r{���r���r���r���r ���r{������s����z_ProxyFile.readlinec�����������������C���s<���g�}|�D�].}|��|��|d�k r|t|�8�}|dkr�q8q|S�)Nr���)r����r����)r����sizehintrL���r����r���r���r ���� readlines���s���� z_ProxyFile.readlinesc�����������������c���s���|�����}|sd�S�|V��q�d�S�r���)r{���)r���r����r���r���r ���rE������s����z_ProxyFile.__iter__c�����������������C���s���|�j�S�r���)r���r=���r���r���r ���r�������s����z_ProxyFile.tellr���c�����������������C���s4���|dkr|�j��|�j��|�j��||��|�j����|�_d�S�)Nr�����r����rn���r���r�����r����offset�whencer���r���r ���rn������s����z_ProxyFile.seekc�����������������C���s0���t�|�d�r,zt�|�jd�r"|�j����W�5�|�`X�d�S�)Nr����rV���)rO���r����rV���r=���r���r���r ���rV������s ���� z_ProxyFile.closec�����������������C���s2���|d�krd}|�j��|�j��||�}|�j����|�_|S�)Nrd���r���)r���r����read_methodrL���r���r���r ���r������s����z_ProxyFile._readc�����������������C���s���|�S�r���r���r=���r���r���r ���� __enter__���s����z_ProxyFile.__enter__c�����������������G���s���|������d�S�r���)rV���)r����excr���r���r ����__exit__���s����z_ProxyFile.__exit__c�����������������C���s ���|�j����S�r���)r�����readabler=���r���r���r ���r������s����z_ProxyFile.readablec�����������������C���s ���|�j����S�r���)r�����writabler=���r���r���r ���r������s����z_ProxyFile.writablec�����������������C���s ���|�j����S�r���)r�����seekabler=���r���r���r ���r������s����z_ProxyFile.seekablec�����������������C���s ���|�j����S�r���)r����rS���r=���r���r���r ���rS������s����z_ProxyFile.flushc�����������������C���s&���t�|�d�sdS�t�|�jd�sdS�|�jjS�)Nr����Tr,��F)rO���r����r,��r=���r���r���r ���r,�����s ���� z_ProxyFile.closed)N)N)N)N)N)r���)r����r����r����r!���r^���r���r{���r���rE���r����rn���rV���r���r���r���r���r���r���rS����propertyr,��r���r���r���r ���r�������s$��� r����c�������������������@���s8���e�Zd�Zd dd�Zdd��Zddd�Zd d ��Zdd��ZdS�)r��Nc�����������������C���s���t��|�||��||�_||�_d�S�r���)r����r!����_start�_stop)r���r����r��r��r���r���r ���r!������s����z_PartialFile.__init__c�����������������C���s���t��|��|�j�S�r���)r����r����r���r=���r���r���r ���r�������s����z_PartialFile.tellr���c�����������������C���s<���|dkr|�j�|�_d}n|dkr*|�j|�_d}t�|�||��d�S�)Nr���r����r����)r���r���r���r����rn���r���r���r���r ���rn������s����z_PartialFile.seekc�����������������C���sB���|�j�|�j�}|dkrdS�|d�ks0|dk�s0||kr4|}t�|�||�S�)Nr���r��)r���r���r����r���)r���r���r���Z remainingr���r���r ���r������s����z_PartialFile._readc�����������������C���s���t�|�d�r|�`d�S�)Nr����)rO���r����r=���r���r���r ���rV�����s���� z_PartialFile.close)NN)r���)r����r����r����r!���r����rn���r���rV���r���r���r���r ���r�����s ��� r��Tc�������������� ���C���s���d}�zbt�rpzt��|�t�jt�jB���W�nJ�tk rn�}�z,|jtjtjtjfkr\t d|�j ���n��W�5�d�}~X�Y�nX�|�rfzt|�j d��}|����W�nB�tk r��}�z$|jtjtjfkr�W�Y��W�d�S���W�5�d�}~X�Y�nX�z`zt �|j |�j d���d}W�n2�ttfk �r$���t �|j |�j d���d}Y�nX�t �|j ��W�n0�tk �rd���t �|j ��t d|�j ���Y�nX�W�n8���t��r�t��|�t�j��|�r�t �|�j d�����Y�nX�d�S�)NFzlockf: lock unavailable: %s�.lockTzdot lock unavailable: %s)�fcntl�lockfZLOCK_EXZLOCK_NBr����r����ZEAGAINr����r����r���r����r����rV���r���r����r����r����r����rJ��r����r*����LOCK_UN)r����r����Zdotlock_doner����Zpre_lockr���r���r ���r���� ��sL����� �r����c�����������������C���s8���t�rt��|�t�j��tj�|�jd��r4t�|�jd���d�S�)Nr���)r���r���r���r���r���r����r����r*����r����r���r���r ���r����4��s����r����c�������������� ���C���s<���t��|�t�jt�jB�t�jB�d�}zt|�d�W��S�t��|��X�d�S�)Nr����r����)r���r����r����r)���O_RDWRrV���)r����fdr���r���r ���r����;��s����r����c�����������������C���s$���t�d|�tt����t���t���f��S�)Nz%s.%s.%s.%s)r����r����r����r����r����r���r����)r���r���r���r ���r����C��s�����r����c�����������������C���s$���|������ttd�r t�|������d�S�)N�fsync)rS���rO���r���r����filenor���r���r���r ���r����I��s���� r����c�����������������C���s���t�|���|�����d�S�r���)r����rV���r���r���r���r ���r����O��s����r����c�������������������@���s���e�Zd�ZdS�)r���Nr���r���r���r���r ���r���U��s���c�������������������@���s���e�Zd�ZdS�)r���Nr���r���r���r���r ���r���X��s���c�������������������@���s���e�Zd�ZdS�)r���Nr���r���r���r���r ���r���[��s���c�������������������@���s���e�Zd�ZdS�)r���Nr���r���r���r���r ���r���^��s���c�������������������@���s���e�Zd�ZdS�)r���Nr���r���r���r���r ���r���a��s���)T)/r���r����r���r����r����rj��rw���r9���Z email.messageZemail.generatorri���r4���r����ImportError�__all__rp���rW���r���r���r����r��r���r���r���r���r&���r���r ���r��r ���r���r���r ���r����r��r����r����r����r����r����r����� Exceptionr���r���r���r���r���r���r���r���r ����<module> ���s���� ����������h��8�DB4-��3�z%mqH_c' *