f4c@sTdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z y(ejdkrenddlZWnek reZYnXdddddd d d d d ddg ZejjdZGdddZGdddeZGdddeZGdddeZGdddeZGdd d eZGdddeZGdddeZGdd d e jjZGdd d eZGdddeZ Gdd d e Z!Gd d d eZ"Gd!ddeZ#Gd"dde Z$Gd#d$d$Z%Gd%d&d&e%Z&e'd'd(Z(d)d*Z)d+d,Z*d-d.Z+d/d0Z,d1d2Z-Gd3d4d4e.Z/Gd5d6d6e/Z0Gd7d8d8e/Z1Gd9d:d:e/Z2Gd;d<d<e/Z3dS(=uDRead/write support for Maildir, mbox, MH, Babyl, and MMDF mailboxes.iNuos2emxuMailboxuMaildirumboxuMHuBabyluMMDFuMessageuMaildirMessageu mboxMessageu MHMessageu BabylMessageu MMDFMessageuasciicBs|EeZdZdZd@dAddZddZddZdd Z d d Z d d Z d@ddZ ddZ ddZddZddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd@d.d/Zd0d1Zd@d2d3Zd4d5Zd6d7Z d8d9Z!d:d;Z"d<d=Z#dBZ%dBd>d?Z&d@S(CuMailboxu*A group of messages in a particular place.cCs.tjjtjj||_||_dS(uInitialize a Mailbox instance.N(uosupathuabspathu expanduseru_pathu_factory(uselfupathufactoryucreate((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu__init__'s!uMailbox.__init__cCstddS(u$Add message and return assigned key.u&Method must be implemented by subclassN(uNotImplementedError(uselfumessage((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuadd,su Mailbox.addcCstddS(u=Remove the keyed message; raise KeyError if it doesn't exist.u&Method must be implemented by subclassN(uNotImplementedError(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuremove0suMailbox.removecCs|j|dS(N(uremove(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu __delitem__4suMailbox.__delitem__c Cs*y|j|Wntk r%YnXdS(u'If the keyed message exists, remove it.N(uremoveuKeyError(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyudiscard7s uMailbox.discardcCstddS(u>Replace the keyed message; raise KeyError if it doesn't exist.u&Method must be implemented by subclassN(uNotImplementedError(uselfukeyumessage((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu __setitem__>suMailbox.__setitem__c Cs.y|j|SWntk r)|SYnXdS(u9Return the keyed message, or default if it doesn't exist.N(u __getitem__uKeyError(uselfukeyudefault((u,/opt/alt/python33/lib64/python3.3/mailbox.pyugetBs u Mailbox.getc CsH|js|j|Stj|j|}|j|SWdQXdS(u=Return the keyed message; raise KeyError if it doesn't exist.N(u_factoryu get_messageu contextlibuclosinguget_file(uselfukeyufile((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu __getitem__Is  uMailbox.__getitem__cCstddS(u4Return a Message representation or raise a KeyError.u&Method must be implemented by subclassN(uNotImplementedError(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_messageQsuMailbox.get_messagecCstj|j|jS(uReturn a string representation or raise a KeyError. Uses email.message.Message to create a 7bit clean string representation of the message.(uemailumessage_from_bytesu get_bytesu as_string(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_stringUsuMailbox.get_stringcCstddS(u8Return a byte string representation or raise a KeyError.u&Method must be implemented by subclassN(uNotImplementedError(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_bytes\suMailbox.get_bytescCstddS(u6Return a file-like representation or raise a KeyError.u&Method must be implemented by subclassN(uNotImplementedError(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuget_file`suMailbox.get_filecCstddS(uReturn an iterator over keys.u&Method must be implemented by subclassN(uNotImplementedError(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuiterkeysdsuMailbox.iterkeyscCst|jS(uReturn a list of keys.(ulistuiterkeys(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyukeyshsu Mailbox.keysc csFx?|jD]1}y||}Wntk r8w YnX|Vq WdS(u%Return an iterator over all messages.N(ukeysuKeyError(uselfukeyuvalue((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu itervaluesls  uMailbox.itervaluescCs |jS(N(u itervalues(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu__iter__usuMailbox.__iter__cCst|jS(u,Return a list of messages. Memory intensive.(ulistu itervalues(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuvaluesxsuMailbox.valuesc csLxE|jD]7}y||}Wntk r8w YnX||fVq WdS(u.Return an iterator over (key, message) tuples.N(ukeysuKeyError(uselfukeyuvalue((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu iteritems|s  uMailbox.iteritemscCst|jS(u9Return a list of (key, message) tuples. Memory intensive.(ulistu iteritems(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuitemssu Mailbox.itemscCstddS(u9Return True if the keyed message exists, False otherwise.u&Method must be implemented by subclassN(uNotImplementedError(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu __contains__suMailbox.__contains__cCstddS(u*Return a count of messages in the mailbox.u&Method must be implemented by subclassN(uNotImplementedError(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu__len__suMailbox.__len__cCs(x!|jD]}|j|q WdS(uDelete all messages.N(ukeysudiscard(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuclearsu Mailbox.clearc Cs8y||}Wntk r&|SYnX|j||S(u3Delete the keyed message and return it, or default.(uKeyErrorudiscard(uselfukeyudefaulturesult((u,/opt/alt/python33/lib64/python3.3/mailbox.pyupops    u Mailbox.popcCs7x0|jD]}||j|fSWtddS(u6Delete an arbitrary (key, message) pair and return it.uNo messages in mailboxN(ukeysupopuKeyError(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyupopitemsuMailbox.popitemc Cst|dr|j}n$t|dr<|j}n|}d}x=|D]5\}}y|||From ureadubufferuDUse of text mode files is deprecated, use a binary mode file insteads Nis isFrom s>From iuInvalid message type: %sii(u isinstanceuemailumessageuMessageuiouBytesIOu generatoruBytesGeneratoruflattenuseekureadureplaceulinesepuwriteu_append_newlineuendswithustrubytesuStringIOuwarningsuwarnuDeprecationWarningugetvalueu_string_to_bytesuhasattrubufferuNoneureadlineu startswithu TypeErrorutype( uselfumessageutargetu mangle_from_ubufferugenudataulastlineuline((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu _dump_messagesZ              uMailbox._dump_messageNTF('u__name__u __module__u __qualname__u__doc__uNoneuTrueu__init__uadduremoveu __delitem__udiscardu __setitem__ugetu __getitem__u get_messageu get_stringu get_bytesuget_fileuiterkeysukeysu itervaluesu__iter__uvaluesu iteritemsuitemsu __contains__u__len__uclearupopupopitemuupdateuflushulockuunlockucloseu_string_to_bytesuFalseu_append_newlineu _dump_message(u __locals__((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuMailbox$sB                        cBsL|EeZdZdZdZd4d5ddZddZddZ d d Z d d Z d dZ ddZ ddZddZddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+Zd,d-Zd.d/Zd0d1Zd2d3Zd4S(6uMaildiruA qmail-style Maildir mailbox.u:cCs tj||||itjj|jdd6tjj|jdd6tjj|jdd6|_tjj|js|rtj|jdx9|jj D]}tj|dqWqt |jni|_ idd6dd6|_ d|_ d|_dS(uInitialize a Maildir instance.utmpunewucuriig?N(uMailboxu__init__uosupathujoinu_pathu_pathsuexistsumkdiruvaluesuNoSuchMailboxErroru_tocu _toc_mtimesu _last_readu _skewfactor(uselfudirnameufactoryucreateupath((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu__init__s  uMaildir.__init__cCs|j}y|j||Wn/tk rQ|jtj|jYnXt|t|t r|j }|j |j }||j krd}qn d}d}tj j|jj|j d}tj j|j|||}t|t r5tj|jtj j|j|jfnyLttdrmtj|j|tj|jntj|j|Wn]tk r}z=tj|j|jtjkrtd|nWYdd}~XnX|S(u$Add message and return assigned key.uunewiulinku$Name clash with existing message: %sN(u _create_tmpu _dump_messageu BaseExceptionucloseuosuremoveunameu _sync_closeu isinstanceuMaildirMessageu get_subdirucolonuget_infoupathubasenameusplitujoinu_pathuutimeugetatimeuget_dateuhasattrulinkurenameuOSErroruerrnouEEXISTuExternalClashError(uselfumessageutmp_fileusubdirusuffixuuniqudestue((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuadd$s@      % % u Maildir.addcCs,tjtjj|j|j|dS(u=Remove the keyed message; raise KeyError if it doesn't exist.N(uosuremoveupathujoinu_pathu_lookup(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuremoveMsuMaildir.removecCsfy|j|WnNtk r%Yn=tk ra}z|jtjkrOnWYdd}~XnXdS(u'If the keyed message exists, remove it.N(uremoveuKeyErroruOSErroruerrnouENOENT(uselfukeyue((u,/opt/alt/python33/lib64/python3.3/mailbox.pyudiscardQs uMaildir.discardc Cs$|j|}|j|}|j|}t|trE|}n|}tjj|}|j|kr|j|j|jd}nd}|j |tjj |j |} tjj |j |||} t|trtj | tjj | |jfntj| | dS(u>Replace the keyed message; raise KeyError if it doesn't exist.iuNi(u_lookupuaddu isinstanceuMaildirMessageuosupathudirnameucolonusplitudiscardujoinu_pathuutimeugetatimeuget_dateurename( uselfukeyumessageu old_subpathutemp_keyu temp_subpathudominant_subpathusubdirusuffixutmp_pathunew_path((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu __setitem__\s"    "uMaildir.__setitem__c Cs|j|}ttjj|j|d}z+|jrN|j|}n t|}Wd|jXtjj |\}}|j ||j |kr|j |j |j dn|j tjjtjj|j||S(u4Return a Message representation or raise a KeyError.urbNii(u_lookupuopenuosupathujoinu_pathu_factoryuMaildirMessageucloseusplitu set_subdirucolonuset_infouset_dateugetmtime(uselfukeyusubpathufumsgusubdiruname((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_messagews!    +uMaildir.get_messagec CsVttjj|j|j|d}z|jjtdSWd|j XdS(u2Return a bytes representation or raise a KeyError.urbs N( uopenuosupathujoinu_pathu_lookupureadureplaceulinesepuclose(uselfukeyuf((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_bytess*uMaildir.get_bytescCs4ttjj|j|j|d}t|S(u6Return a file-like representation or raise a KeyError.urb(uopenuosupathujoinu_pathu_lookupu _ProxyFile(uselfukeyuf((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuget_files*uMaildir.get_filec csP|jx?|jD]4}y|j|Wntk rBwYnX|VqWdS(uReturn an iterator over keys.N(u_refreshu_tocu_lookupuKeyError(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuiterkeyss  uMaildir.iterkeyscCs|j||jkS(u9Return True if the keyed message exists, False otherwise.(u_refreshu_toc(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu __contains__s uMaildir.__contains__cCs|jt|jS(u*Return a count of messages in the mailbox.(u_refreshulenu_toc(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu__len__s uMaildir.__len__cCsdS(u"Write any pending changes to disk.N((uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuflushsu Maildir.flushcCsdS(uLock the mailbox.N((uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyulocksu Maildir.lockcCsdS(u#Unlock the mailbox if it is locked.N((uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuunlocksuMaildir.unlockcCsdS(uFlush and close the mailbox.N((uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuclosesu Maildir.closecCsg}xztj|jD]f}t|dkr|ddkrtjjtjj|j|r|j|ddqqW|S(uReturn a list of folder names.iiu.N(uosulistdiru_pathulenupathuisdirujoinuappend(uselfuresultuentry((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu list_folderss "$uMaildir.list_folderscCs/ttjj|jd|d|jddS(u/Return a Maildir instance for the named folder.u.ufactoryucreateF(uMaildiruosupathujoinu_pathu_factoryuFalse(uselfufolder((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_folders uMaildir.get_foldercCstjj|jd|}t|d|j}tjj|d}tjj|stjtj|tj tj Bdn|S(u>Create a folder and return a Maildir instance representing it.u.ufactoryu maildirfolderi( uosupathujoinu_pathuMaildiru_factoryuexistsucloseuopenuO_CREATuO_WRONLY(uselfufolderupathuresultumaildirfolder_path((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu add_folders uMaildir.add_foldercCstjj|jd|}xwtjtjj|dtjtjj|dD];}t|dks|ddkrWtd|qWqWWxutj|D]d}|dkr|dkr|dkrtjjtjj||rtd||fqqWxtj|d d D]i\}}}x*|D]"}tj tjj||q:Wx*|D]"}tj tjj||qgWq$Wtj |d S( u-Delete the named folder, which must be empty.u.unewucuriiuFolder contains message(s): %sutmpu%Folder contains subdirectory '%s': %sutopdownNF( uosupathujoinu_pathulistdirulenu NotEmptyErroruisdiruwalkuFalseuremoveurmdir(uselfufolderupathuentryurootudirsufiles((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu remove_folders #"$!%   $uMaildir.remove_foldercCstj}xptjtjj|jdD]M}tjj|jd|}|tjj|dkr.tj|q.q.WdS(uDelete old files in "tmp".utmpi@N(utimeuosulistdirupathujoinu_pathugetatimeuremove(uselfunowuentryupath((u,/opt/alt/python33/lib64/python3.3/mailbox.pyucleans  (u Maildir.cleanicCsmtj}tj}d|kr9|jdd}nd|krZ|jdd}ndt|t|ddtjtj|f}tj j |j d|}ytj |Wnt k rX}zz|jtjkrCtjd7_yt|SWqFt k r?}z|jtjkr-nWYd d }~XqFXnWYd d }~XnXtd |d S( u=Create a file in the tmp subdirectory and open and return it.u/u\057u:u\072u%s.M%sP%sQ%s.%sig.AutmpNu&Name clash prevented file creation: %s(utimeusocketu gethostnameureplaceuintuosugetpiduMaildiru_countupathujoinu_pathustatuOSErroruerrnouENOENTu_create_carefullyuEEXISTuExternalClashError(uselfunowuhostnameuuniqupathue((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu _create_tmps,    &uMaildir._create_tmpcCs?tj|jd|jkrd}xS|jD]H}tjj|j|}||j|krkd}n||j|Replace the keyed message; raise KeyError if it doesn't exist.NT(u_lookupu_append_messageu_tocuTrueu_pending(uselfukeyumessage((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu __setitem__ws u_singlefileMailbox.__setitem__ccs-|jx|jjD] }|VqWdS(uReturn an iterator over keys.N(u_lookupu_tocukeys(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuiterkeys}s u_singlefileMailbox.iterkeyscCs|j||jkS(u9Return True if the keyed message exists, False otherwise.(u_lookupu_toc(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu __contains__s u_singlefileMailbox.__contains__cCs|jt|jS(u*Return a count of messages in the mailbox.(u_lookupulenu_toc(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu__len__s u_singlefileMailbox.__len__cCs&|js"t|jd|_ndS(uLock the mailbox.NT(u_lockedu _lock_fileu_fileuTrue(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyulocks  u_singlefileMailbox.lockcCs&|jr"t|jd|_ndS(u#Unlock the mailbox if it is locked.NF(u_lockedu _unlock_fileu_fileuFalse(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuunlocks  u_singlefileMailbox.unlockc Cs|js/|jr+t|jd |_ndS|jdk sDt|jjdd|jj }||j krt d|j |fnt |j }yi}|j|xt|jjD]}|j|\}}|jj||j||j }xB|jjtd||jj }|sCPn|j|q||j f||<|j|qW|j |_ Wn%|jtj|jYnXt||jjtj|j j} tj|j| ytj|j|j Wntk r} zd| j t j!ksStjdkr|| j t j"kr|tj|j tj|j|j nWYdd} ~ XnXt#|j d|_||_d |_d |_|j$rt%|jdd ndS( u"Write any pending changes to disk.Niiu4Size of mailbox file changed (expected %i, found %i)iuos2urb+udotlockF(&u_pendingu _pending_syncu _sync_flushu_fileuFalseu_tocuNoneuAssertionErroruseekutellu _file_lengthuExternalClashErroru_create_temporaryu_pathu_pre_mailbox_hookusortedukeysu_pre_message_hookureaduminuwriteu_post_message_hookucloseuosuremoveunameu _sync_closeustatust_modeuchmodurenameuOSErroruerrnouEEXISTuEACCESuopenu_lockedu _lock_file( uselfucur_lenunew_fileunew_tocukeyustartustopu new_startubufferumodeue((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuflushsf          !    u_singlefileMailbox.flushcCsdS(u,Called before writing the mailbox to file f.N((uselfuf((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_pre_mailbox_hooksu$_singlefileMailbox._pre_mailbox_hookcCsdS(u-Called before writing each message to file f.N((uselfuf((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_pre_message_hooksu$_singlefileMailbox._pre_message_hookcCsdS(u,Called after writing each message to file f.N((uselfuf((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_post_message_hooksu%_singlefileMailbox._post_message_hookcCs1|j|jr |jn|jjdS(uFlush and close the mailbox.N(uflushu_lockeduunlocku_fileuclose(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyucloses   u_singlefileMailbox.closec Csc|jdkr|jn|dk r_y|j|SWq_tk r[td|Yq_XndS(u'Return (start, stop) or raise KeyError.uNo message with key: %sN(u_tocuNoneu _generate_tocuKeyError(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_lookups   u_singlefileMailbox._lookupc Cs|jjdd|jj}t|jdkrT|j rT|j|jny3|j|j|j|}|j |jWn%t k r|jj |YnX|jj |jj|_ |S(u;Append message to mailbox and return (start, stop) offsets.ii(u_fileuseekutellulenu_tocu_pendingu_pre_mailbox_hooku_pre_message_hooku_install_messageu_post_message_hooku BaseExceptionutruncateuflushu _file_length(uselfumessageubeforeuoffsets((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_append_messages  u"_singlefileMailbox._append_messageNT(u__name__u __module__u __qualname__u__doc__uNoneuTrueu__init__uadduremoveu __setitem__uiterkeysu __contains__u__len__ulockuunlockuflushu_pre_mailbox_hooku_pre_message_hooku_post_message_hookucloseu_lookupu_append_message(u __locals__((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_singlefileMailboxMs"        D     u_singlefileMailboxcBse|EeZdZdZd ZddZdddZdddZ ddd Z d d Z d S(u _mboxMMDFuAn mbox or MMDF mailbox.cCs|j|\}}|jj||jjjtd}|jj||jj}|j|jtd}|j |ddj d|S(u4Return a Message representation or raise a KeyError.ss iNuascii( u_lookupu_fileuseekureadlineureplaceulinesepureadutellu_message_factoryuset_fromudecode(uselfukeyustartustopu from_lineustringumsg((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_messages u_mboxMMDF.get_messagecCs"tj|j|jd|S(u3Return a string representation or raise a KeyError.uunixfrom(uemailumessage_from_bytesu get_bytesu as_string(uselfukeyufrom_((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_string su_mboxMMDF.get_stringcCsj|j|\}}|jj||s;|jjn|jj||jj}|jtdS(u3Return a string representation or raise a KeyError.s (u_lookupu_fileuseekureadlineureadutellureplaceulinesep(uselfukeyufrom_ustartustopustring((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_bytes%s u_mboxMMDF.get_bytescCsW|j|\}}|jj||s;|jjnt|j|jj|S(u6Return a file-like representation or raise a KeyError.(u_lookupu_fileuseekureadlineu _PartialFileutell(uselfukeyufrom_ustartustop((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuget_file.s u_mboxMMDF.get_filecCsd}t|tr'|j|}nt|tr|jdr|jd}|dkr|d|}||dd}q |}d}nst|tr|jj d}d|}nBt|t j j r |j }|dk r |j d}q n|dkr7dtjtjj }n|jj}|jj|t|j||j|j|jj}||fS( u1Format a message and blindly write to self._file.sFrom s iNsuasciisFrom MAILER-DAEMON i(uNoneu isinstanceustru_string_to_bytesubytesu startswithufindu_mboxMMDFMessageuget_fromuencodeuemailumessageuMessageu get_unixfromutimeuasctimeugmtimeu_fileutelluwriteulinesepu _dump_messageu _mangle_from_(uselfumessageu from_lineunewlineuauthorustartustop((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_install_message6s0      "u_mboxMMDF._install_messageNTF( u__name__u __module__u __qualname__u__doc__uTrueu _mangle_from_u get_messageuFalseu get_stringu get_bytesuget_fileu_install_message(u __locals__((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu _mboxMMDFs  u _mboxMMDFcBsP|EeZdZdZd Zd Zdd ddZddZ ddZ dS( umboxuA classic mbox mailbox.cCs#t|_tj||||dS(uInitialize an mbox mailbox.N(u mboxMessageu_message_factoryu _mboxMMDFu__init__(uselfupathufactoryucreate((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu__init__\s u mbox.__init__cCs|jtdS(u,Called after writing each message to file f.N(uwriteulinesep(uselfuf((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_post_message_hookasumbox._post_message_hookcCsLgg}}d}|jjdx|jj}|jj}|jdrt|t|kr|r|j|ttq|j|n|j|d}q&|s|r|j|ttn |j|Pq&|tkrd}q&d}q&t t t |||_ t|j |_|jj|_dS(u0Generate key-to-(start, stop) table of contents.isFrom NFT(uFalseu_fileuseekutellureadlineu startswithulenuappendulinesepuTrueudictu enumerateuzipu_tocu _next_keyu _file_length(uselfustartsustopsulast_was_emptyuline_posuline((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu _generate_toces0       umbox._generate_tocNT( u__name__u __module__u __qualname__u__doc__uTrueu _mangle_from_u_append_newlineuNoneu__init__u_post_message_hooku _generate_toc(u __locals__((u,/opt/alt/python33/lib64/python3.3/mailbox.pyumboxSs  cBsP|EeZdZdZd d ddZddZddZdd Z d S( uMMDFuAn MMDF mailbox.cCs#t|_tj||||dS(uInitialize an MMDF mailbox.N(u MMDFMessageu_message_factoryu _mboxMMDFu__init__(uselfupathufactoryucreate((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu__init__s u MMDF.__init__cCs|jdtdS(u-Called before writing each message to file f.sN(uwriteulinesep(uselfuf((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_pre_message_hooksuMMDF._pre_message_hookcCs|jtdtdS(u,Called after writing each message to file f.sN(uwriteulinesep(uselfuf((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_post_message_hooksuMMDF._post_message_hookcCs?gg}}|jjdd}x|}|jj}|jj}|jdtr|j|xv|}|jj}|jj}|dtkr|j|ttPqm|sm|j|Pqmqmq&|s&Pq&q&tt t |||_ t|j |_ |jjdd|jj|_ dS(u0Generate key-to-(start, stop) table of contents.isiN(u_fileuseekureadlineutellu startswithulinesepuappendulenudictu enumerateuzipu_tocu _next_keyu _file_length(uselfustartsustopsunext_posuline_posuline((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu _generate_tocs2    uMMDF._generate_tocNT( u__name__u __module__u __qualname__u__doc__uNoneuTrueu__init__u_pre_message_hooku_post_message_hooku _generate_toc(u __locals__((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuMMDFs   cBs(|EeZdZdZd.d/ddZddZddZdd Z d d Z d d Z ddZ ddZ ddZddZddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.S(0uMHuAn MH mailbox.cCstj||||tjj|js|rtj|jdtjtjtjj |jdtj tj Btj Bdqt |jnd|_dS(uInitialize an MH instance.iu .mh_sequencesiNF(uMailboxu__init__uosupathuexistsu_pathumkdirucloseuopenujoinuO_CREATuO_EXCLuO_WRONLYuNoSuchMailboxErroruFalseu_locked(uselfupathufactoryucreate((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu__init__s!!u MH.__init__cCs;|j}t|dkr'd}nt|d}tjj|jt|}t|}d}z|j rt |nzy|j ||WnHt k r|j rt|nt|d}tj|YnXt|tr|j||nWd|j rt|nXWd|s6t|nX|S(u$Add message and return assigned key.iiNFT(ukeysulenumaxuosupathujoinu_pathustru_create_carefullyuFalseu_lockedu _lock_fileu _dump_messageu BaseExceptionu _unlock_fileu _sync_closeuTrueuremoveu isinstanceu MHMessageu_dump_sequences(uselfumessageukeysunew_keyunew_pathufuclosed((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuadds6           uMH.addcCstjj|jt|}yt|d}WnMtk r}z-|jtjkrkt d|nWYdd}~XnX|j tj |dS(u=Remove the keyed message; raise KeyError if it doesn't exist.urb+uNo message with key: %sN( uosupathujoinu_pathustruopenuIOErroruerrnouENOENTuKeyErrorucloseuremove(uselfukeyupathufue((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuremoves u MH.removecCs tjj|jt|}yt|d}WnMtk r}z-|jtjkrkt d|nWYdd}~XnXz|j rt |nzYtj tj|tj tjB|j||t|tr|j||nWd|j r t|nXWdt|XdS(u>Replace the keyed message; raise KeyError if it doesn't exist.urb+uNo message with key: %sN(uosupathujoinu_pathustruopenuIOErroruerrnouENOENTuKeyErroru_lockedu _lock_fileucloseuO_WRONLYuO_TRUNCu _dump_messageu isinstanceu MHMessageu_dump_sequencesu _unlock_fileu _sync_close(uselfukeyumessageupathufue((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu __setitem__s$  # uMH.__setitem__cCsCy^|jr6ttjj|jt|d}n'ttjj|jt|d}WnMtk r}z-|jtj krt d|nWYdd}~XnXzD|jrt |nzt |}Wd|jrt |nXWd|jXx<|jjD](\}}||kr|j|qqW|S(u4Return a Message representation or raise a KeyError.urb+urbuNo message with key: %sN(u_lockeduopenuosupathujoinu_pathustruIOErroruerrnouENOENTuKeyErroru _lock_fileu MHMessageu _unlock_fileucloseu get_sequencesuitemsu add_sequence(uselfukeyufueumsgunameukey_list((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_message s( *+     uMH.get_messagecCsy^|jr6ttjj|jt|d}n'ttjj|jt|d}WnMtk r}z-|jtj krt d|nWYdd}~XnXzN|jrt |nz|j j tdSWd|jrt|nXWd|jXdS(u2Return a bytes representation or raise a KeyError.urb+urbuNo message with key: %sNs (u_lockeduopenuosupathujoinu_pathustruIOErroruerrnouENOENTuKeyErroru _lock_fileureadureplaceulinesepu _unlock_fileuclose(uselfukeyufue((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_bytes&s  *+   u MH.get_bytescCsy+ttjj|jt|d}WnMtk rz}z-|jtjkret d|nWYdd}~XnXt |S(u6Return a file-like representation or raise a KeyError.urbuNo message with key: %sN( uopenuosupathujoinu_pathustruIOErroruerrnouENOENTuKeyErroru _ProxyFile(uselfukeyufue((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuget_file=s+u MH.get_filecCs)ttddtj|jDS(uReturn an iterator over keys.css'|]}|jrt|VqdS(N(uisdigituint(u.0uentry((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu JsuMH.iterkeys..(uiterusorteduosulistdiru_path(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuiterkeysHsu MH.iterkeyscCs(tjjtjj|jt|S(u9Return True if the keyed message exists, False otherwise.(uosupathuexistsujoinu_pathustr(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu __contains__MsuMH.__contains__cCstt|jS(u*Return a count of messages in the mailbox.(ulenulistukeys(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu__len__Qsu MH.__len__cCsJ|jsFttjj|jdd|_t|jd|_ndS(uLock the mailbox.u .mh_sequencesurb+NT( u_lockeduopenuosupathujoinu_pathu_fileu _lock_fileuTrue(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyulockUs $ uMH.lockcCs9|jr5t|jt|j|`d|_ndS(u#Unlock the mailbox if it is locked.NF(u_lockedu _unlock_fileu_fileu _sync_closeuFalse(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuunlock\s    u MH.unlockcCsdS(u&Write any pending changes to the disk.N((uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuflushdsuMH.flushcCs|jr|jndS(uFlush and close the mailbox.N(u_lockeduunlock(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuclosehs uMH.closecCs[g}xNtj|jD]:}tjjtjj|j|r|j|qqW|S(uReturn a list of folder names.(uosulistdiru_pathupathuisdirujoinuappend(uselfuresultuentry((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu list_foldersms $uMH.list_folderscCs+ttjj|j|d|jddS(u+Return an MH instance for the named folder.ufactoryucreateF(uMHuosupathujoinu_pathu_factoryuFalse(uselfufolder((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_folderusu MH.get_foldercCs%ttjj|j|d|jS(u:Create a folder and return an MH instance representing it.ufactory(uMHuosupathujoinu_pathu_factory(uselfufolder((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu add_folderzsu MH.add_foldercCstjj|j|}tj|}|dgkrUtjtjj|dn"|gkrdntd|jtj|dS(u-Delete the named folder, which must be empty.u .mh_sequencesuFolder not empty: %sN(uosupathujoinu_pathulistdiruremoveu NotEmptyErrorurmdir(uselfufolderupathuentries((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu remove_folders uMH.remove_folderc sbi}ttjj|jdddd/}t|jx|D] }y|jd\}}t}xr|jD]d}|jr|j t |q}dd|jdD\}} |j t || d q}Wfd d t |D||su#MH.get_sequences..u-ics"g|]}|kr|qS(((u.0ukey(uall_keys(u,/opt/alt/python33/lib64/python3.3/mailbox.pyu s u$MH.get_sequences..iu"Invalid sequence specification: %sN(uopenuosupathujoinu_pathusetukeysusplituisdigituadduintuupdateurangeusortedulenu ValueErroru FormatErrorurstrip( uselfuresultsufulineunameucontentsukeysuspecustartustop((uall_keysu,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_sequencess&*   "# uMH.get_sequencesc Cskttjj|jdddd}z2tjtj|jtjtjBx|j D]\}}t |dkrq]n|j |dd }d }xtt|D]r}|d|kr|sd}|j dqn7|r d }|j d ||fn|j d ||}qW|rG|j t|d q]|j d q]WWd t|Xd S(u:Set sequences using the given name-to-key-list dictionary.u .mh_sequencesur+uencodinguASCIIiu:iu-u%s %su %su NFT(uopenuosupathujoinu_pathucloseunameuO_WRONLYuO_TRUNCuitemsulenuwriteuNoneuFalseusortedusetuTrueustru _sync_close(uselfu sequencesufunameukeysuprevu completingukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu set_sequencess.'& uMH.set_sequencesc Cs|j}d}g}x|jD]}|d|kr|j||dfttdrtjtjj|jt |tjj|jt |dtj tjj|jt |qtj tjj|jt |tjj|jt |dn|d7}q%W|d|_ t |dkrEdSxS|jD]E\}}x6|D].\}}||kre|||j|Replace the keyed message; raise KeyError if it doesn't exist.N(u_singlefileMailboxu __setitem__u isinstanceu BabylMessageu get_labelsu_labels(uselfukeyumessage((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu __setitem__suBabyl.__setitem__c Cst|j|\}}|jj||jjtj}xF|jj}|dtksg| rkPn|j|jtdqAtj}xB|jj}|tks| rPn|j|jtdq||jj }|dkst |jj |}|jtd}t |j |} | j|j ||jkrp| j|j|n| S(u4Return a Message representation or raise a KeyError.s *** EOOH ***s i(u_lookupu_fileuseekureadlineuiouBytesIOulinesepuwriteureplaceutelluAssertionErrorureadu BabylMessageugetvalueu set_visibleu_labelsu set_labels( uselfukeyustartustopuoriginal_headersulineuvisible_headersunubodyumsg((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_messages0   uBabyl.get_messagec Cs|j|\}}|jj||jjtj}xF|jj}|dtksg| rkPn|j|jtdqAx)|jj}|tks| rPqq|j }||jj }|dkst |jj |}|jtd}||S(u3Return a string representation or raise a KeyError.s *** EOOH ***s i( u_lookupu_fileuseekureadlineuiouBytesIOulinesepuwriteureplaceugetvalueutelluAssertionErroruread( uselfukeyustartustopuoriginal_headersulineuheadersunudata((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_bytes"s&   uBabyl.get_bytescCs"tj|j|jdtS(u6Return a file-like representation or raise a KeyError.s (uiouBytesIOu get_bytesureplaceulinesep(uselfukey((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuget_file8suBabyl.get_filecCsT|jt}x$|jjD]}|j|q#W|j|jt|S(u4Return a list of user-defined labels in the mailbox.(u_lookupusetu_labelsuvaluesuupdateudifference_updateu_special_labelsulist(uselfulabelsu label_list((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_labels<s   uBabyl.get_labelscCsgg}}|jjdd}g}x'|}|jj}|jj}|dtkrt|t|kr|j|ttn|j|dd|jjddjdD}|j|q,|dks|dtkr/t|t|krP|j|ttqPq,|s,|j|ttPq,q,tt t |||_ tt ||_ t|j |_ |jjdd |jj|_dS( u0Generate key-to-(start, stop) table of contents.is cSs(g|]}|jr|jqS((ustrip(u.0ulabel((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu Ss u'Babyl._generate_toc..iNs,si(u_fileuseekureadlineutellulinesepulenuappendusplitudictu enumerateuzipu_tocu_labelsu _next_keyu _file_length(uselfustartsustopsunext_posu label_listsuline_posulineulabels((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu _generate_tocEs4   &uBabyl._generate_toccCsmdt}|dt7}|j}dd|D}|ddj|t7}|d7}|j|dS( u,Called before writing the mailbox to file f.sBABYL OPTIONS:s Version: 5css|]}|jVqdS(N(uencode(u.0ulabel((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu hsu*Babyl._pre_mailbox_hook..sLabels:s,sN(ulinesepu get_labelsujoinuwrite(uselfufubabylulabels((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_pre_mailbox_hookcs   uBabyl._pre_mailbox_hookcCs|jdtdS(u-Called before writing each message to file f.s N(uwriteulinesep(uselfuf((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_pre_message_hookmsuBabyl._pre_message_hookcCs|jtddS(u,Called after writing each message to file f.sN(uwriteulinesep(uselfuf((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_post_message_hookqsuBabyl._post_message_hookcCs |jj}t|trg}g}x@|jD]2}||jkr\|j|q7|j|q7W|jjdx(|D] }|jjd|jqW|jjdx,|D]$}|jjd|jdqW|jjt n|jjdt t|t j j rt j}t jj|dd}|j||jdxB|j}|jj|jdt |dks| rdPqdqd|jjd t t|trHt j} t jj| dd} | j|jx| j}|jj|jdt |dks>| rPqqnR|jdxB|j}|jj|jdt |dks| rXPqXqXxU|jd } | sPn|jj| jdt qnt|ttt jfr+t|t jr'tjd td |j}nt|trH|j|}n|j d d} | ddkr|jj|d| jdt |jjd t |jj|d| jdt |jj|| djdt q|jjd t t |jj|jdt nt!|drt!|drhtjdtd |j"}n|j} d}x|j}|j$dr|ddd}n&|j$dr|ddd}n|jj|jdt |dks| r}|r4d}|jjd t |j| q8Pq}q}x|j}|sTPn|j$drz|ddt }nL|j$dr|ddt }n&|j$dr|ddt }n|jj|q>nt%dt&||jj}||fS(u0Write message contents and return (start, stop).s1s, s,,s s,s1,,is s *** EOOH ***iu8Use of StringIO input is deprecated, use BytesIO insteadis iiNureadlineubufferuDUse of text mode files is deprecated, use a binary mode file insteads s uInvalid message type: %sFiTiiiii('u_fileutellu isinstanceu BabylMessageu get_labelsu_special_labelsuappenduwriteuencodeulinesepuemailumessageuMessageuiouBytesIOu generatoruBytesGeneratoruFalseuflattenuseekureadlineureplaceu get_visibleureadubytesustruStringIOuwarningsuwarnuDeprecationWarningugetvalueu_string_to_bytesufinduhasattrubufferuTrueuendswithu TypeErrorutype(uselfumessageustartuspecial_labelsulabelsulabelu orig_bufferuorig_generatorulineu vis_bufferu vis_generatorubufferu body_startu original_posu first_passustop((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_install_messageus  "         "  &&)      uBabyl._install_messageN(uunseenudeletedufileduansweredu forwardeduediteduresentT(u__name__u __module__u __qualname__u__doc__u frozensetu_special_labelsuNoneuTrueu__init__uadduremoveu __setitem__u get_messageu get_bytesuget_fileu get_labelsu _generate_tocu_pre_mailbox_hooku_pre_message_hooku_post_message_hooku_install_message(u __locals__((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuBabyls           cBsA|EeZdZdZdddZddZddZdS( uMessageu0Message with mailbox-format-specific properties.cCs,t|tjjrM|jtj|t|tr(|j|q(nt|tru|jtj |nt|t r|jtj |nt|t j r|jtj|n`t|dr|jtj|n8|dkrtjjj|ntdt|dS(uInitialize a Message instance.ureaduInvalid message type: %sN(u isinstanceuemailumessageuMessageu_become_messageucopyudeepcopyu _explain_toubytesumessage_from_bytesustrumessage_from_stringuiou TextIOWrapperumessage_from_fileuhasattrumessage_from_binary_fileuNoneu__init__u TypeErrorutype(uselfumessage((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu__init__s uMessage.__init__cCsMt|dg}x4|jD])}||kr|j||j|ntdt|dS(u;Copy Maildir-specific state to message insofar as possible.uSuRucuruOuTuDuFuAu MAILER-DAEMONuunseenureplieduflaggedudeleteduanswereduPu forwardedu$Cannot convert to specified type: %sN(u isinstanceuMaildirMessageu set_flagsu get_flagsu set_subdiru get_subdiruset_dateuget_dateu_mboxMMDFMessageusetuadd_flaguset_fromutimeugmtimeu MHMessageu add_sequenceu BabylMessageu add_labeluMessageu TypeErrorutype(uselfumessageuflags((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu _explain_toGsN    "       uMaildirMessage._explain_toN(u__name__u __module__u __qualname__u__doc__u_type_specific_attributesuNoneu__init__u get_subdiru set_subdiru get_flagsu set_flagsuadd_flagu remove_flaguget_dateuset_dateuget_infouset_infou _explain_to(u __locals__((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuMaildirMessages          cBs|EeZdZdZdgZdddZddZdddZd d Z d d Z d dZ ddZ ddZ dS(u_mboxMMDFMessageu/Message with mbox- or MMDF-specific properties.u_fromcCs}|jddt|tjjri|j}|dk ri|jdri|j|ddqintj ||dS(u'Initialize an mboxMMDFMessage instance.u MAILER-DAEMONuFrom iNT( uset_fromuTrueu isinstanceuemailumessageuMessageu get_unixfromuNoneu startswithu__init__(uselfumessageuunixfrom((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu__init__xs  u_mboxMMDFMessage.__init__cCs|jS(u Return contents of "From " line.(u_from(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuget_fromsu_mboxMMDFMessage.get_fromcCsN|dk rA|dkr'tj}n|dtj|7}n||_dS(u>Set "From " line, formatting and appending time_ if specified.u NT(uNoneuTrueutimeugmtimeuasctimeu_from(uselfufrom_utime_((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuset_froms   u_mboxMMDFMessage.set_fromcCs |jdd|jddS(u*Return as a string the flags that are set.uStatusuuX-Status(uget(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_flagssu_mboxMMDFMessage.get_flagscCst|}d \}}x4d D],}||kr||7}|j|qqWx4d D],}||krV||7}|j|qVqVW|djt|7}y|jd|Wn"tk r|jd|YnXy|jd|Wn"tk r|jd|YnXd S( u)Set the given flags and unset all others.uuRuOuDuFuAuStatusuX-StatusN(uu(uRuO(uDuFuA(useturemoveujoinusortedureplace_headeruKeyErroru add_header(uselfuflagsu status_flagsu xstatus_flagsuflag((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu set_flagss&          u_mboxMMDFMessage.set_flagscCs0|jdjt|jt|BdS(u.Set the given flag(s) without changing others.uN(u set_flagsujoinusetu get_flags(uselfuflag((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuadd_flagsu_mboxMMDFMessage.add_flagcCsKd|ksd|krG|jdjt|jt|ndS(u7Unset the given string flag(s) without changing others.uStatusuX-StatusuN(u set_flagsujoinusetu get_flags(uselfuflag((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu remove_flagsu_mboxMMDFMessage.remove_flagc Cst|tr$t|j}d|kr=|jdnd|krY|jdnd|kru|jdnd|kr|jdnd|kr|jdn|d =|d =d j|jjdd }y&|j t j t j |dWqttfk r YqXnlt|tr\|j|j|j|jn4t|trt|j}d|kr|jdnd|kr|jdnd|kr|jdn|d =|d =nt|trht|j}d|kr|jdnd|kr;|jdnd|krW|jdn|d =|d =n(t|trzntdt|d S(uACopy mbox- or MMDF-specific state to message insofar as possible.uOucuruFuAuRuSuDuTustatusux-statusu iNu%a %b %d %H:%M:%S %Yuunseenureplieduflaggedudeleteduansweredu$Cannot convert to specified type: %si(u isinstanceuMaildirMessageusetu get_flagsu set_subdiruadd_flagujoinuget_fromusplituset_dateucalendarutimegmutimeustrptimeu ValueErroru OverflowErroru_mboxMMDFMessageu set_flagsuset_fromu MHMessageu add_sequenceu BabylMessageu add_labeluMessageu TypeErrorutype(uselfumessageuflagsu maybe_date((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu _explain_tos^     %        u_mboxMMDFMessage._explain_toN(u__name__u __module__u __qualname__u__doc__u_type_specific_attributesuNoneu__init__uget_fromuset_fromu get_flagsu set_flagsuadd_flagu remove_flagu _explain_to(u __locals__((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_mboxMMDFMessagess      u_mboxMMDFMessagecBs|EeZdZdZdS(u mboxMessageu&Message with mbox-specific properties.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu mboxMessagescBsn|EeZdZdZdgZdddZddZddZd d Z d d Z d dZ dS(u MHMessageu$Message with MH-specific properties.u _sequencescCsg|_tj||dS(u!Initialize an MHMessage instance.N(u _sequencesuMessageu__init__(uselfumessage((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu__init__s uMHMessage.__init__cCs|jddS(u4Return a list of sequences that include the message.N(u _sequences(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_sequencessuMHMessage.get_sequencescCst||_dS(u3Set the list of sequences that include the message.N(ulistu _sequences(uselfu sequences((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu set_sequencessuMHMessage.set_sequencescCsNt|tr4||jkrJ|jj|qJntdt|dS(u8Add sequence to list of sequences including the message.usequence type must be str: %sN(u isinstanceustru _sequencesuappendu TypeErrorutype(uselfusequence((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu add_sequencesuMHMessage.add_sequencec Cs-y|jj|Wntk r(YnXdS(uARemove sequence from the list of sequences including the message.N(u _sequencesuremoveu ValueError(uselfusequence((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuremove_sequences uMHMessage.remove_sequencecCst|trt|j}d|kr=|jdn|jd|jdd|krs|jdnd|kr|jdqn?t|trt|j}d|kr|jdn |jd d|kr|jdnd|kr|jd qnt|trMx|jD]}|j|q3Wnt|t rt|j}d|kr|j dnd|kr|j d qn(t|t rnt d t |d S(u6Copy MH-specific state to message insofar as possible.uunseenucuruSuflaggeduFureplieduRuROuOuAuansweredu$Cannot convert to specified type: %sN(u isinstanceuMaildirMessageusetu get_sequencesu set_subdiruadd_flagu_mboxMMDFMessageu MHMessageu add_sequenceu BabylMessageu add_labeluMessageu TypeErrorutype(uselfumessageu sequencesusequence((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu _explain_to s@           uMHMessage._explain_toN( u__name__u __module__u __qualname__u__doc__u_type_specific_attributesuNoneu__init__u get_sequencesu set_sequencesu add_sequenceuremove_sequenceu _explain_to(u __locals__((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu MHMessages     cBs|EeZdZdZddgZdddZddZdd Zd d Z d d Z ddZ ddZ ddZ ddZdS(u BabylMessageu'Message with Babyl-specific properties.u_labelsu_visiblecCs)g|_t|_tj||dS(u$Initialize an BabylMessage instance.N(u_labelsuMessageu_visibleu__init__(uselfumessage((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu__init__5s  uBabylMessage.__init__cCs|jddS(u'Return a list of labels on the message.N(u_labels(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_labels;suBabylMessage.get_labelscCst||_dS(u&Set the list of labels on the message.N(ulistu_labels(uselfulabels((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu set_labels?suBabylMessage.set_labelscCsNt|tr4||jkrJ|jj|qJntdt|dS(u+Add label to list of labels on the message.ulabel must be a string: %sN(u isinstanceustru_labelsuappendu TypeErrorutype(uselfulabel((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu add_labelCsuBabylMessage.add_labelc Cs-y|jj|Wntk r(YnXdS(u4Remove label from the list of labels on the message.N(u_labelsuremoveu ValueError(uselfulabel((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu remove_labelKs uBabylMessage.remove_labelcCs t|jS(u3Return a Message representation of visible headers.(uMessageu_visible(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu get_visibleRsuBabylMessage.get_visiblecCst||_dS(u2Set the Message representation of visible headers.N(uMessageu_visible(uselfuvisible((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu set_visibleVsuBabylMessage.set_visiblecCsxG|jjD]6}||kr<|jj|||q|j|=qWx=dD]5}||krQ||jkrQ|||j|t|dr:t|jdr1|jjn|`ndS(uClose the file.u_fileucloseN(uhasattru_fileuclose(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuclosesu_ProxyFile.closecCsJ|dkrd}n|jj|j||}|jj|_|S(u"Read size bytes using read_method.iNi(uNoneu_fileuseeku_posutell(uselfusizeu read_methoduresult((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_reads    u_ProxyFile._readcCs|S(u!Context manager protocol support.((uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu __enter__su_ProxyFile.__enter__cGs|jdS(N(uclose(uselfuexc((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu__exit__su_ProxyFile.__exit__cCs |jjS(N(u_fileureadable(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyureadablesu_ProxyFile.readablecCs |jjS(N(u_fileuwritable(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuwritablesu_ProxyFile.writablecCs |jjS(N(u_fileuseekable(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuseekablesu_ProxyFile.seekablecCs |jjS(N(u_fileuflush(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuflushsu_ProxyFile.flushcCs3t|dsdSt|jds)dS|jjS(Nu_fileuclosedTF(uhasattruTrueu_fileuFalseuclosed(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyucloseds u_ProxyFile.closedN(u__name__u __module__u __qualname__u__doc__uNoneu__init__ureaduread1ureadlineu readlinesu__iter__utelluseekucloseu_readu __enter__u__exit__ureadableuwritableuseekableuflushupropertyuclosed(u __locals__((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu _ProxyFiles$         u _ProxyFilecBs_|EeZdZdZd d ddZddZdddZd d Zd d Z d S(u _PartialFileu&A read-only wrapper of part of a file.cCs)tj|||||_||_dS(uInitialize a _PartialFile.N(u _ProxyFileu__init__u_startu_stop(uselfufustartustop((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu__init__s u_PartialFile.__init__cCstj||jS(u*Return the position with respect to start.(u _ProxyFileutellu_start(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyutellsu_PartialFile.tellicCsY|dkr!|j|_d}n!|dkrB|j|_d}ntj|||dS(u8Change position, possibly with respect to start or stop.iiiN(u_startu_posu_stopu _ProxyFileuseek(uselfuoffsetuwhence((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuseeks      u_PartialFile.seekcCs`|j|j}|dkr dS|dksD|dksD||krM|}ntj|||S(u;Read size bytes using read_method, honoring start and stop.isN(u_stopu_posuNoneu _ProxyFileu_read(uselfusizeu read_methodu remaining((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_read s  $ u_PartialFile._readcCst|dr|`ndS(Nu_file(uhasattru_file(uself((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuclosesu_PartialFile.closeN( u__name__u __module__u __qualname__u__doc__uNoneu__init__utelluseeku_readuclose(u __locals__((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu _PartialFiles   u _PartialFilec3Cs<d}ytrytj|tjtjBWqtk r}z?|jtjtjtj fkryt d|j nWYdd}~XqXn|ry!t |j d}|j WnGtk r}z'|jtjtj fkrdSWYdd}~XnXyfttdrHtj|j |j dd}tj|j n tj|j |j dd}Wqtk r}za|jtjkstj dkr|jtjkrtj|j t d|j nWYdd}~XqXnWnDtrtj|tjn|r0tj|j dnYnXdS( u(Lock file f using lockf and dot locking.ulockf: lock unavailable: %sNu.lockulinkuos2udot lock unavailable: %sFT(uFalseufcntlulockfuLOCK_EXuLOCK_NBuIOErroruerrnouEAGAINuEACCESuEROFSuExternalClashErrorunameu_create_temporaryucloseuhasattruosulinkuTrueuunlinkurenameuOSErroruEEXISTuremoveuLOCK_UN(ufudotlocku dotlock_doneueupre_lock((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu _lock_filesL! !u _lock_filecCsPtrtj|tjntjj|jdrLtj|jdndS(u*Unlock file f using lockf and dot locking.u.lockN(ufcntlulockfuLOCK_UNuosupathuexistsunameuremove(uf((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu _unlock_fileHsu _unlock_filec CsLtj|tjtjBtjBd}zt|dSWdtj|XdS(uCCreate a file if it doesn't exist and open for reading and writing.iurb+N(uosuopenuO_CREATuO_EXCLuO_RDWRuclose(upathufd((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_create_carefullyOs&u_create_carefullycCs2td|ttjtjtjfS(uBCreate a temp file based on path and open for reading and writing.u %s.%s.%s.%s(u_create_carefullyuintutimeusocketu gethostnameuosugetpid(upath((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu_create_temporaryWs u_create_temporarycCs3|jttdr/tj|jndS(u0Ensure changes to file f are physically on disk.ufsyncN(uflushuhasattruosufsyncufileno(uf((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu _sync_flush]s u _sync_flushcCst||jdS(u:Close file f, ensuring all changes are physically on disk.N(u _sync_flushuclose(uf((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu _sync_closecs u _sync_closecBs|EeZdZdZdS(uErroru"Raised for module-specific errors.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuErrorisuErrorcBs|EeZdZdZdS(uNoSuchMailboxErroru:The specified mailbox does not exist and won't be created.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuNoSuchMailboxErrorlsuNoSuchMailboxErrorcBs|EeZdZdZdS(u NotEmptyErroru>The specified mailbox is not empty and deletion was requested.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu NotEmptyErrorosu NotEmptyErrorcBs|EeZdZdZdS(uExternalClashErroru)Another process caused an action to fail.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u,/opt/alt/python33/lib64/python3.3/mailbox.pyuExternalClashErrorrsuExternalClashErrorcBs|EeZdZdZdS(u FormatErroru)A file appears to have an invalid format.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u,/opt/alt/python33/lib64/python3.3/mailbox.pyu FormatErrorusu FormatError(4u__doc__usysuosutimeucalendarusocketuerrnoucopyuwarningsuemailu email.messageuemail.generatoruiou contextlibuplatformu ImportErrorufcntluNoneu__all__ulinesepuencodeuMailboxuMaildiru_singlefileMailboxu _mboxMMDFumboxuMMDFuMHuBabylumessageuMessageuMaildirMessageu_mboxMMDFMessageu mboxMessageu MHMessageu BabylMessageu MMDFMessageu _ProxyFileu _PartialFileuTrueu _lock_fileu _unlock_fileu_create_carefullyu_create_temporaryu _sync_flushu _sync_closeu ExceptionuErroruNoSuchMailboxErroru NotEmptyErroruExternalClashErroru FormatError(((u,/opt/alt/python33/lib64/python3.3/mailbox.pyusj                  CB4-5%mqH_a'-