
,8Zc        %   @   s  d  Z  d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k	 Z d d k
 Z d d k Z y* e i d j o
 e  n d d k Z Wn e j
 o e Z n Xd d k Z e i   i i   z1 e i o e i d d e  n d d k Z Wd QXd d d d	 d
 d d d d d d d d d d d d g Z d f  d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d	 e f d     YZ d
 e f d      YZ  d e i! i" f d!     YZ" d e" f d"     YZ# d# e" f d$     YZ$ d e$ f d%     YZ% d e" f d&     YZ& d e" f d'     YZ' d e$ f d(     YZ( d) f  d*     YZ) d+ e) f d,     YZ* e+ d-  Z, d.   Z- d/   Z. d0   Z/ d1   Z0 d2   Z1 d3 f  d4     YZ2 d e2 f d5     YZ3 d e3 f d6     YZ4 d e2 f d7     YZ5 d f  d8     YZ6 d e2 f d9     YZ7 d: e8 f d;     YZ9 d< e9 f d=     YZ: d> e9 f d?     YZ; d@ e9 f dA     YZ< dB e9 f dC     YZ= d S(D   sD   Read/write support for Maildir, mbox, MH, Babyl, and MMDF mailboxes.iNt   os2emxt   ignores   .*rfc822 has been removedt   Mailboxt   Maildirt   mboxt   MHt   Babylt   MMDFt   Messaget   MaildirMessaget   mboxMessaget	   MHMessaget   BabylMessaget   MMDFMessaget   UnixMailboxt   PortableUnixMailboxt   MmdfMailboxt	   MHMailboxt   BabylMailboxc           B   s.  e  Z d  Z d e d  Z d   Z d   Z d   Z d   Z	 d   Z
 d d  Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d d  Z d   Z d d  Z d   Z d   Z d   Z  d   Z! e" d  Z# RS(    s*   A group of messages in a particular place.c         C   s.   t  i i t  i i |   |  _ | |  _ d S(   s   Initialize a Mailbox instance.N(   t   ost   patht   abspatht
   expandusert   _patht   _factory(   t   selfR   t   factoryt   create(    (    s   /usr/lib/python2.6/mailbox.pyt   __init__-   s    !c         C   s   t  d   d S(   s$   Add message and return assigned key.s&   Method must be implemented by subclassN(   t   NotImplementedError(   R   t   message(    (    s   /usr/lib/python2.6/mailbox.pyt   add2   s    c         C   s   t  d   d S(   s=   Remove the keyed message; raise KeyError if it doesn't exist.s&   Method must be implemented by subclassN(   R   (   R   t   key(    (    s   /usr/lib/python2.6/mailbox.pyt   remove6   s    c         C   s   |  i  |  d  S(   N(   R!   (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyt   __delitem__:   s    c         C   s+   y |  i  |  Wn t j
 o n Xd S(   s'   If the keyed message exists, remove it.N(   R!   t   KeyError(   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyt   discard=   s    c         C   s   t  d   d S(   s>   Replace the keyed message; raise KeyError if it doesn't exist.s&   Method must be implemented by subclassN(   R   (   R   R    R   (    (    s   /usr/lib/python2.6/mailbox.pyt   __setitem__D   s    c         C   s,   y |  i  |  SWn t j
 o | SXd S(   s9   Return the keyed message, or default if it doesn't exist.N(   t   __getitem__R#   (   R   R    t   default(    (    s   /usr/lib/python2.6/mailbox.pyt   getH   s    c         C   s2   |  i  p |  i |  S|  i  |  i |   Sd S(   s=   Return the keyed message; raise KeyError if it doesn't exist.N(   R   t   get_messaget   get_file(   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyR&   O   s    
c         C   s   t  d   d S(   s4   Return a Message representation or raise a KeyError.s&   Method must be implemented by subclassN(   R   (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyR)   V   s    c         C   s   t  d   d S(   s3   Return a string representation or raise a KeyError.s&   Method must be implemented by subclassN(   R   (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyt
   get_stringZ   s    c         C   s   t  d   d S(   s6   Return a file-like representation or raise a KeyError.s&   Method must be implemented by subclassN(   R   (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyR*   ^   s    c         C   s   t  d   d S(   s   Return an iterator over keys.s&   Method must be implemented by subclassN(   R   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyt   iterkeysb   s    c         C   s   t  |  i    S(   s   Return a list of keys.(   t   listR,   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyt   keysf   s    c         c   sG   x@ |  i    D]2 } y |  | } Wn t j
 o
 q n X| Vq Wd S(   s%   Return an iterator over all messages.N(   R,   R#   (   R   R    t   value(    (    s   /usr/lib/python2.6/mailbox.pyt
   itervaluesj   s     c         C   s
   |  i    S(   N(   R0   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyt   __iter__s   s    c         C   s   t  |  i    S(   s,   Return a list of messages. Memory intensive.(   R-   R0   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyt   valuesv   s    c         c   sM   xF |  i    D]8 } y |  | } Wn t j
 o
 q n X| | f Vq Wd S(   s.   Return an iterator over (key, message) tuples.N(   R,   R#   (   R   R    R/   (    (    s   /usr/lib/python2.6/mailbox.pyt	   iteritemsz   s     c         C   s   t  |  i    S(   s9   Return a list of (key, message) tuples. Memory intensive.(   R-   R3   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyt   items   s    c         C   s   t  d   d S(   s9   Return True if the keyed message exists, False otherwise.s&   Method must be implemented by subclassN(   R   (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyt   has_key   s    c         C   s   |  i  |  S(   N(   R5   (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyt   __contains__   s    c         C   s   t  d   d S(   s*   Return a count of messages in the mailbox.s&   Method must be implemented by subclassN(   R   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyt   __len__   s    c         C   s(   x! |  i    D] } |  i |  q Wd S(   s   Delete all messages.N(   R,   R$   (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyt   clear   s     c         C   s6   y |  | } Wn t  j
 o | SX|  i |  | S(   s3   Delete the keyed message and return it, or default.(   R#   R$   (   R   R    R'   t   result(    (    s   /usr/lib/python2.6/mailbox.pyt   pop   s    c         C   s7   x0 |  i    D] } | |  i |  f SWt d   d S(   s6   Delete an arbitrary (key, message) pair and return it.s   No messages in mailboxN(   R,   R:   R#   (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyt   popitem   s     c         C   s   t  | d  o | i   } n' t  | d  o | i   } n | } t } x> | D]6 \ } } y | |  | <WqS t j
 o t } qS XqS W| o t d   n d S(   s4   Change the messages that correspond to certain keys.R3   R4   s   No message with key(s)N(   t   hasattrR3   R4   t   FalseR#   t   True(   R   t   argt   sourcet   bad_keyR    R   (    (    s   /usr/lib/python2.6/mailbox.pyt   update   s     c         C   s   t  d   d S(   s&   Write any pending changes to the disk.s&   Method must be implemented by subclassN(   R   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyt   flush   s    c         C   s   t  d   d S(   s   Lock the mailbox.s&   Method must be implemented by subclassN(   R   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyt   lock   s    c         C   s   t  d   d S(   s#   Unlock the mailbox if it is locked.s&   Method must be implemented by subclassN(   R   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyt   unlock   s    c         C   s   t  d   d S(   s   Flush and close the mailbox.s&   Method must be implemented by subclassN(   R   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyt   close   s    c         C   ss  t  | t i i  od t i   } t i i | | d  } | i |  | i d  | i	 | i
   i d t i   n t  | t  oC | o | i d d  } n | i d t i  } | i	 |  n t | d  o| x t om | i   } | d j o Pn | o" | i d  o d | d	 } n | i d t i  } | i	 |  q Wn t d
 t |    d S(   s%   Dump message contents to target file.i    s   
s   
From s   
>From t   readt    s   From s   >From i   s   Invalid message type: %sN(   t
   isinstancet   emailR   R   t   StringIOt	   generatort	   Generatort   flattent   seekt   writeRG   t   replaceR   t   linesept   strR<   R>   t   readlinet
   startswitht	   TypeErrort   type(   R   R   t   targett   mangle_from_t   buffert   gent   line(    (    s   /usr/lib/python2.6/mailbox.pyt   _dump_message   s,    & N($   t   __name__t
   __module__t   __doc__t   NoneR>   R   R   R!   R"   R$   R%   R(   R&   R)   R+   R*   R,   R.   R0   R1   R2   R3   R4   R5   R6   R7   R8   R:   R;   RB   RC   RD   RE   RF   R=   R]   (    (    (    s   /usr/lib/python2.6/mailbox.pyR   *   s>   																												c           B   s   e  Z d  Z d Z e i e d  Z d   Z d   Z	 d   Z
 d   Z d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d Z d   Z d   Z d   Z d   Z RS(   s   A qmail-style Maildir mailbox.t   :c         C   s   t  i |  | | |  t i i |  i  p | o} t i |  i d  t i t i i |  i d  d  t i t i i |  i d  d  t i t i i |  i d  d  q t |  i   n h  |  _	 d S(   s   Initialize a Maildir instance.i  t   tmpt   newt   curN(
   R   R   R   R   t   existsR   t   mkdirt   joint   NoSuchMailboxErrort   _toc(   R   t   dirnameR   R   (    (    s   /usr/lib/python2.6/mailbox.pyR      s    ""&c      
   C   s  |  i    } z |  i | |  Wd t |  Xt | t  o= | i   } |  i | i   } | |  i j o
 d } q n d } d } t i	 i
 | i  i |  i  d } t i	 i |  i | | |  } yN t t d  o' t i | i |  t i | i  n t i | i |  WnO t j
 oC } t i | i  | i t i j o t d |   qk  n Xt | t  o, t i | t i	 i |  | i   f  n | S(   s$   Add message and return assigned key.NRH   Rd   i    t   links$   Name clash with existing message: %s(   t   _create_tmpR]   t   _sync_closeRI   R	   t
   get_subdirt   colont   get_infoR   R   t   basenamet   namet   splitRh   R   R<   Rl   R!   t   renamet   OSErrort   errnot   EEXISTt   ExternalClashErrort   utimet   getatimet   get_date(   R   R   t   tmp_filet   subdirt   suffixt   uniqt   destt   e(    (    s   /usr/lib/python2.6/mailbox.pyR      s6    %,c         C   s,   t  i t  i i |  i |  i |    d S(   s=   Remove the keyed message; raise KeyError if it doesn't exist.N(   R   R!   R   Rh   R   t   _lookup(   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyR!     s    c         C   sY   y |  i  |  WnA t j
 o n0 t j
 o# } | i t i j o   qU n Xd S(   s'   If the keyed message exists, remove it.N(   R!   R#   Rv   Rw   t   ENOENT(   R   R    R   (    (    s   /usr/lib/python2.6/mailbox.pyR$     s    c   
      C   s$  |  i  |  } |  i |  } |  i  |  } t | t  o
 | } n | } t i i |  } |  i | j o! |  i | i |  i  d } n d } |  i	 |  t i i
 |  i | | |  }	 t i t i i
 |  i |  |	  t | t  o, t i |	 t i i |	  | i   f  n d S(   s>   Replace the keyed message; raise KeyError if it doesn't exist.iRH   N(   R   R   RI   R	   R   R   Rk   Rp   Rt   R$   Rh   R   Ru   Rz   R{   R|   (
   R   R    R   t   old_subpatht   temp_keyt   temp_subpatht   dominant_subpathR~   R   t   new_path(    (    s   /usr/lib/python2.6/mailbox.pyR%   (  s     
!"c         C   s   |  i  |  } t t i i |  i |  d  } z- |  i o |  i |  } n t |  } Wd | i   Xt i i	 |  \ } } | i
 |  |  i | j o! | i | i	 |  i  d  n | i t i i t i i |  i |    | S(   s4   Return a Message representation or raise a KeyError.t   rNi(   R   t   openR   R   Rh   R   R   R	   RF   Rt   t
   set_subdirRp   t   set_infot   set_datet   getmtime(   R   R    t   subpatht   ft   msgR~   Rs   (    (    s   /usr/lib/python2.6/mailbox.pyR)   ?  s    !
!+c         C   sJ   t  t i i |  i |  i |   d  } z | i   SWd | i   Xd S(   s3   Return a string representation or raise a KeyError.R   N(   R   R   R   Rh   R   R   RG   RF   (   R   R    R   (    (    s   /usr/lib/python2.6/mailbox.pyR+   Q  s    *c         C   s4   t  t i i |  i |  i |   d  } t |  S(   s6   Return a file-like representation or raise a KeyError.t   rb(   R   R   R   Rh   R   R   t
   _ProxyFile(   R   R    R   (    (    s   /usr/lib/python2.6/mailbox.pyR*   Y  s    *c         c   sQ   |  i    x@ |  i D]5 } y |  i |  Wn t j
 o
 q n X| Vq Wd S(   s   Return an iterator over keys.N(   t   _refreshRj   R   R#   (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyR,   ^  s    

 c         C   s   |  i    | |  i j S(   s9   Return True if the keyed message exists, False otherwise.(   R   Rj   (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyR5   h  s    
c         C   s   |  i    t |  i  S(   s*   Return a count of messages in the mailbox.(   R   t   lenRj   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR7   m  s    
c         C   s   d S(   s"   Write any pending changes to disk.N(    (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRC   r  s    c         C   s   d S(   s   Lock the mailbox.N(    (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRD   v  s    c         C   s   d S(   s#   Unlock the mailbox if it is locked.N(    (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRE   z  s    c         C   s   d S(   s   Flush and close the mailbox.N(    (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRF   ~  s    c         C   s   g  } xx t  i |  i  D]d } t |  d j oK | d d j o: t  i i t  i i |  i |   o | i | d  q q W| S(   s   Return a list of folder names.i   i    t   .(   R   t   listdirR   R   R   t   isdirRh   t   append(   R   R9   t   entry(    (    s   /usr/lib/python2.6/mailbox.pyt   list_folders  s     $%c         C   s/   t  t i i |  i d |  d |  i d t S(   s/   Return a Maildir instance for the named folder.R   R   R   (   R   R   R   Rh   R   R   R=   (   R   t   folder(    (    s   /usr/lib/python2.6/mailbox.pyt
   get_folder  s    	c         C   s   t  i i |  i d |  } t | d |  i } t  i i | d  } t  i i |  p* t  i t  i | t  i	 t  i
 Bd   n | S(   s>   Create a folder and return a Maildir instance representing it.R   R   t   maildirfolderi  (   R   R   Rh   R   R   R   Rf   RF   R   t   O_CREATt   O_WRONLY(   R   R   R   R9   t   maildirfolder_path(    (    s   /usr/lib/python2.6/mailbox.pyt
   add_folder  s    c         C   s  t  i i |  i d |  } xz t  i t  i i | d   t  i t  i i | d   D]> } t |  d j  p | d d j o t d |   qW qW Wxz t  i |  D]i } | d j oV | d j oI | d j o< t  i i t  i i | |   o t d | | f   q q Wx t  i | d	 t	 D]i \ } } } x* | D]" } t  i
 t  i i | |   qBWx* | D]" } t  i t  i i | |   qoWq,Wt  i |  d
 S(   s-   Delete the named folder, which must be empty.R   Rd   Re   i   i    s   Folder contains message(s): %sRc   s%   Folder contains subdirectory '%s': %st   topdownN(   R   R   Rh   R   R   R   t   NotEmptyErrorR   t   walkR=   R!   t   rmdir(   R   R   R   R   t   roott   dirst   files(    (    s   /usr/lib/python2.6/mailbox.pyt   remove_folder  s*     $ '"    $c         C   s   t  i    } xr t i t i i |  i d   D]O } t i i |  i d |  } | t i i |  d j o t i |  q. q. Wd S(   s   Delete old files in "tmp".Rc   i@ N(   t   timeR   R   R   Rh   R   R{   R!   (   R   t   nowR   R   (    (    s   /usr/lib/python2.6/mailbox.pyt   clean  s    " i   c         C   sU  t  i    } t i   } d | j o | i d d  } n d | j o | i d d  } n d t |  t | d d  t i   t i | f } t i	 i
 |  i d |  } y t i |  Wn~ t j
 or } | i t i j oS t i d 7_ y t |  SWq<t j
 o# } | i t i j o   q5q<XqA  n Xt d	 |   d
 S(   s=   Create a file in the tmp subdirectory and open and return it.t   /s   \057Rb   s   \072s   %s.M%sP%sQ%s.%si   g    .ARc   s&   Name clash prevented file creation: %sN(   R   t   sockett   gethostnameRQ   t   intR   t   getpidR   t   _countR   Rh   R   t   statRv   Rw   R   t   _create_carefullyRx   Ry   (   R   R   t   hostnameR   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyRm     s,    &c         C   s   h  |  _  x d D] } t i i |  i |  } xx t i |  D]g } t i i | |  } t i i |  o q> n | i |  i  d } t i i | |  |  i  | <q> Wq Wd S(   s!   Update table of contents mapping.Rd   Re   i    N(   s   news   cur(	   Rj   R   R   Rh   R   R   R   Rt   Rp   (   R   R~   t   subdir_pathR   t   pR   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    	  c         C   s   y< t  i i t  i i |  i |  i |   o |  i | SWn t j
 o n X|  i   y |  i | SWn# t j
 o t d |   n Xd S(   s=   Use TOC to return subpath for given key, or raise a KeyError.s   No message with key: %sN(   R   R   Rf   Rh   R   Rj   R#   R   (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyR     s    ,
c         C   sw   t  |  d  p |  i   |  _ n xM t oE y |  |  i i   SWq& t j
 o d St j
 o
 q& q& Xq& Wd S(   s0   Return the next message in a one-time iteration.t   _onetime_keysN(   R<   R,   R   R>   t   nextt   StopIterationRa   R#   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s     (    R^   R_   R`   Rp   t   rfc822R   R>   R   R   R!   R$   R%   R)   R+   R*   R,   R5   R7   RC   RD   RE   RF   R   R   R   R   R   R   Rm   R   R   R   (    (    (    s   /usr/lib/python2.6/mailbox.pyR      s6   	"							
										
					t   _singlefileMailboxc           B   s   e  Z d  Z d e d  Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d d  Z d   Z RS(   s   A single-file mailbox.c         C   s   t  i |  | | |  y t |  i d  } Wn t j
 ox } | i t i j o0 | o t |  i d  } q t |  i   q | i t i j o t |  i d  } q   n X| |  _	 d |  _ d |  _ t |  _ t |  _ d |  _ d S(   s!   Initialize a single-file mailbox.s   rb+s   wb+R   i    N(   R   R   R   R   t   IOErrorRw   R   Ri   t   EACCESt   _fileRa   Rj   t	   _next_keyR=   t   _pendingt   _lockedt   _file_length(   R   R   R   R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s"    					c         C   sF   |  i    |  i |  |  i |  i <|  i d 7_ t |  _ |  i d S(   s$   Add message and return assigned key.i   (   R   t   _append_messageRj   R   R>   R   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s
    
	c         C   s$   |  i  |  |  i | =t |  _ d S(   s=   Remove the keyed message; raise KeyError if it doesn't exist.N(   R   Rj   R>   R   (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyR!     s    
c         C   s0   |  i  |  |  i |  |  i | <t |  _ d S(   s>   Replace the keyed message; raise KeyError if it doesn't exist.N(   R   R   Rj   R>   R   (   R   R    R   (    (    s   /usr/lib/python2.6/mailbox.pyR%   "  s    c         c   s-   |  i    x |  i i   D] } | Vq Wd S(   s   Return an iterator over keys.N(   R   Rj   R.   (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyR,   (  s    
 c         C   s   |  i    | |  i j S(   s9   Return True if the keyed message exists, False otherwise.(   R   Rj   (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyR5   .  s    
c         C   s   |  i    t |  i  S(   s*   Return a count of messages in the mailbox.(   R   R   Rj   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR7   3  s    
c         C   s(   |  i  p t |  i  t |  _  n d S(   s   Lock the mailbox.N(   R   t
   _lock_fileR   R>   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRD   8  s    
c         C   s(   |  i  o t |  i  t |  _  n d S(   s#   Unlock the mailbox if it is locked.N(   R   t   _unlock_fileR   R=   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRE   >  s    
c   
      C   s  |  i  p d S|  i d j	 p t  |  i i d d  |  i i   } | |  i j o t d |  i | f   n t	 |  i
  } y h  } |  i |  x t |  i i    D] } |  i | \ } } |  i i |  |  i |  | i   } xS t oK |  i i t d | |  i i     } | d j o Pn | i |  q W| | i   f | | <|  i |  q WWn$ | i   t i | i    n Xt |  |  i i   y t i | i |  i
  Wnx t j
 ol }	 |	 i t i j p# t i d j o= |	 i t i j o* t i |  i
  t i | i |  i
  qC  n Xt |  i
 d  |  _ | |  _ t |  _  |  i  o t! |  i d	 t n d S(
   s"   Write any pending changes to disk.Ni    i   s4   Size of mailbox file changed (expected %i, found %i)i   RH   t   os2s   rb+t   dotlock("   R   Rj   Ra   t   AssertionErrorR   RO   t   tellR   Ry   t   _create_temporaryR   t   _pre_mailbox_hookt   sortedR.   t   _pre_message_hookR>   RG   t   minRP   t   _post_message_hookRF   R   R!   Rs   Rn   Ru   Rv   Rw   Rx   R   R   R=   R   R   (
   R   t   cur_lent   new_filet   new_tocR    t   startt   stopt	   new_startRZ   R   (    (    s   /usr/lib/python2.6/mailbox.pyRC   D  s\    
  

#		
c         C   s   d S(   s,   Called before writing the mailbox to file f.N(    (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   ~  s    c         C   s   d S(   s-   Called before writing each message to file f.N(    (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    c         C   s   d S(   s,   Called after writing each message to file f.N(    (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    c         C   s3   |  i    |  i o |  i   n |  i i   d S(   s   Flush and close the mailbox.N(   RC   R   RE   R   RF   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRF     s    

c         C   sh   |  i  d j o |  i   n | d j	 o9 y |  i  | SWqd t j
 o t d |   qd Xn d S(   s'   Return (start, stop) or raise KeyError.s   No message with key: %sN(   Rj   Ra   t   _generate_tocR#   (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyR     s    c         C   se   |  i  i d d  |  i |  i   |  i |  } |  i |  i   |  i  i   |  i  i   |  _ | S(   s;   Append message to mailbox and return (start, stop) offsets.i    i   (   R   RO   R   t   _install_messageR   RC   R   R   (   R   R   t   offsets(    (    s   /usr/lib/python2.6/mailbox.pyR     s    N(   R^   R_   R`   Ra   R>   R   R   R!   R%   R,   R5   R7   RD   RE   RC   R   R   R   RF   R   R   (    (    (    s   /usr/lib/python2.6/mailbox.pyR     s"   									:				
t	   _mboxMMDFc           B   s>   e  Z d  Z e Z d   Z e d  Z e d  Z d   Z	 RS(   s   An mbox or MMDF mailbox.c         C   s   |  i  |  \ } } |  i i |  |  i i   i t i d  } |  i i | |  i i    } |  i	 | i t i d   } | i
 | d  | S(   s4   Return a Message representation or raise a KeyError.RH   s   
i   (   R   R   RO   RT   RQ   R   RR   RG   R   t   _message_factoryt   set_from(   R   R    R   R   t	   from_linet   stringR   (    (    s   /usr/lib/python2.6/mailbox.pyR)     s    c         C   so   |  i  |  \ } } |  i i |  | p |  i i   n |  i i | |  i i    } | i t i d  S(   s3   Return a string representation or raise a KeyError.s   
(	   R   R   RO   RT   RG   R   RQ   R   RR   (   R   R    t   from_R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR+     s    c         C   sY   |  i  |  \ } } |  i i |  | p |  i i   n t |  i |  i i   |  S(   s6   Return a file-like representation or raise a KeyError.(   R   R   RO   RT   t   _PartialFileR   (   R   R    R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR*     s
    c         C   s:  d } t | t  oX | i d  oH | i d  } | d j o | |  } | | d } q | } d } nK t | t  o d | i   } n' t | t i i	  o | i
   } n | d j o d t i t i    } n |  i i   } |  i i | t i  |  i | |  i |  i  |  i i   } | | f S(   s1   Format a message and blindly write to self._file.s   From s   
ii   RH   s   From MAILER-DAEMON %sN(   Ra   RI   RS   RU   t   findt   _mboxMMDFMessaget   get_fromRJ   R   R   t   get_unixfromR   t   asctimet   gmtimeR   R   RP   R   RR   R]   t   _mangle_from_(   R   R   R   t   newlineR   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s&     

(
   R^   R_   R`   R>   R   R)   R=   R+   R*   R   (    (    (    s   /usr/lib/python2.6/mailbox.pyR     s   	
	c           B   s5   e  Z d  Z e Z d e d  Z d   Z d   Z RS(   s   A classic mbox mailbox.c         C   s#   t  |  _ t i |  | | |  d S(   s   Initialize an mbox mailbox.N(   R
   R   R   R   (   R   R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    	c         C   s+   | i    d j o | i t i  n d S(   s-   Called before writing each message to file f.i    N(   R   RP   R   RR   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    c         C   s  g  g  } } |  i  i d  x t o |  i  i   } |  i  i   } | i d  oH t |  t |  j  o | i | t t i	   n | i |  q  | d j o | i |  Pq  q  Wt
 t t | |    |  _ t |  i  |  _ |  i  i   |  _ d S(   s0   Generate key-to-(start, stop) table of contents.i    s   From RH   N(   R   RO   R>   R   RT   RU   R   R   R   RR   t   dictt	   enumeratet   zipRj   R   R   (   R   t   startst   stopst   line_posR\   (    (    s   /usr/lib/python2.6/mailbox.pyR     s      
N(	   R^   R_   R`   R>   R   Ra   R   R   R   (    (    (    s   /usr/lib/python2.6/mailbox.pyR     s
   	c           B   s8   e  Z d  Z d e d  Z d   Z d   Z d   Z RS(   s   An MMDF mailbox.c         C   s#   t  |  _ t i |  | | |  d S(   s   Initialize an MMDF mailbox.N(   R   R   R   R   (   R   R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    	c         C   s   | i  d t i  d S(   s-   Called before writing each message to file f.s   N(   RP   R   RR   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   	  s    c         C   s   | i  t i d t i  d S(   s,   Called after writing each message to file f.s   N(   RP   R   RR   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    c         C   sn  g  g  } } |  i  i d  d } x t o | } |  i  i   } |  i  i   } | i d t i  o | i |  x t oz | } |  i  i   } |  i  i   } | d t i j o | i | t	 t i   Pqx | d j o | i |  Pqx qx Wq& | d j o Pq& q& Wt
 t t | |    |  _ t	 |  i  |  _ |  i  i d d  |  i  i   |  _ d S(   s0   Generate key-to-(start, stop) table of contents.i    s   RH   i   N(   R   RO   R>   RT   R   RU   R   RR   R   R   R   R   R   Rj   R   R   (   R   R   R   t   next_posR   R\   (    (    s   /usr/lib/python2.6/mailbox.pyR     s6      
N(	   R^   R_   R`   Ra   R>   R   R   R   R   (    (    (    s   /usr/lib/python2.6/mailbox.pyR     s
   		c           B   s   e  Z d  Z d e d  Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   s   An MH mailbox.c         C   s   t  i |  | | |  t i i |  i  pp | oV t i |  i d  t i t i t i i	 |  i d  t i
 t i Bt i Bd   q t |  i   n t |  _ d S(   s   Initialize an MH instance.i  s   .mh_sequencesi  N(   R   R   R   R   Rf   R   Rg   RF   R   Rh   R   t   O_EXCLR   Ri   R=   R   (   R   R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   1  s    !"c      	   C   s   |  i    } t |  d j o
 d } n t |  d } t i i |  i t |   } t |  } zp |  i	 o t
 |  n z8 |  i | |  t | t  o |  i | |  n Wd |  i	 o t |  n XWd t |  X| S(   s$   Add message and return assigned key.i    i   N(   R.   R   t   maxR   R   Rh   R   RS   R   R   R   R]   RI   R   t   _dump_sequencesR   Rn   (   R   R   R.   t   new_keyR   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   =  s"    


c         C   s   t  i i |  i t |   } y t | d  } Wn? t j
 o3 } | i t i j o t	 d |   qs   n Xzk |  i
 o t |  n z3 | i   t  i t  i i |  i t |    Wd |  i
 o t |  n XWd | i   Xd S(   s=   Remove the keyed message; raise KeyError if it doesn't exist.s   rb+s   No message with key: %sN(   R   R   Rh   R   RS   R   R   Rw   R   R#   R   R   RF   R!   R   (   R   R    R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR!   T  s     

)
c         C   s  t  i i |  i t |   } y t | d  } Wn? t j
 o3 } | i t i j o t	 d |   qs   n Xz |  i
 o t |  n z[ t  i t  i | t  i t  i B  |  i | |  t | t  o |  i | |  n Wd |  i
 o t |  n XWd t |  Xd S(   s>   Replace the keyed message; raise KeyError if it doesn't exist.s   rb+s   No message with key: %sN(   R   R   Rh   R   RS   R   R   Rw   R   R#   R   R   RF   R   t   O_TRUNCR]   RI   R   R   R   Rn   (   R   R    R   R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR%   j  s$    
#
c         C   s=  y` |  i  o+ t t i i |  i t |   d  } n( t t i i |  i t |   d  } Wn? t j
 o3 } | i t i	 j o t
 d |   q   n XzH |  i  o t |  n z t |  } Wd |  i  o t |  n XWd | i   Xx> |  i   i   D]* \ } } | | j o | i |  qqW| S(   s4   Return a Message representation or raise a KeyError.s   r+R   s   No message with key: %sN(   R   R   R   R   Rh   R   RS   R   Rw   R   R#   R   R   R   RF   t   get_sequencesR3   t   add_sequence(   R   R    R   R   R   Rs   t   key_list(    (    s   /usr/lib/python2.6/mailbox.pyR)     s*    
++

 c         C   s   y` |  i  o+ t t i i |  i t |   d  } n( t t i i |  i t |   d  } Wn? t j
 o3 } | i t i	 j o t
 d |   q   n XzF |  i  o t |  n z | i   SWd |  i  o t |  n XWd | i   Xd S(   s3   Return a string representation or raise a KeyError.s   r+R   s   No message with key: %sN(   R   R   R   R   Rh   R   RS   R   Rw   R   R#   R   RG   R   RF   (   R   R    R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR+     s     
++

c         C   sw   y+ t  t i i |  i t |   d  } Wn? t j
 o3 } | i t i j o t	 d |   qm   n Xt
 |  S(   s6   Return a file-like representation or raise a KeyError.R   s   No message with key: %s(   R   R   R   Rh   R   RS   R   Rw   R   R#   R   (   R   R    R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR*     s    +c         C   s&   t  t d   t i |  i  D   S(   s   Return an iterator over keys.c         s   s0   x) |  ]" } | i    o t |  Vq q Wd  S(   N(   t   isdigitR   (   t   .0R   (    (    s   /usr/lib/python2.6/mailbox.pys	   <genexpr>  s   	 (   t   iterR   R   R   R   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR,     s    c         C   s(   t  i i t  i i |  i t |    S(   s9   Return True if the keyed message exists, False otherwise.(   R   R   Rf   Rh   R   RS   (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyR5     s    c         C   s   t  t |  i     S(   s*   Return a count of messages in the mailbox.(   R   R-   R,   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR7     s    c         C   sL   |  i  p> t t i i |  i d  d  |  _ t |  i  t |  _  n d S(   s   Lock the mailbox.s   .mh_sequencess   rb+N(	   R   R   R   R   Rh   R   R   R   R>   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRD     s    
$c         C   s;   |  i  o- t |  i  t |  i  |  ` t |  _  n d S(   s#   Unlock the mailbox if it is locked.N(   R   R   R   Rn   R=   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRE     s
    
c         C   s   d S(   s&   Write any pending changes to the disk.N(    (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRC     s    c         C   s   |  i  o |  i   n d S(   s   Flush and close the mailbox.N(   R   RE   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRF     s    
c         C   s]   g  } xP t  i |  i  D]< } t  i i t  i i |  i |   o | i |  q q W| S(   s   Return a list of folder names.(   R   R   R   R   R   Rh   R   (   R   R9   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s     %c         C   s+   t  t i i |  i |  d |  i d t S(   s+   Return an MH instance for the named folder.R   R   (   R   R   R   Rh   R   R   R=   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    c         C   s%   t  t i i |  i |  d |  i S(   s:   Create a folder and return an MH instance representing it.R   (   R   R   R   Rh   R   R   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    c         C   s   t  i i |  i |  } t  i |  } | d g j o  t  i t  i i | d   n% | g  j o n t d |  i   t  i |  d S(   s-   Delete the named folder, which must be empty.s   .mh_sequencess   Folder not empty: %sN(   R   R   Rh   R   R   R!   R   R   (   R   R   R   t   entries(    (    s   /usr/lib/python2.6/mailbox.pyR     s     c         C   s  h  } t  t i i |  i d  d  } zGt |  i    } x.| D]&} y | i d  \ } } t   } xq | i   D]c } | i   o | i	 t
 |   qw d   | i d  D \ }	 }
 | i t |	 |
 d   qw Wg  } t |  D] } | | j o | | q q ~ | | <t | |  d j o | | =n WqC t j
 o t d | i     qC XqC WWd	 | i   X| S(
   s=   Return a name-to-key-list dictionary to define each sequence.s   .mh_sequencesR   Rb   c         s   s   x |  ] } t  |  Vq Wd  S(   N(   R   (   R   t   x(    (    s   /usr/lib/python2.6/mailbox.pys	   <genexpr>  s   	 t   -i   i    s"   Invalid sequence specification: %sN(   R   R   R   Rh   R   t   setR.   Rt   R   R   R   RB   t   rangeR   R   t
   ValueErrort   FormatErrort   rstripRF   (   R   t   resultsR   t   all_keysR\   Rs   t   contentsR.   t   specR   R   t   _[1]R    (    (    s   /usr/lib/python2.6/mailbox.pyR     s0    ! 	 %c      	   C   so  t  t i i |  i d  d  } z<t i t i  | i t i t i B  x| i	   D]\ } } t
 |  d j o qW n | i d |  d
 } t } x t t |   D]x } | d | j o" | p t } | i d  qn: | o! t } | i d | | f  n | i d |  | } q W| o | i t |  d	  qW | i d	  qW WWd
 t |  Xd
 S(   s:   Set sequences using the given name-to-key-list dictionary.s   .mh_sequencess   r+i    s   %s:i   R   s   %s %ss    %ss   
N(   R   R   R   Rh   R   RF   Rs   R   R   R3   R   RP   Ra   R=   R   R   R>   RS   Rn   (   R   t	   sequencesR   Rs   R.   t   prevt
   completingR    (    (    s   /usr/lib/python2.6/mailbox.pyt   set_sequences  s2    !&  
c   	      C   s  |  i    } d } g  } x|  i   D] } | d | j o | i | | d f  t t d  om t i t i i |  i t	 |   t i i |  i t	 | d    t i
 t i i |  i t	 |    qt i t i i |  i t	 |   t i i |  i t	 | d    n | d 7} q% W| d |  _ t |  d j o d SxU | i   D]G \ } } x8 | D]0 \ } } | | j o | | | i |  <qkqkWqXW|  i |  d S(   s?   Re-name messages to eliminate numbering gaps. Invalidates keys.i    i   Rl   N(   R   R,   R   R<   R   Rl   R   Rh   R   RS   t   unlinkRu   R   R   R4   t   indexR  (	   R   R
  R  t   changesR    Rs   R   t   oldRd   (    (    s   /usr/lib/python2.6/mailbox.pyt   pack:  s0     !#)!'  c         C   s   | i    } |  i    } xY | i   D]K \ } } | | j o | i |  q% | | j o | | i |  =q% q% Wx, | D]$ } | | j o | g | | <q{ q{ W|  i |  d S(   s;   Inspect a new MHMessage and update sequences appropriately.N(   R   R3   R   R  R  (   R   R   R    t   pending_sequencest   all_sequencesRs   R   t   sequence(    (    s   /usr/lib/python2.6/mailbox.pyR   S  s      N(   R^   R_   R`   Ra   R>   R   R   R!   R%   R)   R+   R*   R,   R5   R7   RD   RE   RC   RF   R   R   R   R   R   R  R  R   (    (    (    s   /usr/lib/python2.6/mailbox.pyR   .  s.   																				c           B   s   e  Z d  Z e d  Z d e d  Z d	   Z d
   Z	 d   Z
 d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   s   An Rmail-style Babyl mailbox.t   unseent   deletedt   filedt   answeredt	   forwardedt   editedt   resentc         C   s#   t  i |  | | |  h  |  _ d S(   s   Initialize a Babyl mailbox.N(   R   R   t   _labels(   R   R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   h  s    c         C   s=   t  i |  |  } t | t  o | i   |  i | <n | S(   s$   Add message and return assigned key.(   R   R   RI   R   t
   get_labelsR  (   R   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyR   m  s    c         C   s2   t  i |  |  | |  i j o |  i | =n d S(   s=   Remove the keyed message; raise KeyError if it doesn't exist.N(   R   R!   R  (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyR!   t  s    c         C   s>   t  i |  | |  t | t  o | i   |  i | <n d S(   s>   Replace the keyed message; raise KeyError if it doesn't exist.N(   R   R%   RI   R   R  R  (   R   R    R   (    (    s   /usr/lib/python2.6/mailbox.pyR%   z  s    c   	      C   s  |  i  |  \ } } |  i i |  |  i i   t i   } x] t oU |  i i   } | d t i j p | d j o Pn | i | i	 t i d   qA Wt i   } xY t oQ |  i i   } | t i j p | d j o Pn | i | i	 t i d   q W|  i i
 | |  i i    i	 t i d  } t | i   |  } | i | i    | |  i j o | i |  i |  n | S(   s4   Return a Message representation or raise a KeyError.s   *** EOOH ***RH   s   
(   R   R   RO   RT   RK   R>   R   RR   RP   RQ   RG   R   R   t   getvaluet   set_visibleR  t
   set_labels(	   R   R    R   R   t   original_headersR\   t   visible_headerst   bodyR   (    (    s   /usr/lib/python2.6/mailbox.pyR)     s0     !! !%	c         C   s  |  i  |  \ } } |  i i |  |  i i   t i   } x] t oU |  i i   } | d t i j p | d j o Pn | i | i	 t i d   qA Wx= t o5 |  i i   } | t i j p | d j o Pq q W| i
   |  i i | |  i i    i	 t i d  S(   s3   Return a string representation or raise a KeyError.s   *** EOOH ***RH   s   
(   R   R   RO   RT   RK   R>   R   RR   RP   RQ   R  RG   R   (   R   R    R   R   R"  R\   (    (    s   /usr/lib/python2.6/mailbox.pyR+     s$     !! 
	%c         C   s%   t  i  |  i |  i d t i   S(   s6   Return a file-like representation or raise a KeyError.s   
(   RK   R+   RQ   R   RR   (   R   R    (    (    s   /usr/lib/python2.6/mailbox.pyR*     s    c         C   sT   |  i    t   } x$ |  i i   D] } | i |  q# W| i |  i  t |  S(   s4   Return a list of user-defined labels in the mailbox.(   R   R   R  R2   RB   t   difference_updatet   _special_labelsR-   (   R   t   labelst
   label_list(    (    s   /usr/lib/python2.6/mailbox.pyR    s    
	 c   
      C   s  g  g  } } |  i  i d  d } g  } xut om| } |  i  i   } |  i  i   } | d t i j o t |  t |  j  o | i | t t i   n | i |  g  } |  i  i   d i	 d  D]* } | i
   d j o | | i
   q q ~ }	 | i |	  q, | d j p | d t i j o; t |  t |  j  o | i | t t i   qq, | d j o | i | t t i   Pq, q, Wt t t | |    |  _ t t |   |  _ t |  i  |  _ |  i  i d d  |  i  i   |  _ d S(	   s0   Generate key-to-(start, stop) table of contents.i    s   i   t   ,RH   s   i   N(   R   RO   R>   RT   R   R   RR   R   R   Rt   t   stripR   R   R   Rj   R  R   R   (
   R   R   R   R   t   label_listsR   R\   R	  t   labelR'  (    (    s   /usr/lib/python2.6/mailbox.pyR     s8      -!"
c         C   s9   | i  d t i t i d i |  i    t i f  d S(   s,   Called before writing the mailbox to file f.s(   BABYL OPTIONS:%sVersion: 5%sLabels:%s%sR)  N(   RP   R   RR   Rh   R  (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    	c         C   s   | i  d t i  d S(   s-   Called before writing each message to file f.s   N(   RP   R   RR   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    c         C   s   | i  t i d  d S(   s,   Called after writing each message to file f.s   N(   RP   R   RR   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    c         C   sX  |  i  i   } t | t  o g  } g  } xB | i   D]4 } | |  i j o | i |  q8 | i |  q8 W|  i  i d  x" | D] } |  i  i d |  q W|  i  i d  x& | D] } |  i  i d | d  q W|  i  i t i	  n |  i  i d t i	  t | t
 i i  ot i   } t
 i i | t d  } | i |  | i d  xV t oN | i   } |  i  i | i d t i	   | d j p | d	 j o PqcqcW|  i  i d
 t i	  t | t  o t i   }	 t
 i i |	 t d  }
 |
 i | i    x t oN |	 i   } |  i  i | i d t i	   | d j p | d	 j o PqqWng | i d  xV t oN | i   } |  i  i | i d t i	   | d j p | d	 j o PqqWxbt oD | i d  } | d	 j o Pn |  i  i | i d t i	   qWnt | t  o | i d  d } | d d j o |  i  i | |  i d t i	   |  i  i d
 t i	  |  i  i | |  i d t i	   |  i  i | | i d t i	   q?|  i  i d
 t i	 t i	  |  i  i | i d t i	   nt | d  o | i   } t } x t o | i   } |  i  i | i d t i	   | d j p | d	 j o: |  i  i d
 t i	  | o t } | i |  qPqKqKWxf t oD | i d  } | d	 j o Pn |  i  i | i d t i	   qWn t d t |    |  i  i   } | | f S(   s0   Write message contents and return (start, stop).t   1s   , s   ,,t    R)  s   1,,i    s   
RH   s   *** EOOH ***i   s   

i   iRT   s   Invalid message type: %s(   R   R   RI   R   R  R&  R   RP   R   RR   RJ   R   R   RK   RL   RM   R=   RN   RO   R>   RT   RQ   t   get_visibleRG   RS   R   R<   RV   RW   (   R   R   R   t   special_labelsR'  R,  t   orig_buffert   orig_generatorR\   t
   vis_buffert   vis_generatorRZ   t
   body_startt   original_post
   first_passR   (    (    s   /usr/lib/python2.6/mailbox.pyR     s        
  
 (# 
 ((   R  R  R  R  R  R  R  N(   R^   R_   R`   t	   frozensetR&  Ra   R>   R   R   R!   R%   R)   R+   R*   R  R   R   R   R   R   (    (    (    s   /usr/lib/python2.6/mailbox.pyR   b  s    													c           B   s,   e  Z d  Z d d  Z d   Z d   Z RS(   s0   Message with mailbox-format-specific properties.c         C   s   t  | t i i  o; |  i t i |   t  | t  o | i |   q n t  | t  o |  i t i	 |   ne t
 | d  o |  i t i |   n; | d j o t i i i |   n t d t |    d S(   s   Initialize a Message instance.RG   s   Invalid message type: %sN(   RI   RJ   R   R   t   _become_messaget   copyt   deepcopyt   _explain_toRS   t   message_from_stringR<   t   message_from_fileRa   R   RV   RW   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   B  s    c         C   s)   x" d
 D] } | i  | |  i  | <q Wd	 S(   s0   Assume the non-format-specific state of message.t   _headerst	   _unixfromt   _payloadt   _charsett   preamblet   epiloguet   defectst   _default_typeN(   R?  R@  RA  RB  RC  RD  RE  RF  (   t   __dict__(   R   R   Rs   (    (    s   /usr/lib/python2.6/mailbox.pyR9  Q  s     c         C   s%   t  | t  o d St d   d S(   s:   Copy format-specific state to message insofar as possible.Ns    Cannot convert to specified type(   RI   R   RV   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR<  W  s    N(   R^   R_   R`   Ra   R   R9  R<  (    (    (    s   /usr/lib/python2.6/mailbox.pyR   ?  s   	c           B   s}   e  Z d  Z d d  Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z d
   Z d   Z d   Z RS(   s)   Message with Maildir-specific properties.c         C   s5   d |  _  d |  _ t i   |  _ t i |  |  d S(   s%   Initialize a MaildirMessage instance.Rd   RH   N(   t   _subdirt   _infoR   t   _dateR   R   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   b  s    		c         C   s   |  i  S(   s   Return 'new' or 'cur'.(   RH  (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRo   i  s    c         C   s;   | d j p | d j o | |  _  n t d |   d S(   s   Set subdir to 'new' or 'cur'.Rd   Re   s!   subdir must be 'new' or 'cur': %sN(   RH  R  (   R   R~   (    (    s   /usr/lib/python2.6/mailbox.pyR   m  s    c         C   s'   |  i  i d  o |  i  d Sd Sd S(   s*   Return as a string the flags that are set.s   2,i   RH   N(   RI  RU   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyt	   get_flagst  s    c         C   s    d d i  t |   |  _ d S(   s)   Set the given flags and unset all others.s   2,RH   N(   Rh   R   RI  (   R   t   flags(    (    s   /usr/lib/python2.6/mailbox.pyt	   set_flags{  s    c         C   s0   |  i  d i t |  i    t |  B  d S(   s.   Set the given flag(s) without changing others.RH   N(   RM  Rh   R   RK  (   R   t   flag(    (    s   /usr/lib/python2.6/mailbox.pyt   add_flag  s    c         C   sG   |  i    d j o0 |  i d i t |  i     t |    n d S(   s7   Unset the given string flag(s) without changing others.RH   N(   RK  RM  Rh   R   (   R   RN  (    (    s   /usr/lib/python2.6/mailbox.pyt   remove_flag  s    c         C   s   |  i  S(   s<   Return delivery date of message, in seconds since the epoch.(   RJ  (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR|     s    c         C   s=   y t  |  |  _ Wn# t j
 o t d |   n Xd S(   s9   Set delivery date of message, in seconds since the epoch.s   can't convert to float: %sN(   t   floatRJ  R  RV   (   R   t   date(    (    s   /usr/lib/python2.6/mailbox.pyR     s    c         C   s   |  i  S(   s%   Get the message's "info" as a string.(   RI  (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRq     s    c         C   s7   t  | t  o | |  _ n t d t |    d S(   s    Set the message's "info" string.s   info must be a string: %sN(   RI   RS   RI  RV   RW   (   R   t   info(    (    s   /usr/lib/python2.6/mailbox.pyR     s    c         C   sz  t  | t  o= | i |  i    | i |  i    | i |  i    n*t  | t  o t	 |  i    } d | j o | i
 d  n |  i   d j o | i
 d  n d | j o | i
 d  n d | j o | i
 d  n d | j o | i
 d  n | i d	 t i |  i     nIt  | t  op t	 |  i    } d | j o | i d
  n d | j o | i d  n d | j o | i d  qvn t  | t  o t	 |  i    } d | j o | i d
  n d | j o | i d  n d | j o | i d  n d | j o | i d  qvn+ t  | t  o n t d t |    d S(   s;   Copy Maildir-specific state to message insofar as possible.t   St   RRe   t   Ot   Tt   Dt   Ft   As   MAILER-DAEMONR  t   repliedt   flaggedR  R  t   PR  s$   Cannot convert to specified type: %sN(   RI   R	   RM  RK  R   Ro   R   R|   R   R   RO  R   R   R   R   R   R   t	   add_labelR   RV   RW   (   R   R   RL  (    (    s   /usr/lib/python2.6/mailbox.pyR<    sN    #N(   R^   R_   R`   Ra   R   Ro   R   RK  RM  RO  RP  R|   R   Rq   R   R<  (    (    (    s   /usr/lib/python2.6/mailbox.pyR	   _  s   										R   c           B   s\   e  Z d  Z d	 d  Z d   Z d	 d  Z d   Z d   Z d   Z	 d   Z
 d   Z RS(
   s/   Message with mbox- or MMDF-specific properties.c         C   s|   |  i  d t  t | t i i  oB | i   } | d j	 o% | i d  o |  i  | d  qh n t i	 |  |  d S(   s'   Initialize an mboxMMDFMessage instance.s   MAILER-DAEMONs   From i   N(
   R   R>   RI   RJ   R   R   R   Ra   RU   R   (   R   R   t   unixfrom(    (    s   /usr/lib/python2.6/mailbox.pyR     s    c         C   s   |  i  S(   s    Return contents of "From " line.(   t   _from(   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    c         C   sR   | d j	 o8 | t j o t i   } n | d t i |  7} n | |  _ d S(   s>   Set "From " line, formatting and appending time_ if specified.R.  N(   Ra   R>   R   R   R   R`  (   R   R   t   time_(    (    s   /usr/lib/python2.6/mailbox.pyR     s
    c         C   s    |  i  d d  |  i  d d  S(   s*   Return as a string the flags that are set.t   StatusRH   s   X-Status(   R(   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRK    s    c         C   s  t  |  } d
 \ } } x6 d D]. } | | j o | | 7} | i |  q q Wx6 d D]. } | | j o | | 7} | i |  qX qX W| d i t |   7} y |  i d |  Wn# t j
 o |  i d |  n Xy |  i d |  Wn# t j
 o |  i d |  n Xd	 S(   s)   Set the given flags and unset all others.RH   RU  RV  RX  RY  RZ  Rb  s   X-StatusN(   RH   RH   (   RU  RV  (   RX  RY  RZ  (   R   R!   Rh   R   t   replace_headerR#   t
   add_header(   R   RL  t   status_flagst   xstatus_flagsRN  (    (    s   /usr/lib/python2.6/mailbox.pyRM    s*     
 
c         C   s0   |  i  d i t |  i    t |  B  d S(   s.   Set the given flag(s) without changing others.RH   N(   RM  Rh   R   RK  (   R   RN  (    (    s   /usr/lib/python2.6/mailbox.pyRO    s    c         C   sN   d |  j p d |  j o0 |  i  d i t |  i    t |    n d S(   s7   Unset the given string flag(s) without changing others.Rb  s   X-StatusRH   N(   RM  Rh   R   RK  (   R   RN  (    (    s   /usr/lib/python2.6/mailbox.pyRP     s    c      	   C   s  t  | t  ot |  i    } d | j o | i d  n d | j o | i d  n d | j o | i d  n d | j o | i d  n d | j o | i d  n | d	 =| d
 =d i |  i   i   d  } y& | i	 t
 i t i | d    Wqt t f j
 o qXnt  | t  o* | i |  i    | i |  i    nGt  | t  o~ t |  i    } d | j o | i d  n d | j o | i d  n d | j o | i d  n | d	 =| d
 =n t  | t  o~ t |  i    } d | j o | i d  n d | j o | i d  n d | j o | i d  n | d	 =| d
 =n+ t  | t  o n t d t |    d S(   sA   Copy mbox- or MMDF-specific state to message insofar as possible.RV  Re   RY  RZ  RU  RT  RX  RW  t   statuss   x-statusR.  is   %a %b %d %H:%M:%S %YR  R[  R\  R  R  s$   Cannot convert to specified type: %sN(   RI   R	   R   RK  R   RO  Rh   R   Rt   R   t   calendart   timegmR   t   strptimeR  t   OverflowErrorR   RM  R   R   R   R   R^  R   RV   RW   (   R   R   RL  t
   maybe_date(    (    s   /usr/lib/python2.6/mailbox.pyR<    s^    	N(   R^   R_   R`   Ra   R   R   R   RK  RM  RO  RP  R<  (    (    (    s   /usr/lib/python2.6/mailbox.pyR     s   						c           B   s   e  Z d  Z RS(   s&   Message with mbox-specific properties.(   R^   R_   R`   (    (    (    s   /usr/lib/python2.6/mailbox.pyR
   9  s   c           B   sG   e  Z d  Z d d  Z d   Z d   Z d   Z d   Z d   Z	 RS(   s$   Message with MH-specific properties.c         C   s   g  |  _  t i |  |  d S(   s!   Initialize an MHMessage instance.N(   t
   _sequencesR   R   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   @  s    	c         C   s   |  i  S(   s4   Return a list of sequences that include the message.(   Rm  (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   E  s    c         C   s   t  |  |  _ d S(   s3   Set the list of sequences that include the message.N(   R-   Rm  (   R   R
  (    (    s   /usr/lib/python2.6/mailbox.pyR  I  s    c         C   sR   t  | t  o( | |  i j o |  i i |  qN n t d t |    d S(   s8   Add sequence to list of sequences including the message.s   sequence must be a string: %sN(   RI   RS   Rm  R   RV   RW   (   R   R  (    (    s   /usr/lib/python2.6/mailbox.pyR   M  s    c         C   s.   y |  i  i |  Wn t j
 o n Xd S(   sA   Remove sequence from the list of sequences including the message.N(   Rm  R!   R  (   R   R  (    (    s   /usr/lib/python2.6/mailbox.pyt   remove_sequenceU  s    c         C   s  t  | t  o t |  i    } d | j o | i d  n | i d  | i d  d | j o | i d  n d | j o | i d  qnRt  | t  o} t |  i    } d | j o | i d  n | i d	  d | j o | i d  n d | j o | i d
  qn t  | t  o( x |  i   D] } | i |  qDWn t  | t	  oR t |  i    } d | j o | i
 d  n d | j o | i
 d  qn+ t  | t  o n t d t |    d S(   s6   Copy MH-specific state to message insofar as possible.R  Re   RT  R\  RY  R[  RU  t   RORV  RZ  R  s$   Cannot convert to specified type: %sN(   RI   R	   R   R   R   RO  R   R   R   R   R^  R   RV   RW   (   R   R   R
  R  (    (    s   /usr/lib/python2.6/mailbox.pyR<  \  sB     N(
   R^   R_   R`   Ra   R   R   R  R   Rn  R<  (    (    (    s   /usr/lib/python2.6/mailbox.pyR   =  s   				c           B   sb   e  Z d  Z d
 d  Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d	   Z RS(   s'   Message with Babyl-specific properties.c         C   s)   g  |  _  t   |  _ t i |  |  d S(   s$   Initialize an BabylMessage instance.N(   R  R   t   _visibleR   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    	c         C   s   |  i  S(   s'   Return a list of labels on the message.(   R  (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR    s    c         C   s   t  |  |  _ d S(   s&   Set the list of labels on the message.N(   R-   R  (   R   R'  (    (    s   /usr/lib/python2.6/mailbox.pyR!    s    c         C   sR   t  | t  o( | |  i j o |  i i |  qN n t d t |    d S(   s+   Add label to list of labels on the message.s   label must be a string: %sN(   RI   RS   R  R   RV   RW   (   R   R,  (    (    s   /usr/lib/python2.6/mailbox.pyR^    s    c         C   s.   y |  i  i |  Wn t j
 o n Xd S(   s4   Remove label from the list of labels on the message.N(   R  R!   R  (   R   R,  (    (    s   /usr/lib/python2.6/mailbox.pyt   remove_label  s    c         C   s   t  |  i  S(   s3   Return a Message representation of visible headers.(   R   Rp  (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR/    s    c         C   s   t  |  |  _ d S(   s2   Set the Message representation of visible headers.N(   R   Rp  (   R   t   visible(    (    s   /usr/lib/python2.6/mailbox.pyR     s    c         C   s   xI |  i  i   D]8 } | |  j o |  i  i | |  |  q |  i  | =q Wx@ d D]8 } | |  j o% | |  i  j o |  | |  i  | <qS qS Wd S(	   s9   Update and/or sensibly generate a set of visible headers.t   Datet   Froms   Reply-Tot   Tot   CCt   SubjectN(   Rs  Rt  s   Reply-ToRu  Rv  Rw  (   Rp  R.   Rc  (   R   t   header(    (    s   /usr/lib/python2.6/mailbox.pyt   update_visible  s      c         C   s-  t  | t  o t |  i    } d | j o | i d  n | i d  | i d  d | j p d | j o | i d  n d | j o | i d  n d	 | j o | i d
  q)net  | t  o} t |  i    } d | j o | i d  n | i d  d	 | j o | i d  n d | j o | i d  q)n t  | t  oR t |  i    } d | j o | i d  n d | j o | i d  q)nv t  | t	  o; | i
 |  i    xO |  i   D] } | i |  qWn+ t  | t  o n t d t |    d S(   s9   Copy Babyl-specific state to message insofar as possible.R  Re   RT  R  R  R]  R  RU  R  RW  Ro  RV  RX  RZ  R[  s$   Cannot convert to specified type: %sN(   RI   R	   R   R  R   RO  R   R   R   R   R   R/  R^  R   RV   RW   (   R   R   R'  R,  (    (    s   /usr/lib/python2.6/mailbox.pyR<    sH     N(   R^   R_   R`   Ra   R   R  R!  R^  Rq  R/  R   Ry  R<  (    (    (    s   /usr/lib/python2.6/mailbox.pyR     s   							c           B   s   e  Z d  Z RS(   s&   Message with MMDF-specific properties.(   R^   R_   R`   (    (    (    s   /usr/lib/python2.6/mailbox.pyR     s   R   c           B   sn   e  Z d  Z d d  Z d d  Z d d  Z d d  Z d   Z d   Z	 d d  Z
 d	   Z d
   Z RS(   s   A read-only wrapper of a file.c         C   s6   | |  _  | d j o | i   |  _ n
 | |  _ d S(   s   Initialize a _ProxyFile.N(   R   Ra   R   t   _pos(   R   R   t   pos(    (    s   /usr/lib/python2.6/mailbox.pyR     s    	c         C   s   |  i  | |  i i  S(   s   Read bytes.(   t   _readR   RG   (   R   t   size(    (    s   /usr/lib/python2.6/mailbox.pyRG     s    c         C   s   |  i  | |  i i  S(   s   Read a line.(   R|  R   RT   (   R   R}  (    (    s   /usr/lib/python2.6/mailbox.pyRT     s    c         C   s[   g  } xN |  D]F } | i  |  | d j	 o& | t |  8} | d j o PqS q q W| S(   s   Read multiple lines.i    N(   R   Ra   R   (   R   t   sizehintR9   R\   (    (    s   /usr/lib/python2.6/mailbox.pyt	   readlines  s     c         C   s   t  |  i d  S(   s   Iterate over lines.RH   (   R   RT   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR1     s    c         C   s   |  i  S(   s   Return the position.(   Rz  (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    i    c         C   sM   | d j o |  i  i |  i  n |  i  i | |  |  i  i   |  _ d S(   s   Change position.i   N(   R   RO   Rz  R   (   R   t   offsett   whence(    (    s   /usr/lib/python2.6/mailbox.pyRO   
  s    c         C   s
   |  `  d S(   s   Close the file.N(   R   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRF     s    c         C   sL   | d j o
 d } n |  i i |  i  | |  } |  i i   |  _ | S(   s"   Read size bytes using read_method.iN(   Ra   R   RO   Rz  R   (   R   R}  t   read_methodR9   (    (    s   /usr/lib/python2.6/mailbox.pyR|    s    
N(   R^   R_   R`   Ra   R   RG   RT   R  R1   R   RO   RF   R|  (    (    (    s   /usr/lib/python2.6/mailbox.pyR     s   			R   c           B   s;   e  Z d  Z d d d  Z d   Z d d  Z d   Z RS(   s&   A read-only wrapper of part of a file.c         C   s)   t  i |  | |  | |  _ | |  _ d S(   s   Initialize a _PartialFile.N(   R   R   t   _startt   _stop(   R   R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   "  s    	c         C   s   t  i |   |  i S(   s*   Return the position with respect to start.(   R   R   R  (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   (  s    i    c         C   s]   | d j o |  i  |  _ d } n$ | d j o |  i |  _ d } n t i |  | |  d S(   s8   Change position, possibly with respect to start or stop.i    i   i   N(   R  Rz  R  R   RO   (   R   R  R  (    (    s   /usr/lib/python2.6/mailbox.pyRO   ,  s    

c         C   sf   |  i  |  i } | d j o d S| d j p | d j  p | | j o
 | } n t i |  | |  S(   s;   Read size bytes using read_method, honoring start and stop.i    RH   N(   R  Rz  Ra   R   R|  (   R   R}  R  t	   remaining(    (    s   /usr/lib/python2.6/mailbox.pyR|  6  s    '
N(   R^   R_   R`   Ra   R   R   RO   R|  (    (    (    s   /usr/lib/python2.6/mailbox.pyR     s
   	
c         C   s  t  } yt op y t i |  t i t i B Wq t j
 o? } | i t i t i f j o t	 d |  i
   q|   q Xn | o8y! t |  i
 d  } | i   Wn0 t j
 o$ } | i t i j o d S  n Xyh t t d  o4 t i | i
 |  i
 d  t } t i | i
  n! t i | i
 |  i
 d  t } Wqt j
 oi } | i t i j p# t i
 d j o: | i t i j o' t i | i
  t	 d |  i
   q  qXn WnG t o t i |  t i  n | o t i |  i
 d  n   n Xd S(   s(   Lock file f using lockf and dot locking.s   lockf: lock unavailable: %ss   .lockNRl   R   s   dot lock unavailable: %s(   R=   t   fcntlt   lockft   LOCK_EXt   LOCK_NBR   Rw   t   EAGAINR   Ry   Rs   R   RF   R<   R   Rl   R>   R  Ru   Rv   Rx   R!   t   LOCK_UN(   R   R   t   dotlock_doneR   t   pre_lock(    (    s   /usr/lib/python2.6/mailbox.pyR   @  sL    
#c         C   sT   t  o t  i |  t  i  n t i i |  i d  o t i |  i d  n d S(   s*   Unlock file f using lockf and dot locking.s   .lockN(   R  R  R  R   R   Rf   Rs   R!   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   m  s    c         C   sL   t  i |  t  i t  i Bt  i Bd  } z t |  d  SWd t  i |  Xd S(   sC   Create a file if it doesn't exist and open for reading and writing.i  s   rb+N(   R   R   R   R   t   O_RDWRRF   (   R   t   fd(    (    s   /usr/lib/python2.6/mailbox.pyR   t  s    &c         C   s2   t  d |  t t i    t i   t i   f  S(   sB   Create a temp file based on path and open for reading and writing.s   %s.%s.%s.%s(   R   R   R   R   R   R   R   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   |  s    	c         C   s5   |  i    t t d  o t i |  i    n d S(   s0   Ensure changes to file f are physically on disk.t   fsyncN(   RC   R<   R   R  t   fileno(   R   (    (    s   /usr/lib/python2.6/mailbox.pyt   _sync_flush  s    
c         C   s   t  |   |  i   d S(   s:   Close file f, ensuring all changes are physically on disk.N(   R  RF   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRn     s    
t   _Mailboxc           B   s)   e  Z e i d   Z d   Z d   Z RS(   c         C   s   | |  _  d |  _ | |  _ d  S(   Ni    (   t   fpt   seekpR   (   R   R  R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    		c         C   s   t  |  i d   S(   N(   R   R   Ra   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR1     s    c         C   s   x |  i  i |  i  y |  i   Wn& t j
 o |  i  i   |  _ d  SX|  i  i   } |  i   |  i  i   |  _ } | | j o Pq q |  i t	 |  i  | |   S(   N(
   R  RO   R  t   _search_startt   EOFErrorR   Ra   t   _search_endR   R   (   R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    
(   R^   R_   R   R   R   R1   R   (    (    (    s   /usr/lib/python2.6/mailbox.pyR    s   	c           B   s>   e  Z d    Z d   Z d Z d Z d   Z d   Z e Z	 RS(   c         C   so   xh |  i  i   } |  i  i   } | p
 t  n | d  d j o% |  i |  o |  i  i |  d  Sq d  S(   Ni   s   From (   R  R   RT   R  t   _isrealfromlineRO   (   R   R{  R\   (    (    s   /usr/lib/python2.6/mailbox.pyR    s    
!c         C   sw   |  i  i   xc |  i  i   } |  i  i   } | p d  S| d  d j o% |  i |  o |  i  i |  d  Sq d  S(   Ni   s   From (   R  RT   R   R  RO   (   R   R{  R\   (    (    s   /usr/lib/python2.6/mailbox.pyR    s    !sa   From \s*[^\s]+\s+\w\w\w\s+\w\w\w\s+\d?\d\s+\d?\d:\d\d(:\d\d)?(\s+[^\s]+)?\s+\d\d\d\d\s*[^\s]*\s*$c         C   s?   |  i  p% d d  k } | i |  i  |  _  n |  i  i |  S(   Ni(   t   _regexpt   ret   compilet   _fromlinepatternt   match(   R   R\   R  (    (    s   /usr/lib/python2.6/mailbox.pyt   _strict_isrealfromline  s    
c         C   s   t  S(   N(   R>   (   R   R\   (    (    s   /usr/lib/python2.6/mailbox.pyt   _portable_isrealfromline  s    N(
   R^   R_   R  R  R  Ra   R  R  R  R  (    (    (    s   /usr/lib/python2.6/mailbox.pyR     s   	
	$		c           B   s   e  Z e i Z RS(    (   R^   R_   R   R  R  (    (    (    s   /usr/lib/python2.6/mailbox.pyR     s   c           B   s   e  Z d    Z d   Z RS(   c         C   s@   x9 |  i  i   } | p
 t  n | d  d j o d  Sq d  S(   Ni   s   
(   R  RT   R  (   R   R\   (    (    s   /usr/lib/python2.6/mailbox.pyR    s    
c         C   sV   xO |  i  i   } |  i  i   } | p d  S| d j o |  i  i |  d  Sq d  S(   Ns   
(   R  R   RT   RO   (   R   R{  R\   (    (    s   /usr/lib/python2.6/mailbox.pyR    s    (   R^   R_   R  R  (    (    (    s   /usr/lib/python2.6/mailbox.pyR     s   	c           B   s)   e  Z e i d   Z d   Z d   Z RS(   c         C   s   d d  k  } | i d  } | |  _ t i |  i  } t | i |  } t t |  } | i	   t t
 |  |  _ |  i i   | |  _ d  S(   Nis   ^[1-9][0-9]*$(   R  R  Rk   R   R   t   filterR  t   mapt   longt   sortRS   t   boxest   reverseR   (   R   Rk   R   R  t   patR-   (    (    s   /usr/lib/python2.6/mailbox.pyR   	  s    	
c         C   s   t  |  i d   S(   N(   R   R   Ra   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR1     s    c         C   sx   |  i  p d  S|  i  i   } t t i i |  i |   } |  i |  } y | | _	 Wn t
 t f j
 o n X| S(   N(   R  Ra   R:   R   R   R   Rh   Rk   R   t	   _mh_msgnot   AttributeErrorRV   (   R   t   fnR  R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    
(   R^   R_   R   R   R   R1   R   (    (    (    s   /usr/lib/python2.6/mailbox.pyR     s   	c           B   s   e  Z d    Z d   Z RS(   c         C   s<   x5 |  i  i   } | p
 t  n | d j o d  Sq d  S(   Ns   *** EOOH ***
(   R  RT   R  (   R   R\   (    (    s   /usr/lib/python2.6/mailbox.pyR  +  s    
c         C   sc   x\ |  i  i   } |  i  i   } | p d  S| d j p | d j o |  i  i |  d  Sq d  S(   Ns   
s   (   R  R   RT   RO   (   R   R{  R\   (    (    s   /usr/lib/python2.6/mailbox.pyR  3  s    (   R^   R_   R  R  (    (    (    s   /usr/lib/python2.6/mailbox.pyR   )  s   	t   Errorc           B   s   e  Z d  Z RS(   s"   Raised for module-specific errors.(   R^   R_   R`   (    (    (    s   /usr/lib/python2.6/mailbox.pyR  @  s   Ri   c           B   s   e  Z d  Z RS(   s:   The specified mailbox does not exist and won't be created.(   R^   R_   R`   (    (    (    s   /usr/lib/python2.6/mailbox.pyRi   C  s   R   c           B   s   e  Z d  Z RS(   s>   The specified mailbox is not empty and deletion was requested.(   R^   R_   R`   (    (    (    s   /usr/lib/python2.6/mailbox.pyR   F  s   Ry   c           B   s   e  Z d  Z RS(   s)   Another process caused an action to fail.(   R^   R_   R`   (    (    (    s   /usr/lib/python2.6/mailbox.pyRy   I  s   R  c           B   s   e  Z d  Z RS(   s)   A file appears to have an invalid format.(   R^   R_   R`   (    (    (    s   /usr/lib/python2.6/mailbox.pyR  L  s   (>   R`   t   sysR   R   Rh  R   Rw   R:  RJ   t   email.messaget   email.generatorRK   t   platformt   ImportErrorR  Ra   t   warningst   catch_warningst   __exit__t	   __enter__t   py3kwarningt   filterwarningst   DeprecationWarningR   t   __all__R   R   R   R   R   R   R   R   R   R   R	   R   R
   R   R   R   R   R   R>   R   R   R   R   R  Rn   R  R   R   R   R   R   t	   ExceptionR  Ri   R   Ry   R  (    (    (    s   /usr/lib/python2.6/mailbox.pyt   <module>   s~   

	 8"- 5 koF];!-					
B"