
2mKc        !   @   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 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 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' d.   Z( d/   Z) d0   Z* d1 f  d2     YZ+ d e+ f d3     YZ, d e, f d4     YZ- d e+ f d5     YZ. d f  d6     YZ/ d e+ f d7     YZ0 d8 e1 f d9     YZ2 d: e2 f d;     YZ3 d< e2 f d=     YZ4 d> e2 f d?     YZ5 d@ e2 f dA     YZ6 d S(B   sD   Read/write support for Maildir, mbox, MH, Babyl, and MMDF mailboxes.iNt   os2emxt   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   add,   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   remove0   s    c         C   s   |  i  |  d  S(   N(   R    (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyt   __delitem__4   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   discard7   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__>   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   getB   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%   I   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(   P   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_stringT   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)   X   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   iterkeys\   s    c         C   s   t  |  i    S(   s   Return a list of keys.(   t   listR+   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyt   keys`   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
   itervaluesd   s     c         C   s
   |  i    S(   N(   R/   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyt   __iter__m   s    c         C   s   t  |  i    S(   s,   Return a list of messages. Memory intensive.(   R,   R/   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyt   valuesp   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	   iteritemst   s     c         C   s   t  |  i    S(   s9   Return a list of (key, message) tuples. Memory intensive.(   R,   R2   (   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(   R4   (   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+   R9   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.R2   R3   s   No message with key(s)N(   t   hasattrR2   R3   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   writeRF   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-   R/   R0   R1   R2   R3   R4   R5   R6   R7   R9   R:   RA   RB   RC   RD   RE   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.NRG   Rc   i    t   links$   Name clash with existing message: %s(   t   _create_tmpR\   t   _sync_closeRH   R   t
   get_subdirt   colont   get_infoR   R   t   basenamet   namet   splitRg   R   R;   Rk   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   Rg   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"   Ru   Rv   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.iRG   N(   R   R   RH   R   R   R   Rj   Ro   Rs   R#   Rg   R   Rt   Ry   Rz   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   Rg   R   R   R   RE   Rs   t
   set_subdirRo   t   set_infot   set_datet   getmtime(   R   R   t   subpatht   ft   msgR}   Rr   (    (    s   /usr/lib/python2.6/mailbox.pyR(   9  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   Rg   R   R   RF   RE   (   R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR*   K  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   Rg   R   R   t
   _ProxyFile(   R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR)   S  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   _refreshRi   R   R"   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR+   X  s    

 c         C   s   |  i    | |  i j S(   s9   Return True if the keyed message exists, False otherwise.(   R   Ri   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR4   b  s    
c         C   s   |  i    t |  i  S(   s*   Return a count of messages in the mailbox.(   R   t   lenRi   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR6   g  s    
c         C   s   d S(   s"   Write any pending changes to disk.N(    (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRB   l  s    c         C   s   d S(   s   Lock the mailbox.N(    (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRC   p  s    c         C   s   d S(   s#   Unlock the mailbox if it is locked.N(    (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRD   t  s    c         C   s   d S(   s   Flush and close the mailbox.N(    (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRE   x  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   isdirRg   t   append(   R   R8   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   Rg   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   Rg   R   R   R   Re   RE   R   t   O_CREATt   O_WRONLY(   R   R   R   R8   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   Rc   Rd   i   i    s   Folder contains message(s): %sRb   s%   Folder contains subdirectory '%s': %st   topdownN(   R   R   Rg   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".Rb   i@ N(   t   timeR   R   R   Rg   R   Rz   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   \057Ra   s   \072s   %s.M%sP%sQ%s.%si   g    .ARb   s&   Name clash prevented file creation: %sN(   R   t   sockett   gethostnameRP   t   intR   t   getpidR   t   _countR   Rg   R   t   statRu   Rv   R   t   _create_carefullyRw   Rx   (   R   R   t   hostnameR   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyRl     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.Rc   Rd   i    N(   s   news   cur(	   Ri   R   R   Rg   R   R   R   Rs   Ro   (   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   Re   Rg   R   Ri   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   StopIterationR`   R"   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s     (    R]   R^   R_   Ro   t   rfc822R   R=   R   R   R    R#   R$   R(   R*   R)   R+   R4   R6   RB   RC   RD   RE   R   R   R   R   R   R   Rl   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   IOErrorRv   R   Rh   t   EACCESt   _fileR`   Ri   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_messageRi   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   Ri   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   Ri   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   Ri   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   Ri   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR4   (  s    
c         C   s   |  i    t |  i  S(   s*   Return a count of messages in the mailbox.(   R   R   Ri   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR6   -  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.pyRC   2  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.pyRD   8  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   RG   t   os2s   rb+t   dotlock("   R   Ri   R`   t   AssertionErrorR   RN   t   tellR   Rx   t   _create_temporaryR   t   _pre_mailbox_hookt   sortedR-   t   _pre_message_hookR=   RF   t   minRO   t   _post_message_hookRE   R   R    Rr   Rm   Rt   Ru   Rv   Rw   R   R   R<   R   R   (
   R   t   cur_lent   new_filet   new_tocR   t   startt   stopt	   new_startRY   R   (    (    s   /usr/lib/python2.6/mailbox.pyRB   >  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   x  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(   RB   R   RD   R   RE   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRE     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(   Ri   R`   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   RN   R   t   _install_messageR   RB   R   R   (   R   R   t   offsets(    (    s   /usr/lib/python2.6/mailbox.pyR     s    N(   R]   R^   R_   R`   R=   R   R   R    R$   R+   R4   R6   RC   RD   RB   R   R   R   RE   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.RG   s   
i   (   R   R   RN   RS   RP   R   RQ   RF   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   RN   RS   RF   R   RP   R   RQ   (   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   RN   RS   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   RG   s   From MAILER-DAEMON %sN(   R`   RH   RR   RT   t   findt   _mboxMMDFMessaget   get_fromRI   R   R   t   get_unixfromR   t   asctimet   gmtimeR   R   RO   R   RQ   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   RO   R   RQ   (   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 RG   N(   R   RN   R=   R   RS   RT   R   R   R   RQ   t   dictt	   enumeratet   zipRi   R   R   (   R   t   startst   stopst   line_posR[   (    (    s   /usr/lib/python2.6/mailbox.pyR     s      
N(	   R]   R^   R_   R=   R   R`   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(   RO   R   RQ   (   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(   RO   R   RQ   (   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   RG   i   N(   R   RN   R=   RS   R   RT   R   RQ   R   R   R   R   R   Ri   R   R   (   R   R   R   t   next_posR   R[   (    (    s   /usr/lib/python2.6/mailbox.pyR     s6      
N(	   R]   R^   R_   R`   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   Re   R   Rf   RE   R   Rg   R   t   O_EXCLR   Rh   R<   R   (   R   R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   +  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   Rg   R   RR   R   R   R   R\   RH   R
   t   _dump_sequencesR   Rm   (   R   R   R-   t   new_keyR   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   7  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   Rg   R   RR   R   R   Rv   R   R"   R   R   RE   R    R   (   R   R   R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR    N  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   Rg   R   RR   R   R   Rv   R   R"   R   R   RE   R   t   O_TRUNCR\   RH   R
   R   R   Rm   (   R   R   R   R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR$   d  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   Rg   R   RR   R   Rv   R   R"   R   R
   R   RE   t   get_sequencesR2   t   add_sequence(   R   R   R   R   R   Rr   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   Rg   R   RR   R   Rv   R   R"   R   RF   R   RE   (   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   Rg   R   RR   R   Rv   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   Re   Rg   R   RR   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR4     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.pyR6     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   Rg   R   R   R   R=   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRC     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   Rm   R<   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRD     s
    
c         C   s   d S(   s&   Write any pending changes to the disk.N(    (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRB     s    c         C   s   |  i  o |  i   n d S(   s   Flush and close the mailbox.N(   R   RD   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRE     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   Rg   R   (   R   R8   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   Rg   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   Rg   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   Rg   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   Ra   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   Rg   R   t   setR-   Rs   R   R   R   RA   t   rangeR   R   t
   ValueErrort   FormatErrort   rstripRE   (   R   t   resultsR   t   all_keysR[   Rr   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   Rg   R   RE   Rr   R   R   R2   R   RO   R`   R<   R   R   R=   RR   Rm   (   R   t	   sequencesR   Rr   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   Rk   N(   R   R+   R   R;   R   Rk   R   Rg   R   RR   t   unlinkRt   R   R   R3   t   indexR  (	   R   R	  R
  t   changesR   Rr   R   t   oldRc   (    (    s   /usr/lib/python2.6/mailbox.pyt   pack4  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   R2   R   R  R  (   R   R   R   t   pending_sequencest   all_sequencesRr   R   t   sequence(    (    s   /usr/lib/python2.6/mailbox.pyR   M  s      N(   R]   R^   R_   R`   R=   R   R   R    R$   R(   R*   R)   R+   R4   R6   RC   RD   RB   RE   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   b  s    c         C   s=   t  i |  |  } t | t  o | i   |  i | <n | S(   s$   Add message and return assigned key.(   R   R   RH   R   t
   get_labelsR  (   R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   g  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    n  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$   RH   R   R  R  (   R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR$   t  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 ***RG   s   
(   R   R   RN   RS   RJ   R=   R   RQ   RO   RP   RF   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(   z  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 ***RG   s   
(   R   R   RN   RS   RJ   R=   R   RQ   RO   RP   R  RF   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   
(   RJ   R*   RP   R   RQ   (   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  R1   RA   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   ,RG   s   i   N(   R   RN   R=   RS   R   R   RQ   R   R   Rs   t   stripR   R   R   Ri   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(   RO   R   RQ   Rg   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(   RO   R   RQ   (   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(   RO   R   RQ   (   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   
RG   s   *** EOOH ***i   s   

i   iRS   s   Invalid message type: %s(   R   R   RH   R   R  R%  R   RO   R   RQ   RI   R   R   RJ   RK   RL   R<   RM   RN   R=   RS   RP   t   get_visibleRF   RR   R   R;   RU   RV   (   R   R   R   t   special_labelsR&  R+  t   orig_buffert   orig_generatorR[   t
   vis_buffert   vis_generatorRY   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%  R`   R=   R   R   R    R$   R(   R*   R)   R  R   R   R   R   R   (    (    (    s   /usr/lib/python2.6/mailbox.pyR   \  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.RF   s   Invalid message type: %sN(   RH   RI   R   R   t   _become_messaget   copyt   deepcopyt   _explain_toRR   t   message_from_stringR;   t   message_from_fileR`   R   RU   RV   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   <  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?  R@  RA  RB  RC  RD  RE  (   t   __dict__(   R   R   Rr   (    (    s   /usr/lib/python2.6/mailbox.pyR8  K  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(   RH   R   RU   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR;  Q  s    N(   R]   R^   R_   R`   R   R8  R;  (    (    (    s   /usr/lib/python2.6/mailbox.pyR   9  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.Rc   RG   N(   t   _subdirt   _infoR   t   _dateR   R   (   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   \  s    		c         C   s   |  i  S(   s   Return 'new' or 'cur'.(   RG  (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRn   c  s    c         C   s;   | d j p | d j o | |  _  n t d |   d S(   s   Set subdir to 'new' or 'cur'.Rc   Rd   s!   subdir must be 'new' or 'cur': %sN(   RG  R  (   R   R}   (    (    s   /usr/lib/python2.6/mailbox.pyR   g  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   RG   N(   RH  RT   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyt	   get_flagsn  s    c         C   s    d d i  t |   |  _ d S(   s)   Set the given flags and unset all others.s   2,RG   N(   Rg   R   RH  (   R   t   flags(    (    s   /usr/lib/python2.6/mailbox.pyt	   set_flagsu  s    c         C   s0   |  i  d i t |  i    t |  B  d S(   s.   Set the given flag(s) without changing others.RG   N(   RL  Rg   R   RJ  (   R   t   flag(    (    s   /usr/lib/python2.6/mailbox.pyt   add_flagy  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.RG   N(   RJ  RL  Rg   R   (   R   RM  (    (    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.(   RI  (   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   floatRI  R  RU   (   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.(   RH  (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRp     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(   RH   RR   RH  RU   RV   (   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   RRd   t   Ot   Tt   Dt   Ft   As   MAILER-DAEMONR  t   repliedt   flaggedR  R  t   PR  s$   Cannot convert to specified type: %sN(   RH   R   RL  RJ  R   Rn   R   R{   R   R   RN  R   R   R   R
   R   R   t	   add_labelR   RU   RV   (   R   R   RK  (    (    s   /usr/lib/python2.6/mailbox.pyR;    sN    #N(   R]   R^   R_   R`   R   Rn   R   RJ  RL  RN  RO  R{   R   Rp   R   R;  (    (    (    s   /usr/lib/python2.6/mailbox.pyR   Y  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=   RH   RI   R   R   R   R`   RT   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(   R`   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   StatusRG   s   X-Status(   R'   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRJ    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.RG   RT  RU  RW  RX  RY  Ra  s   X-StatusN(   RG   RG   (   RT  RU  (   RW  RX  RY  (   R   R    Rg   R   t   replace_headerR"   t
   add_header(   R   RK  t   status_flagst   xstatus_flagsRM  (    (    s   /usr/lib/python2.6/mailbox.pyRL    s*     
 
c         C   s0   |  i  d i t |  i    t |  B  d S(   s.   Set the given flag(s) without changing others.RG   N(   RL  Rg   R   RJ  (   R   RM  (    (    s   /usr/lib/python2.6/mailbox.pyRN    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.Ra  s   X-StatusRG   N(   RL  Rg   R   RJ  (   R   RM  (    (    s   /usr/lib/python2.6/mailbox.pyRO    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.RU  Rd   RX  RY  RT  RS  RW  RV  t   statuss   x-statusR-  is   %a %b %d %H:%M:%S %YR  RZ  R[  R  R  s$   Cannot convert to specified type: %sN(   RH   R   R   RJ  R   RN  Rg   R   Rs   R   t   calendart   timegmR   t   strptimeR  t   OverflowErrorR   RL  R   R
   R   R   R]  R   RU   RV   (   R   R   RK  t
   maybe_date(    (    s   /usr/lib/python2.6/mailbox.pyR;    s^    	N(   R]   R^   R_   R`   R   R   R   RJ  RL  RN  RO  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	   3  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.(   Rl  (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   ?  s    c         C   s   t  |  |  _ d S(   s3   Set the list of sequences that include the message.N(   R,   Rl  (   R   R	  (    (    s   /usr/lib/python2.6/mailbox.pyR  C  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(   RH   RR   Rl  R   RU   RV   (   R   R  (    (    s   /usr/lib/python2.6/mailbox.pyR   G  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(   Rl  R    R  (   R   R  (    (    s   /usr/lib/python2.6/mailbox.pyt   remove_sequenceO  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  Rd   RS  R[  RX  RZ  RT  t   RORU  RY  R  s$   Cannot convert to specified type: %sN(   RH   R   R   R   R   RN  R   R
   R   R   R]  R   RU   RV   (   R   R   R	  R  (    (    s   /usr/lib/python2.6/mailbox.pyR;  V  sB     N(
   R]   R^   R_   R`   R   R   R  R   Rm  R;  (    (    (    s   /usr/lib/python2.6/mailbox.pyR
   7  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(   RH   RR   R  R   RU   RV   (   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   Ro  (   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   Ro  (   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(   Rr  Rs  s   Reply-ToRt  Ru  Rv  (   Ro  R-   Rb  (   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  Rd   RS  R  R  R\  R  RT  R  RV  Rn  RU  RW  RY  RZ  s$   Cannot convert to specified type: %sN(   RH   R   R   R  R   RN  R   R
   R   R   R  R.  R]  R   RU   RV   (   R   R   R&  R+  (    (    s   /usr/lib/python2.6/mailbox.pyR;    sH     N(   R]   R^   R_   R`   R   R  R   R]  Rp  R.  R  Rx  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   R`   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   RF   (   R   t   size(    (    s   /usr/lib/python2.6/mailbox.pyRF     s    c         C   s   |  i  | |  i i  S(   s   Read a line.(   R{  R   RS   (   R   R|  (    (    s   /usr/lib/python2.6/mailbox.pyRS     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   R`   R   (   R   t   sizehintR8   R[   (    (    s   /usr/lib/python2.6/mailbox.pyt	   readlines  s     c         C   s   t  |  i d  S(   s   Iterate over lines.RG   (   R   RS   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR0     s    c         C   s   |  i  S(   s   Return the position.(   Ry  (   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   RN   Ry  R   (   R   t   offsett   whence(    (    s   /usr/lib/python2.6/mailbox.pyRN     s    c         C   s
   |  `  d S(   s   Close the file.N(   R   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRE     s    c         C   sL   | d j o
 d } n |  i i |  i  | |  } |  i i   |  _ | S(   s"   Read size bytes using read_method.iN(   R`   R   RN   Ry  R   (   R   R|  t   read_methodR8   (    (    s   /usr/lib/python2.6/mailbox.pyR{    s    
N(   R]   R^   R_   R`   R   RF   RS   R~  R0   R   RN   RE   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  Ry  R  R   RN   (   R   R  R  (    (    s   /usr/lib/python2.6/mailbox.pyRN   &  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    RG   N(   R  Ry  R`   R   R{  (   R   R|  R  t	   remaining(    (    s   /usr/lib/python2.6/mailbox.pyR{  0  s    '
N(   R]   R^   R_   R`   R   R   RN   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   .lockNRk   R   s   dot lock unavailable: %s(   R<   t   fcntlt   lockft   LOCK_EXt   LOCK_NBR   Rv   t   EAGAINR   Rx   Rr   R   RE   R;   R   Rk   R=   R  Rt   Ru   Rw   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   Re   Rr   R    (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR   g  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_RDWRRE   (   R   t   fd(    (    s   /usr/lib/python2.6/mailbox.pyR   n  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   v  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(   RB   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  RE   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyRm     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   R`   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR0     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  RN   R  t   _search_startt   EOFErrorR   R`   t   _search_endR   R   (   R   R   R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    
(   R]   R^   R   R   R   R0   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   RS   R  t   _isrealfromlineRN   (   R   Rz  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  RS   R   R  RN   (   R   Rz  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  R`   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  RS   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   RS   RN   (   R   Rz  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  Rj   R   R   t   filterR  t   mapt   longt   sortRR   t   boxest   reverseR   (   R   Rj   R   R  t   patR,   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    	
c         C   s   t  |  i d   S(   N(   R   R   R`   (   R   (    (    s   /usr/lib/python2.6/mailbox.pyR0     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  R`   R9   R   R   R   Rg   Rj   R   t	   _mh_msgnot   AttributeErrorRU   (   R   t   fnR  R   (    (    s   /usr/lib/python2.6/mailbox.pyR     s    
(   R]   R^   R   R   R   R0   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  RS   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   RS   RN   (   R   Rz  R[   (    (    s   /usr/lib/python2.6/mailbox.pyR  -  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   Rh   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.pyRh   =  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   @  s   Rx   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.pyRx   C  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  F  s   (7   R_   t   sysR   R   Rg  R   Rv   R9  RI   t   email.messaget   email.generatorR   RJ   t   platformt   ImportErrorR  R`   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  Rm   R  R   R   R   R   R   t	   ExceptionR  Rh   R   Rx   R  (    (    (    s   /usr/lib/python2.6/mailbox.pyt   <module>   st   
	 8"- 5 koF];!-					
B"