
\Kc        !   @   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     YZ/ d8 e0 f d9     YZ1 d: e1 f d;     YZ2 d< e1 f d=     YZ3 d> e1 f d?     YZ4 d@ e1 f dA     YZ5 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.5/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.5/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.5/mailbox.pyt   remove0   s    c         C   s   |  i  |  d  S(   N(   R    (   R   R   (    (    s   /usr/lib/python2.5/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.5/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.5/mailbox.pyt   __setitem__>   s    c         C   s/   y |  i  |  SWn t j
 o | Sn 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.5/mailbox.pyt   getB   s    c         C   s5   |  i  p |  i |  Sn |  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.5/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.5/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.5/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.5/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.5/mailbox.pyt   iterkeys\   s    c         C   s   t  |  i    S(   s   Return a list of keys.(   t   listR+   (   R   (    (    s   /usr/lib/python2.5/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.5/mailbox.pyt
   itervaluesd   s     c         C   s
   |  i    S(   N(   R/   (   R   (    (    s   /usr/lib/python2.5/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.5/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.5/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.5/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.5/mailbox.pyt   has_key   s    c         C   s   |  i  |  S(   N(   R4   (   R   R   (    (    s   /usr/lib/python2.5/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.5/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.5/mailbox.pyt   clear   s     c         C   s9   y |  | } Wn t  j
 o | Sn X|  i |  | S(   s3   Delete the keyed message and return it, or default.(   R"   R#   (   R   R   R&   t   result(    (    s   /usr/lib/python2.5/mailbox.pyt   pop   s    	c         C   s:   x3 |  i    D] } | |  i |  f Sq Wt 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.5/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.5/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.5/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.5/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.5/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.5/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   t   StringIOt	   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.5/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.5/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.5/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   Rb   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   splitRf   R   R;   Rj   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.5/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   Rf   R   t   _lookup(   R   R   (    (    s   /usr/lib/python2.5/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"   Rt   Ru   t   ENOENT(   R   R   R   (    (    s   /usr/lib/python2.5/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   Ri   Rn   Rr   R#   Rf   R   Rs   Rx   Ry   Rz   (
   R   R   R   t   old_subpatht   temp_keyt   temp_subpatht   dominant_subpathR|   R}   t   new_path(    (    s   /usr/lib/python2.5/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   Rf   R   R   R   RE   Rr   t
   set_subdirRn   t   set_infot   set_datet   getmtime(   R   R   t   subpatht   ft   msgR|   Rq   (    (    s   /usr/lib/python2.5/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   Rf   R   R   RF   RE   (   R   R   R   (    (    s   /usr/lib/python2.5/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   Rf   R   R   t
   _ProxyFile(   R   R   R   (    (    s   /usr/lib/python2.5/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   _refreshRh   R   R"   (   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyR+   X  s    

 c         C   s   |  i    | |  i j S(   s9   Return True if the keyed message exists, False otherwise.(   R   Rh   (   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyR4   b  s    
c         C   s   |  i    t |  i  S(   s*   Return a count of messages in the mailbox.(   R   t   lenRh   (   R   (    (    s   /usr/lib/python2.5/mailbox.pyR6   g  s    
c         C   s   d S(   s"   Write any pending changes to disk.N(    (   R   (    (    s   /usr/lib/python2.5/mailbox.pyRB   l  s    c         C   s   d S(   s   Lock the mailbox.N(    (   R   (    (    s   /usr/lib/python2.5/mailbox.pyRC   p  s    c         C   s   d S(   s#   Unlock the mailbox if it is locked.N(    (   R   (    (    s   /usr/lib/python2.5/mailbox.pyRD   t  s    c         C   s   d S(   s   Flush and close the mailbox.N(    (   R   (    (    s   /usr/lib/python2.5/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   isdirRf   t   append(   R   R8   t   entry(    (    s   /usr/lib/python2.5/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   Rf   R   R   R<   (   R   t   folder(    (    s   /usr/lib/python2.5/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
 B  n | S(   s>   Create a folder and return a Maildir instance representing it.R   R   t   maildirfolder(   R   R   Rf   R   R   R   Rd   RE   R   t   O_CREATt   O_WRONLY(   R   R   R   R8   t   maildirfolder_path(    (    s   /usr/lib/python2.5/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   Rb   Rc   i   i    s   Folder contains message(s): %sRa   s%   Folder contains subdirectory '%s': %st   topdownN(   R   R   Rf   R   R   R   t   NotEmptyErrorR   t   walkR<   R    t   rmdir(   R   R   R   R   t   roott   dirst   files(    (    s   /usr/lib/python2.5/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".Ra   i@ N(   t   timeR   R   R   Rf   R   Ry   R    (   R   t   nowR   R   (    (    s   /usr/lib/python2.5/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   \057R`   s   \072s   %s.M%sP%sQ%s.%si   g    .ARa   s&   Name clash prevented file creation: %sN(   R   t   sockett   gethostnameRO   t   intR   t   getpidR   t   _countR   Rf   R   t   statRt   Ru   R   t   _create_carefullyRv   Rw   (   R   R   t   hostnameR~   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyRk     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.Rb   Rc   i    N(   s   news   cur(	   Rh   R   R   Rf   R   R   R   Rr   Rn   (   R   R|   t   subdir_pathR   t   pR~   (    (    s   /usr/lib/python2.5/mailbox.pyR     s    	  c         C   s   y? t  i i t  i i |  i |  i |   o |  i | Sn 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   Rd   Rf   R   Rh   R"   R   (   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyR     s    ,
c         C   sz   t  |  d  p |  i   |  _ n xP t oH y |  |  i i   SWq& t j
 o d Sq& 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.5/mailbox.pyR     s     (    R\   R]   R^   Rn   t   rfc822R   R=   R   R   R    R#   R$   R(   R*   R)   R+   R4   R6   RB   RC   RD   RE   R   R   R   R   R   R   Rk   R   R   R   (    (    (    s   /usr/lib/python2.5/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 S(   s!   Initialize a single-file mailbox.s   rb+s   wb+R   i    N(   R   R   R   R   t   IOErrorRu   R   Rg   t   EACCESt   _fileR_   Rh   t	   _next_keyR<   t   _pendingt   _locked(   R   R   R   R   R   R   (    (    s   /usr/lib/python2.5/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_messageRh   R   R=   R   (   R   R   (    (    s   /usr/lib/python2.5/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   Rh   R=   R   (   R   R   (    (    s   /usr/lib/python2.5/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   Rh   R=   R   (   R   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyR$     s    c         c   s-   |  i    x |  i i   D] } | Vq Wd S(   s   Return an iterator over keys.N(   R   Rh   R-   (   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyR+      s    
 c         C   s   |  i    | |  i j S(   s9   Return True if the keyed message exists, False otherwise.(   R   Rh   (   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyR4   &  s    
c         C   s   |  i    t |  i  S(   s*   Return a count of messages in the mailbox.(   R   R   Rh   (   R   (    (    s   /usr/lib/python2.5/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.5/mailbox.pyRC   0  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.5/mailbox.pyRD   6  s    
c   	      C   s6  |  i  p d Sn |  i   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 |  qW 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  q  n Xt |  i d  |  _ | |  _ t |  _  |  i o t |  i d t n d S(   s"   Write any pending changes to disk.Ni   RG   t   os2s   rb+t   dotlock(   R   R   t   _create_temporaryR   t   _pre_mailbox_hookt   sortedRh   R-   R   RM   t   _pre_message_hookt   tellR=   RF   t   minRN   t   _post_message_hookRE   R   R    Rq   Rl   Rs   Rt   Ru   Rv   R   R   R<   R   R   (	   R   t   new_filet   new_tocR   t   startt   stopt	   new_startRX   R   (    (    s   /usr/lib/python2.5/mailbox.pyRB   <  sR    

  

#		
c         C   s   d S(   s,   Called before writing the mailbox to file f.N(    (   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyR   h  s    c         C   s   d S(   s-   Called before writing each message to file f.N(    (   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyR   l  s    c         C   s   d S(   s,   Called after writing each message to file f.N(    (   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyR   p  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.5/mailbox.pyRE   t  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(   Rh   R_   t   _generate_tocR"   (   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyR   {  s    c         C   sS   |  i  i d d  |  i |  i   |  i |  } |  i |  i   |  i  i   | S(   s;   Append message to mailbox and return (start, stop) offsets.i    i   (   R   RM   R   t   _install_messageR   RB   (   R   R   t   offsets(    (    s   /usr/lib/python2.5/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.5/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   RM   RR   RO   R   RP   RF   R   t   _message_factoryt   set_from(   R   R   R   R   t	   from_linet   stringR   (    (    s   /usr/lib/python2.5/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   RM   RR   RF   R   RO   R   RP   (   R   R   t   from_R   R   R   (    (    s   /usr/lib/python2.5/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   RM   RR   t   _PartialFileR   (   R   R   R   R   R   (    (    s   /usr/lib/python2.5/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   RQ   RS   t   findt   _mboxMMDFMessaget   get_fromRI   R   t   get_unixfromR   t   asctimet   gmtimeR   R   RN   R   RP   R[   t   _mangle_from_(   R   R   R   t   newlineR   R   (    (    s   /usr/lib/python2.5/mailbox.pyR     s&     

(
   R\   R]   R^   R=   R   R(   R<   R*   R)   R   (    (    (    s   /usr/lib/python2.5/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.5/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   RN   R   RP   (   R   R   (    (    s   /usr/lib/python2.5/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  |  _ d S(   s0   Generate key-to-(start, stop) table of contents.i    s   From RG   N(   R   RM   R=   R   RR   RS   R   R   R   RP   t   dictt	   enumeratet   zipRh   R   (   R   t   startst   stopst   line_posRZ   (    (    s   /usr/lib/python2.5/mailbox.pyR     s     
N(	   R\   R]   R^   R=   R   R_   R   R   R   (    (    (    s   /usr/lib/python2.5/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.5/mailbox.pyR     s    	c         C   s   | i  d t i  d S(   s-   Called before writing each message to file f.s   N(   RN   R   RP   (   R   R   (    (    s   /usr/lib/python2.5/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(   RN   R   RP   (   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyR     s    c         C   sI  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  |  _ d S(   s0   Generate key-to-(start, stop) table of contents.i    s   RG   N(   R   RM   R=   RR   R   RS   R   RP   R   R   R   R   R   Rh   R   (   R   R   R   t   next_posR   RZ   (    (    s   /usr/lib/python2.5/mailbox.pyR     s2      
N(	   R\   R]   R^   R_   R=   R   R   R   R   (    (    (    s   /usr/lib/python2.5/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   Rd   R   Re   RE   R   Rf   R   t   O_EXCLR   Rg   R<   R   (   R   R   R   R   (    (    s   /usr/lib/python2.5/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   Rf   R   RQ   R   R   R   R[   RH   R
   t   _dump_sequencesR   Rl   (   R   R   R-   t   new_keyR   R   (    (    s   /usr/lib/python2.5/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   Rf   R   RQ   R   R   Ru   R   R"   R   R   RE   R    R   (   R   R   R   R   R   (    (    s   /usr/lib/python2.5/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 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   Rf   R   RQ   R   R   Ru   R   R"   R   R   RE   R   t   O_TRUNCR[   RH   R
   R   R   Rl   (   R   R   R   R   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyR$   P  s$    
#
c         C   s7  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   Xx8 |  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   Rf   R   RQ   R   Ru   R   R"   R   R
   R   RE   t   get_sequencest   add_sequence(   R   R   R   R   R   Rq   t   key_list(    (    s   /usr/lib/python2.5/mailbox.pyR(   h  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   Rf   R   RQ   R   Ru   R   R"   R   RF   R   RE   (   R   R   R   R   (    (    s   /usr/lib/python2.5/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   Rf   R   RQ   R   Ru   R   R"   R   (   R   R   R   R   (    (    s   /usr/lib/python2.5/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.5/mailbox.pys	   <genexpr>  s   	 (   t   iterR   R   R   R   (   R   (    (    s   /usr/lib/python2.5/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   Rd   Rf   R   RQ   (   R   R   (    (    s   /usr/lib/python2.5/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.5/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   Rf   R   R   R   R=   (   R   (    (    s   /usr/lib/python2.5/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   Rl   R<   (   R   (    (    s   /usr/lib/python2.5/mailbox.pyRD     s
    
c         C   s   d S(   s&   Write any pending changes to the disk.N(    (   R   (    (    s   /usr/lib/python2.5/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.5/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   Rf   R   (   R   R8   R   (    (    s   /usr/lib/python2.5/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   Rf   R   R   R<   (   R   R   (    (    s   /usr/lib/python2.5/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   Rf   R   R   (   R   R   (    (    s   /usr/lib/python2.5/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   Rf   R   R   R    R   R   (   R   R   R   t   entries(    (    s   /usr/lib/python2.5/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   R`   c         s   s   x |  ] } t  |  Vq Wd  S(   N(   R   (   R   t   x(    (    s   /usr/lib/python2.5/mailbox.pys	   <genexpr>  s   	 t   -i   i    s"   Invalid sequence specification: %sN(   R   R   R   Rf   R   t   setR-   Rr   R   R   R   RA   t   rangeR   R   t
   ValueErrort   FormatErrort   rstripRE   (   R   t   resultsR   t   all_keysRZ   Rq   t   contentsR-   t   specR   R   t   _[1]R   (    (    s   /usr/lib/python2.5/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   Rf   R   RE   Rq   R   R   R2   R   RN   R_   R<   R   R   R=   RQ   Rl   (   R   t	   sequencesR   Rq   R-   t   prevt
   completingR   (    (    s   /usr/lib/python2.5/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 Sn xU | i   D]G \ } } x8 | D]0 \ } } | | j o | | | i |  <qnqnWq[W|  i |  d S(   s?   Re-name messages to eliminate numbering gaps. Invalidates keys.i    i   Rj   N(   R   R+   R   R;   R   Rj   R   Rf   R   RQ   t   unlinkRs   R   R   R3   t   indexR  (	   R   R  R  t   changesR   Rq   R   t   oldRb   (    (    s   /usr/lib/python2.5/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   R2   R   R
  R  (   R   R   R   t   pending_sequencest   all_sequencesRq   R   t   sequence(    (    s   /usr/lib/python2.5/mailbox.pyR   9  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.5/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.5/mailbox.pyR   N  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.5/mailbox.pyR   S  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.5/mailbox.pyR    Z  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.5/mailbox.pyR$   `  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   RM   RR   RJ   R=   R   RP   RN   RO   RF   R   R   t   getvaluet   set_visibleR  t
   set_labels(	   R   R   R   R   t   original_headersRZ   t   visible_headerst   bodyR   (    (    s   /usr/lib/python2.5/mailbox.pyR(   f  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   RM   RR   RJ   R=   R   RP   RN   RO   R  RF   R   (   R   R   R   R   R  RZ   (    (    s   /usr/lib/python2.5/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*   RO   R   RP   (   R   R   (    (    s   /usr/lib/python2.5/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.5/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  |  _ d S(   s0   Generate key-to-(start, stop) table of contents.i    s   i   t   ,RG   s   N(   R   RM   R=   RR   R   R   RP   R   R   Rr   t   stripR   R   R   Rh   R  R   (
   R   R   R   R   t   label_listsR   RZ   R  t   labelR"  (    (    s   /usr/lib/python2.5/mailbox.pyR     s4      -!"
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(   RN   R   RP   Rf   R  (   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyR     s    	c         C   s   | i  d t i  d S(   s-   Called before writing each message to file f.s   N(   RN   R   RP   (   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyR     s    c         C   s   | i  t i d  d S(   s,   Called after writing each message to file f.s   N(   RN   R   RP   (   R   R   (    (    s   /usr/lib/python2.5/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   iRR   s   Invalid message type: %s(   R   R   RH   R   R  R!  R   RN   R   RP   RI   R   RJ   RK   R<   RL   RM   R=   RR   RO   t   get_visibleRF   RQ   R   R;   RT   RU   (   R   R   R   t   special_labelsR"  R'  t   orig_buffert   orig_generatorRZ   t
   vis_buffert   vis_generatorRX   t
   body_startt   original_post
   first_passR   (    (    s   /usr/lib/python2.5/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.5/mailbox.pyR   H  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   t   _become_messaget   copyt   deepcopyt   _explain_toRQ   t   message_from_stringR;   t   message_from_fileR_   R   RT   RU   (   R   R   (    (    s   /usr/lib/python2.5/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<  R=  R>  R?  R@  RA  (   t   __dict__(   R   R   Rq   (    (    s   /usr/lib/python2.5/mailbox.pyR4  5  s     c         C   s(   t  | t  o d Sn t d   d S(   s:   Copy format-specific state to message insofar as possible.Ns    Cannot convert to specified type(   RH   R   RT   (   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyR7  ;  s    N(   R\   R]   R^   R_   R   R4  R7  (    (    (    s   /usr/lib/python2.5/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.Rb   RG   N(   t   _subdirt   _infoR   t   _dateR   R   (   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyR   F  s    		c         C   s   |  i  S(   s   Return 'new' or 'cur'.(   RC  (   R   (    (    s   /usr/lib/python2.5/mailbox.pyRm   M  s    c         C   s;   | d j p | d j o | |  _  n t d |   d S(   s   Set subdir to 'new' or 'cur'.Rb   Rc   s!   subdir must be 'new' or 'cur': %sN(   RC  R   (   R   R|   (    (    s   /usr/lib/python2.5/mailbox.pyR   Q  s    c         C   s*   |  i  i d  o |  i  d Sn d Sd S(   s*   Return as a string the flags that are set.s   2,i   RG   N(   RD  RS   (   R   (    (    s   /usr/lib/python2.5/mailbox.pyt	   get_flagsX  s    c         C   s    d d i  t |   |  _ d S(   s)   Set the given flags and unset all others.s   2,RG   N(   Rf   R   RD  (   R   t   flags(    (    s   /usr/lib/python2.5/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.RG   N(   RH  Rf   R   RF  (   R   t   flag(    (    s   /usr/lib/python2.5/mailbox.pyt   add_flagc  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(   RF  RH  Rf   R   (   R   RI  (    (    s   /usr/lib/python2.5/mailbox.pyt   remove_flagg  s    c         C   s   |  i  S(   s<   Return delivery date of message, in seconds since the epoch.(   RE  (   R   (    (    s   /usr/lib/python2.5/mailbox.pyRz   l  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   floatRE  R   RT   (   R   t   date(    (    s   /usr/lib/python2.5/mailbox.pyR   p  s    c         C   s   |  i  S(   s%   Get the message's "info" as a string.(   RD  (   R   (    (    s   /usr/lib/python2.5/mailbox.pyRo   w  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   RQ   RD  RT   RU   (   R   t   info(    (    s   /usr/lib/python2.5/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   RRc   t   Ot   Tt   Dt   Ft   As   MAILER-DAEMONR  t   repliedt   flaggedR  R  t   PR  s$   Cannot convert to specified type: %sN(   RH   R   RH  RF  R   Rm   R   Rz   R   R   RJ  R   R   R   R
   R   R   t	   add_labelR   RT   RU   (   R   R   RG  (    (    s   /usr/lib/python2.5/mailbox.pyR7    sN    #N(   R\   R]   R^   R_   R   Rm   R   RF  RH  RJ  RK  Rz   R   Ro   R   R7  (    (    (    s   /usr/lib/python2.5/mailbox.pyR   C  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_   RS   R   (   R   R   t   unixfrom(    (    s   /usr/lib/python2.5/mailbox.pyR     s    c         C   s   |  i  S(   s    Return contents of "From " line.(   t   _from(   R   (    (    s   /usr/lib/python2.5/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.5/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.5/mailbox.pyRF    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   RP  RQ  RS  RT  RU  R]  s   X-StatusN(   RG   RG   (   RP  RQ  (   RS  RT  RU  (   R   R    Rf   R   t   replace_headerR"   t
   add_header(   R   RG  t   status_flagst   xstatus_flagsRI  (    (    s   /usr/lib/python2.5/mailbox.pyRH    s*     
 
c         C   s0   |  i  d i t |  i    t |  B  d S(   s.   Set the given flag(s) without changing others.RG   N(   RH  Rf   R   RF  (   R   RI  (    (    s   /usr/lib/python2.5/mailbox.pyRJ    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.R]  s   X-StatusRG   N(   RH  Rf   R   RF  (   R   RI  (    (    s   /usr/lib/python2.5/mailbox.pyRK    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.RQ  Rc   RT  RU  RP  RO  RS  RR  t   statuss   x-statusR)  is   %a %b %d %H:%M:%S %YR  RV  RW  R  R  s$   Cannot convert to specified type: %sN(   RH   R   R   RF  R   RJ  Rf   R   Rr   R   t   calendart   timegmR   t   strptimeR   t   OverflowErrorR   RH  R   R
   R   R   RY  R   RT   RU   (   R   R   RG  t
   maybe_date(    (    s   /usr/lib/python2.5/mailbox.pyR7    s^    	N(   R\   R]   R^   R_   R   R   R   RF  RH  RJ  RK  R7  (    (    (    s   /usr/lib/python2.5/mailbox.pyR     s   						c           B   s   e  Z d  Z RS(   s&   Message with mbox-specific properties.(   R\   R]   R^   (    (    (    s   /usr/lib/python2.5/mailbox.pyR	     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.5/mailbox.pyR   $  s    	c         C   s   |  i  S(   s4   Return a list of sequences that include the message.(   Rh  (   R   (    (    s   /usr/lib/python2.5/mailbox.pyR   )  s    c         C   s   t  |  |  _ d S(   s3   Set the list of sequences that include the message.N(   R,   Rh  (   R   R  (    (    s   /usr/lib/python2.5/mailbox.pyR  -  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   RQ   Rh  R   RT   RU   (   R   R  (    (    s   /usr/lib/python2.5/mailbox.pyR   1  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(   Rh  R    R   (   R   R  (    (    s   /usr/lib/python2.5/mailbox.pyt   remove_sequence9  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  Rc   RO  RW  RT  RV  RP  t   RORQ  RU  R  s$   Cannot convert to specified type: %sN(   RH   R   R   R   R   RJ  R   R
   R   R   RY  R   RT   RU   (   R   R   R  R  (    (    s   /usr/lib/python2.5/mailbox.pyR7  @  sB     N(
   R\   R]   R^   R_   R   R   R  R   Ri  R7  (    (    (    s   /usr/lib/python2.5/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.5/mailbox.pyR   j  s    	c         C   s   |  i  S(   s'   Return a list of labels on the message.(   R  (   R   (    (    s   /usr/lib/python2.5/mailbox.pyR  p  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.5/mailbox.pyR  t  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   RQ   R  R   RT   RU   (   R   R'  (    (    s   /usr/lib/python2.5/mailbox.pyRY  x  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.5/mailbox.pyt   remove_label  s    c         C   s   t  |  i  S(   s3   Return a Message representation of visible headers.(   R   Rk  (   R   (    (    s   /usr/lib/python2.5/mailbox.pyR*    s    c         C   s   t  |  |  _ d S(   s2   Set the Message representation of visible headers.N(   R   Rk  (   R   t   visible(    (    s   /usr/lib/python2.5/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(   Rn  Ro  s   Reply-ToRp  Rq  Rr  (   Rk  R-   R^  (   R   t   header(    (    s   /usr/lib/python2.5/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  Rc   RO  R  R  RX  R  RP  R  RR  Rj  RQ  RS  RU  RV  s$   Cannot convert to specified type: %sN(   RH   R   R   R  R   RJ  R   R
   R   R   R  R*  RY  R   RT   RU   (   R   R   R"  R'  (    (    s   /usr/lib/python2.5/mailbox.pyR7    sH     N(   R\   R]   R^   R_   R   R  R  RY  Rl  R*  R  Rt  R7  (    (    (    s   /usr/lib/python2.5/mailbox.pyR   g  s   							c           B   s   e  Z d  Z RS(   s&   Message with MMDF-specific properties.(   R\   R]   R^   (    (    (    s   /usr/lib/python2.5/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.5/mailbox.pyR     s    	c         C   s   |  i  | |  i i  S(   s   Read bytes.(   t   _readR   RF   (   R   t   size(    (    s   /usr/lib/python2.5/mailbox.pyRF     s    c         C   s   |  i  | |  i i  S(   s   Read a line.(   Rw  R   RR   (   R   Rx  (    (    s   /usr/lib/python2.5/mailbox.pyRR     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   RZ   (    (    s   /usr/lib/python2.5/mailbox.pyt	   readlines  s     c         C   s   t  |  i d  S(   s   Iterate over lines.RG   (   R   RR   (   R   (    (    s   /usr/lib/python2.5/mailbox.pyR0     s    c         C   s   |  i  S(   s   Return the position.(   Ru  (   R   (    (    s   /usr/lib/python2.5/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   RM   Ru  R   (   R   t   offsett   whence(    (    s   /usr/lib/python2.5/mailbox.pyRM     s    c         C   s
   |  `  d S(   s   Close the file.N(   R   (   R   (    (    s   /usr/lib/python2.5/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   RM   Ru  R   (   R   Rx  t   read_methodR8   (    (    s   /usr/lib/python2.5/mailbox.pyRw    s    
N(   R\   R]   R^   R_   R   RF   RR   Rz  R0   R   RM   RE   Rw  (    (    (    s   /usr/lib/python2.5/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.5/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.5/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~  Ru  R  R   RM   (   R   R{  R|  (    (    s   /usr/lib/python2.5/mailbox.pyRM     s    

c         C   si   |  i  |  i } | d j o d Sn | 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  Ru  R_   R   Rw  (   R   Rx  R}  t	   remaining(    (    s   /usr/lib/python2.5/mailbox.pyRw    s    '
N(   R\   R]   R^   R_   R   R   RM   Rw  (    (    (    s   /usr/lib/python2.5/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 | o;y! t |  i
 d  } | i   Wn3 t j
 o' } | i t i j o d Sq   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   .lockNRj   R   s   dot lock unavailable: %s(   R<   t   fcntlt   lockft   LOCK_EXt   LOCK_NBR   Ru   t   EAGAINR   Rw   Rq   R   RE   R;   R   Rj   R=   R	  Rs   Rt   Rv   R    t   LOCK_UN(   R   R   t   dotlock_doneR   t   pre_lock(    (    s   /usr/lib/python2.5/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   Rd   Rq   R    (   R   (    (    s   /usr/lib/python2.5/mailbox.pyR   Q  s    c         C   sI   t  i |  t  i t  i Bt  i B } z t |  d  SWd t  i |  Xd S(   sC   Create a file if it doesn't exist and open for reading and writing.s   rb+N(   R   R   R   R   t   O_RDWRRE   (   R   t   fd(    (    s   /usr/lib/python2.5/mailbox.pyR   X  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.5/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(   RB   R;   R   R  t   fileno(   R   (    (    s   /usr/lib/python2.5/mailbox.pyt   _sync_flushf  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.5/mailbox.pyRl   l  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.5/mailbox.pyR   x  s    		c         C   s   t  |  i d   S(   N(   R   R   R_   (   R   (    (    s   /usr/lib/python2.5/mailbox.pyR0   }  s    c         C   s   x |  i  i |  i  y |  i   Wn) t j
 o |  i  i   |  _ d  Sn X|  i  i   } |  i   |  i  i   |  _ } | | j o Pq q |  i t	 |  i  | |   S(   N(
   R  RM   R  t   _search_startt   EOFErrorR   R_   t   _search_endR   R   (   R   R   R   (    (    s   /usr/lib/python2.5/mailbox.pyR     s    	
(   R\   R]   R   R   R   R0   R   (    (    (    s   /usr/lib/python2.5/mailbox.pyR  v  s   	c           B   s>   e  Z d    Z d   Z d Z d Z d   Z d   Z e Z	 RS(   c         C   sr   xk |  i  i   } |  i  i   } | p
 t  n | d  d j o( |  i |  o |  i  i |  d  Sq q d  S(   Ni   s   From (   R  R   RR   R  t   _isrealfromlineRM   (   R   Rv  RZ   (    (    s   /usr/lib/python2.5/mailbox.pyR    s    
!c         C   s}   |  i  i   xi |  i  i   } |  i  i   } | p d  Sn | d  d j o( |  i |  o |  i  i |  d  Sq q d  S(   Ni   s   From (   R  RR   R   R  RM   (   R   Rv  RZ   (    (    s   /usr/lib/python2.5/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   RZ   R  (    (    s   /usr/lib/python2.5/mailbox.pyt   _strict_isrealfromline  s    
c         C   s   t  S(   N(   R=   (   R   RZ   (    (    s   /usr/lib/python2.5/mailbox.pyt   _portable_isrealfromline  s    N(
   R\   R]   R  R  R  R_   R  R  R  R  (    (    (    s   /usr/lib/python2.5/mailbox.pyR     s   	
	$		c           B   s   e  Z e i Z RS(    (   R\   R]   R   R  R  (    (    (    s   /usr/lib/python2.5/mailbox.pyR     s   c           B   s   e  Z d    Z d   Z RS(   c         C   sC   x< |  i  i   } | p
 t  n | d  d j o d  Sq q d  S(   Ni   s   
(   R  RR   R  (   R   RZ   (    (    s   /usr/lib/python2.5/mailbox.pyR    s    
c         C   s\   xU |  i  i   } |  i  i   } | p d  Sn | d j o |  i  i |  d  Sq q d  S(   Ns   
(   R  R   RR   RM   (   R   Rv  RZ   (    (    s   /usr/lib/python2.5/mailbox.pyR    s    (   R\   R]   R  R  (    (    (    s   /usr/lib/python2.5/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  Ri   R   R   t   filterR  t   mapt   longt   sortRQ   t   boxest   reverseR   (   R   Ri   R   R  t   patR,   (    (    s   /usr/lib/python2.5/mailbox.pyR     s    	
c         C   s   t  |  i d   S(   N(   R   R   R_   (   R   (    (    s   /usr/lib/python2.5/mailbox.pyR0     s    c         C   s{   |  i  p d  Sn |  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   Rf   Ri   R   t	   _mh_msgnot   AttributeErrorRT   (   R   t   fnR  R   (    (    s   /usr/lib/python2.5/mailbox.pyR      s    
(   R\   R]   R   R   R   R0   R   (    (    (    s   /usr/lib/python2.5/mailbox.pyR     s   	c           B   s   e  Z d    Z d   Z RS(   c         C   s?   x8 |  i  i   } | p
 t  n | d j o d  Sq q d  S(   Ns   *** EOOH ***
(   R  RR   R  (   R   RZ   (    (    s   /usr/lib/python2.5/mailbox.pyR    s    
c         C   si   xb |  i  i   } |  i  i   } | p d  Sn | d j p | d j o |  i  i |  d  Sq q d  S(   Ns   
s   (   R  R   RR   RM   (   R   Rv  RZ   (    (    s   /usr/lib/python2.5/mailbox.pyR    s    (   R\   R]   R  R  (    (    (    s   /usr/lib/python2.5/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.5/mailbox.pyR  $  s   Rg   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.5/mailbox.pyRg   '  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.5/mailbox.pyR   *  s   Rw   c           B   s   e  Z d  Z RS(   s)   Another process caused an action to fail.(   R\   R]   R^   (    (    (    s   /usr/lib/python2.5/mailbox.pyRw   -  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.5/mailbox.pyR   0  s   (6   R^   t   sysR   R   Rc  R   Ru   R5  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  Rl   R  R   R   R   R   R   t	   ExceptionR  Rg   R   Rw   R   (    (    (    s   /usr/lib/python2.5/mailbox.pys   <module>   st   
	 8!+ 5 koF];!-					
B"