;
Êâ"Ic               @   sÚ  d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l	 Z d d l
 Z d d l Z y* e j d k o
 e ‚ n d d l Z Wn e k
 o e Z Yn Xd d d d d d	 d
 d d d d d g Z Gd „  d ƒ Z Gd „  d e ƒ Z Gd „  d e ƒ Z Gd „  d e ƒ Z Gd „  d e ƒ Z Gd „  d	 e ƒ Z Gd „  d e ƒ Z Gd „  d e ƒ Z Gd „  d
 e j j ƒ Z Gd „  d e ƒ Z Gd „  d e ƒ Z Gd „  d e ƒ Z Gd „  d e ƒ Z Gd  „  d e ƒ Z Gd! „  d e ƒ Z  Gd" „  d# ƒ Z! Gd$ „  d% e! ƒ Z" e# d& „ Z$ d' „  Z% d( „  Z& d) „  Z' d* „  Z( d+ „  Z) Gd, „  d- e* ƒ Z+ Gd. „  d/ e+ ƒ Z, Gd0 „  d1 e+ ƒ Z- Gd2 „  d3 e+ ƒ Z. Gd4 „  d5 e+ ƒ Z/ d S(6   uD   Read/write support for Maildir, mbox, MH, Babyl, and MMDF mailboxes.i    Nu   os2emxu   Mailboxu   Maildiru   mboxu   MHu   Babylu   MMDFu   Messageu   MaildirMessageu   mboxMessageu	   MHMessageu   BabylMessageu   MMDFMessagec             B   s+  |  Ee  Z d  Z d d 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 d „ Z d „  Z d d „ Z d „  Z d „  Z d „  Z d „  Z  d  d „ Z" d S(!   u*   A group of messages in a particular place.c             C   s.   t  j j t  j j | ƒ ƒ |  _ | |  _ d S(   u   Initialize a Mailbox instance.N(   u   osu   pathu   abspathu
   expanduseru   _pathu   _factory(   u   selfu   pathu   factoryu   create(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __init__%   s    !c             C   s   t  d ƒ ‚ d S(   u$   Add message and return assigned key.u&   Method must be implemented by subclassN(   u   NotImplementedError(   u   selfu   message(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   add*   s    c             C   s   t  d ƒ ‚ d S(   u=   Remove the keyed message; raise KeyError if it doesn't exist.u&   Method must be implemented by subclassN(   u   NotImplementedError(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   remove.   s    c             C   s   |  j  | ƒ d  S(   N(   u   remove(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __delitem__2   s    c             C   s,   y |  j  | ƒ Wn t k
 o Yn Xd S(   u'   If the keyed message exists, remove it.N(   u   removeu   KeyError(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   discard5   s    c             C   s   t  d ƒ ‚ d S(   u>   Replace the keyed message; raise KeyError if it doesn't exist.u&   Method must be implemented by subclassN(   u   NotImplementedError(   u   selfu   keyu   message(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __setitem__<   s    c             C   s0   y |  j  | ƒ SWn t k
 o | SYn Xd S(   u9   Return the keyed message, or default if it doesn't exist.N(   u   __getitem__u   KeyError(   u   selfu   keyu   default(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   get@   s    c             C   s2   |  j  p |  j | ƒ S|  j  |  j | ƒ ƒ Sd S(   u=   Return the keyed message; raise KeyError if it doesn't exist.N(   u   _factoryu   get_messageu   get_file(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __getitem__G   s    
c             C   s   t  d ƒ ‚ d S(   u4   Return a Message representation or raise a KeyError.u&   Method must be implemented by subclassN(   u   NotImplementedError(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   get_messageN   s    c             C   s   t  d ƒ ‚ d S(   u3   Return a string representation or raise a KeyError.u&   Method must be implemented by subclassN(   u   NotImplementedError(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   get_stringR   s    c             C   s   t  d ƒ ‚ d S(   u6   Return a file-like representation or raise a KeyError.u&   Method must be implemented by subclassN(   u   NotImplementedError(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   get_fileV   s    c             C   s   t  d ƒ ‚ d S(   u   Return an iterator over keys.u&   Method must be implemented by subclassN(   u   NotImplementedError(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   iterkeysZ   s    c             C   s   t  |  j ƒ  ƒ S(   u   Return a list of keys.(   u   listu   iterkeys(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   keys^   s    c          	   c   sH   xA |  j  ƒ  D]3 } y |  | } Wn t k
 o w Yn X| Vq Wd S(   u%   Return an iterator over all messages.N(   u   keysu   KeyError(   u   selfu   keyu   value(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   itervaluesb   s     	c             C   s
   |  j  ƒ  S(   N(   u
   itervalues(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __iter__k   s    c             C   s   t  |  j ƒ  ƒ S(   u,   Return a list of messages. Memory intensive.(   u   listu
   itervalues(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   valuesn   s    c          	   c   sN   xG |  j  ƒ  D]9 } y |  | } Wn t k
 o w Yn X| | f Vq Wd S(   u.   Return an iterator over (key, message) tuples.N(   u   keysu   KeyError(   u   selfu   keyu   value(    (    u$   /mit/python/lib/python3.0/mailbox.pyu	   iteritemsr   s     	c             C   s   t  |  j ƒ  ƒ S(   u9   Return a list of (key, message) tuples. Memory intensive.(   u   listu	   iteritems(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   items{   s    c             C   s   t  d ƒ ‚ d S(   u9   Return True if the keyed message exists, False otherwise.u&   Method must be implemented by subclassN(   u   NotImplementedError(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __contains__   s    c             C   s   t  d ƒ ‚ d S(   u*   Return a count of messages in the mailbox.u&   Method must be implemented by subclassN(   u   NotImplementedError(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __len__ƒ   s    c             C   s(   x! |  j  ƒ  D] } |  j | ƒ q Wd S(   u   Delete all messages.N(   u   keysu   discard(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   clear‡   s     c             C   s:   y |  | } Wn t  k
 o | SYn X|  j | ƒ | S(   u3   Delete the keyed message and return it, or default.(   u   KeyErroru   discard(   u   selfu   keyu   defaultu   result(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   popŒ   s    
c             C   s7   x0 |  j  ƒ  D] } | |  j | ƒ f SWt d ƒ ‚ d S(   u6   Delete an arbitrary (key, message) pair and return it.u   No messages in mailboxN(   u   keysu   popu   KeyError(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   popitem•   s     c          
   C   s©   t  | d ƒ o | j ƒ  } n' t  | d ƒ o | j ƒ  } n | } d } x? | D]7 \ } } y | |  | <WqS t k
 o d } YqS XqS W| o t d ƒ ‚ n d S(   u4   Change the messages that correspond to certain keys.u	   iteritemsu   itemsu   No message with key(s)NFT(   u   hasattru   itemsu   Falseu   KeyErroru   True(   u   selfu   argu   sourceu   bad_keyu   keyu   message(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   updateœ   s     c             C   s   t  d ƒ ‚ d S(   u&   Write any pending changes to the disk.u&   Method must be implemented by subclassN(   u   NotImplementedError(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   flush­   s    c             C   s   t  d ƒ ‚ d S(   u   Lock the mailbox.u&   Method must be implemented by subclassN(   u   NotImplementedError(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   lock±   s    c             C   s   t  d ƒ ‚ d S(   u#   Unlock the mailbox if it is locked.u&   Method must be implemented by subclassN(   u   NotImplementedError(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   unlockµ   s    c             C   s   t  d ƒ ‚ d S(   u   Flush and close the mailbox.u&   Method must be implemented by subclassN(   u   NotImplementedError(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   close¹   s    c             C   s7  t  | t j j ƒ o[ t j ƒ  } t j j | | d ƒ } | j | ƒ | j	 d ƒ | j
 ƒ  } | j | ƒ nÃ t  | t ƒ o. | o | j d d ƒ } n | j | ƒ n… t | d ƒ o^ xq | j ƒ  } | p Pn | o( | j d ƒ o d | d d … } n | j | ƒ qÂ n t d	 t | ƒ ƒ ‚ d S(
   u%   Dump message contents to target file.i    u   
From u   
>From u   readu   From u   >From i   Nu   Invalid message type: %s(   u
   isinstanceu   emailu   messageu   Messageu   iou   StringIOu	   generatoru	   Generatoru   flattenu   seeku   readu   writeu   stru   replaceu   hasattru   readlineu
   startswithu	   TypeErroru   type(   u   selfu   messageu   targetu   mangle_from_u   bufferu   genu   datau   line(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _dump_message½   s(    NTF(#   u   __name__u
   __module__u   __doc__u   Noneu   Trueu   __init__u   addu   removeu   __delitem__u   discardu   __setitem__u   getu   __getitem__u   get_messageu
   get_stringu   get_fileu   iterkeysu   keysu
   itervaluesu   __iter__u   valuesu	   iteritemsu   itemsu   __contains__u   __len__u   clearu   popu   popitemu   updateu   flushu   locku   unlocku   closeu   Falseu   _dump_message(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   Mailbox"   s<   
																											c             B   sþ   |  Ee  Z d  Z d Z d 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 „  Z d „  Z d „  Z d „  Z d Z d „  Z d „  Z d „  Z d „  Z d S(   u   A qmail-style Maildir mailbox.u   :c             C   sÐ   t  j |  | | | ƒ t j j |  j ƒ p— | o} t j |  j d ƒ t j t j j |  j d ƒ d ƒ t j t j j |  j d ƒ d ƒ t j t j j |  j d ƒ d ƒ qÃ t |  j ƒ ‚ n i  |  _	 d S(   u   Initialize a Maildir instance.iÀ  u   tmpu   newu   curN(
   u   Mailboxu   __init__u   osu   pathu   existsu   _pathu   mkdiru   joinu   NoSuchMailboxErroru   _toc(   u   selfu   dirnameu   factoryu   create(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __init__à   s    ""&c             C   s½  |  j  ƒ  } z |  j | | ƒ Wd t | ƒ Xt | t ƒ o= | j ƒ  } |  j | j ƒ  } | |  j k o
 d } q‡ n d } d } t j	 j
 | j ƒ j |  j ƒ d } t j	 j |  j | | | ƒ } yN t t d ƒ o' t j | j | ƒ t j | j ƒ n t j | j | ƒ Wna t k
 oU } z? t j | j ƒ | j t j k o t d | ƒ ‚ n ‚  WYd d } ~ Xn Xt | t ƒ o, t j | t j	 j | ƒ | j ƒ  f ƒ n | S(   u$   Add message and return assigned key.Nu    u   newi    u   linku$   Name clash with existing message: %s(   u   _create_tmpu   _dump_messageu   _sync_closeu
   isinstanceu   MaildirMessageu
   get_subdiru   colonu   get_infou   osu   pathu   basenameu   nameu   splitu   joinu   _pathu   hasattru   linku   removeu   renameu   OSErroru   errnou   EEXISTu   ExternalClashErroru   utimeu   getatimeu   get_date(   u   selfu   messageu   tmp_fileu   subdiru   suffixu   uniqu   destu   e(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   addí   s6    %,c             C   s,   t  j t  j j |  j |  j | ƒ ƒ ƒ d S(   u=   Remove the keyed message; raise KeyError if it doesn't exist.N(   u   osu   removeu   pathu   joinu   _pathu   _lookup(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   remove  s    c             C   sl   y |  j  | ƒ WnT t k
 o YnB t k
 o5 } z | j t j k o ‚  n WYd d } ~ Xn Xd S(   u'   If the keyed message exists, remove it.N(   u   removeu   KeyErroru   OSErroru   errnou   ENOENT(   u   selfu   keyu   e(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   discard  s    c       
      C   s$  |  j  | ƒ } |  j | ƒ } |  j  | ƒ } t | t ƒ o
 | } n | } t j j | ƒ } |  j | k o! |  j | j |  j ƒ d } n d } |  j	 | ƒ t j j
 |  j | | | ƒ }	 t j t j j
 |  j | ƒ |	 ƒ t | t ƒ o, t j |	 t j j |	 ƒ | j ƒ  f ƒ n d S(   u>   Replace the keyed message; raise KeyError if it doesn't exist.iÿÿÿÿu    N(   u   _lookupu   addu
   isinstanceu   MaildirMessageu   osu   pathu   dirnameu   colonu   splitu   discardu   joinu   _pathu   renameu   utimeu   getatimeu   get_date(
   u   selfu   keyu   messageu   old_subpathu   temp_keyu   temp_subpathu   dominant_subpathu   subdiru   suffixu   new_path(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __setitem__  s     
!"c             C   sö   |  j  | ƒ } t t j j |  j | ƒ d d d ƒ} z- |  j o |  j | ƒ } n t | ƒ } Wd | j ƒ  Xt j j	 | ƒ \ } } | j
 | ƒ |  j | k o! | j | j	 |  j ƒ d ƒ n | j t j j t j j |  j | ƒ ƒ ƒ | S(   u4   Return a Message representation or raise a KeyError.u   ru   newlineu    Niÿÿÿÿ(   u   _lookupu   openu   osu   pathu   joinu   _pathu   _factoryu   MaildirMessageu   closeu   splitu
   set_subdiru   colonu   set_infou   set_dateu   getmtime(   u   selfu   keyu   subpathu   fu   msgu   subdiru   name(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   get_message5  s    '
!+c             C   sP   t  t j j |  j |  j | ƒ ƒ d d d ƒ} z | j ƒ  SWd | j ƒ  Xd S(   u3   Return a string representation or raise a KeyError.u   ru   newlineu    N(   u   openu   osu   pathu   joinu   _pathu   _lookupu   readu   close(   u   selfu   keyu   f(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   get_stringG  s    0c             C   s:   t  t j j |  j |  j | ƒ ƒ d d d ƒ} t | ƒ S(   u6   Return a file-like representation or raise a KeyError.u   ru   newlineu    (   u   openu   osu   pathu   joinu   _pathu   _lookupu
   _ProxyFile(   u   selfu   keyu   f(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   get_fileO  s    0c          	   c   sR   |  j  ƒ  xA |  j D]6 } y |  j | ƒ Wn t k
 o w Yn X| Vq Wd S(   u   Return an iterator over keys.N(   u   _refreshu   _tocu   _lookupu   KeyError(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   iterkeysT  s    

 	c             C   s   |  j  ƒ  | |  j k S(   u9   Return True if the keyed message exists, False otherwise.(   u   _refreshu   _toc(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __contains__^  s    
c             C   s   |  j  ƒ  t |  j ƒ S(   u*   Return a count of messages in the mailbox.(   u   _refreshu   lenu   _toc(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __len__c  s    
c             C   s   d S(   u"   Write any pending changes to disk.N(    (   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   flushh  s    c             C   s   d S(   u   Lock the mailbox.N(    (   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   lockl  s    c             C   s   d S(   u#   Unlock the mailbox if it is locked.N(    (   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   unlockp  s    c             C   s   d S(   u   Flush and close the mailbox.N(    (   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   closet  s    c             C   s‹   g  } x~ t  j |  j ƒ D]j } t | ƒ d k oQ | d d k o@ t  j j t  j j |  j | ƒ ƒ o | j | d d … ƒ q q W| S(   u   Return a list of folder names.i   i    u   .N(   u   osu   listdiru   _pathu   lenu   pathu   isdiru   joinu   append(   u   selfu   resultu   entry(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   list_foldersx  s     $%c             C   s/   t  t j j |  j d | ƒ d |  j d d ƒS(   u/   Return a Maildir instance for the named folder.u   .u   factoryu   createF(   u   Maildiru   osu   pathu   joinu   _pathu   _factoryu   False(   u   selfu   folder(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   get_folder  s    	c             C   s‡   t  j j |  j d | ƒ } t | d |  j ƒ} t  j j | d ƒ } t  j j | ƒ p* t  j t  j | t  j	 t  j
 Bd ƒ ƒ n | S(   u>   Create a folder and return a Maildir instance representing it.u   .u   factoryu   maildirfolderi¶  (   u   osu   pathu   joinu   _pathu   Maildiru   _factoryu   existsu   closeu   openu   O_CREATu   O_WRONLY(   u   selfu   folderu   pathu   resultu   maildirfolder_path(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   add_folder‡  s    c             C   sª  t  j j |  j d | ƒ } xz t  j t  j j | d ƒ ƒ t  j t  j j | d ƒ ƒ D]> } t | ƒ d k  p | d d k o t d | ƒ ‚ qW qW Wxz t  j | ƒ D]i } | d k oV | d k oI | d k o< t  j j t  j j | | ƒ ƒ o t d | | f ƒ ‚ q© q© Wx€ t  j | d	 d ƒD]i \ } } } x* | D]" } t  j
 t  j j | | ƒ ƒ qBWx* | D]" } t  j t  j j | | ƒ ƒ qoWq,Wt  j | ƒ d
 S(   u-   Delete the named folder, which must be empty.u   .u   newu   curi   i    u   Folder contains message(s): %su   tmpu%   Folder contains subdirectory '%s': %su   topdownNF(   u   osu   pathu   joinu   _pathu   listdiru   lenu   NotEmptyErroru   isdiru   walku   Falseu   removeu   rmdir(   u   selfu   folderu   pathu   entryu   rootu   dirsu   files(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   remove_folder‘  s*     $ '"    $c             C   s…   t  j  ƒ  } xr t j t j j |  j d ƒ ƒ D]O } t j j |  j d | ƒ } | t j j | ƒ d k o t j | ƒ q. q. Wd S(   u   Delete old files in "tmp".u   tmpi@ú N(   u   timeu   osu   listdiru   pathu   joinu   _pathu   getatimeu   remove(   u   selfu   nowu   entryu   path(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   clean¤  s    " i   c             C   sy  t  j  ƒ  } t j ƒ  } d | k o | j d d ƒ } n d | k o | j d d ƒ } n d t | ƒ t | d d ƒ t j ƒ  t j | f } t j	 j
 |  j d | ƒ } y t j | ƒ Wn¢ t k
 o– } z€ | j t j k oe t j d 7_ y t | ƒ SWqQt k
 o5 } z | j t j k o ‚  n WYd	 d	 } ~ XqQXn ‚  WYd	 d	 } ~ Xn Xt d
 | ƒ ‚ d	 S(   u=   Create a file in the tmp subdirectory and open and return it.u   /u   \057u   :u   \072u   %s.M%sP%sQ%s.%si   g    €„.Au   tmpNu&   Name clash prevented file creation: %s(   u   timeu   socketu   gethostnameu   replaceu   intu   osu   getpidu   Maildiru   _countu   pathu   joinu   _pathu   statu   OSErroru   errnou   ENOENTu   _create_carefullyu   EEXISTu   ExternalClashError(   u   selfu   nowu   hostnameu   uniqu   pathu   e(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _create_tmp®  s,    &c             C   s±   i  |  _  x¡ d D]™ } t j j |  j | ƒ } xx t j | ƒ D]g } t j j | | ƒ } t j j | ƒ o q> n | j |  j ƒ d } t j j | | ƒ |  j  | <q> Wq Wd S(   u!   Update table of contents mapping.u   newu   curi    N(   u   newu   cur(	   u   _tocu   osu   pathu   joinu   _pathu   listdiru   isdiru   splitu   colon(   u   selfu   subdiru   subdir_pathu   entryu   pu   uniq(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _refreshÊ  s    	  c             C   s—   y< t  j j t  j j |  j |  j | ƒ ƒ o |  j | SWn t k
 o Yn X|  j ƒ  y |  j | SWn$ t k
 o t d | ƒ ‚ Yn Xd S(   u=   Use TOC to return subpath for given key, or raise a KeyError.u   No message with key: %sN(   u   osu   pathu   existsu   joinu   _pathu   _tocu   KeyErroru   _refresh(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _lookupÖ  s    ,
c          	   C   sy   t  |  d ƒ p t |  j ƒ  ƒ |  _ n xI y |  t |  j ƒ SWq, t k
 o d SYq, t k
 o w, Yq, Xq, d S(   u0   Return the next message in a one-time iteration.u   _onetime_keysN(   u   hasattru   iteru   keysu   _onetime_keysu   nextu   StopIterationu   Noneu   KeyError(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   nextä  s    	NT(   u   __name__u
   __module__u   __doc__u   colonu   Noneu   Trueu   __init__u   addu   removeu   discardu   __setitem__u   get_messageu
   get_stringu   get_fileu   iterkeysu   __contains__u   __len__u   flushu   locku   unlocku   closeu   list_foldersu
   get_folderu
   add_folderu   remove_folderu   cleanu   _countu   _create_tmpu   _refreshu   _lookupu   next(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   MaildirÛ   s6   
	"							
										
					c             B   s­   |  Ee  Z d  Z d 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 d „ Z d „  Z d S(   u   A single-file mailbox.c             C   s  t  j |  | | | ƒ y t |  j d d d ƒ} Wn¢ t k
 o– } z€ | j t j k o6 | o t |  j d d d ƒ} qÃ t |  j ƒ ‚ n3 | j t j k o t |  j d d d ƒ} n ‚  WYd d } ~ Xn X| |  _	 d |  _ d |  _ d |  _ d |  _ d |  _ d S(	   u!   Initialize a single-file mailbox.u   r+u   newlineu    u   w+u   rNi    F(   u   Mailboxu   __init__u   openu   _pathu   IOErroru   errnou   ENOENTu   NoSuchMailboxErroru   EACCESu   _fileu   Noneu   _tocu	   _next_keyu   Falseu   _pendingu   _lockedu   _file_length(   u   selfu   pathu   factoryu   createu   fu   e(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __init__ô  s"    					c             C   sF   |  j  ƒ  |  j | ƒ |  j |  j <|  j d 7_ d |  _ |  j d S(   u$   Add message and return assigned key.i   T(   u   _lookupu   _append_messageu   _tocu	   _next_keyu   Trueu   _pending(   u   selfu   message(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   add
  s
    
	c             C   s$   |  j  | ƒ |  j | =d |  _ d S(   u=   Remove the keyed message; raise KeyError if it doesn't exist.NT(   u   _lookupu   _tocu   Trueu   _pending(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   remove  s    
c             C   s0   |  j  | ƒ |  j | ƒ |  j | <d |  _ d S(   u>   Replace the keyed message; raise KeyError if it doesn't exist.NT(   u   _lookupu   _append_messageu   _tocu   Trueu   _pending(   u   selfu   keyu   message(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __setitem__  s    c             c   s-   |  j  ƒ  x |  j j ƒ  D] } | Vq Wd S(   u   Return an iterator over keys.N(   u   _lookupu   _tocu   keys(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   iterkeys  s    
 c             C   s   |  j  ƒ  | |  j k S(   u9   Return True if the keyed message exists, False otherwise.(   u   _lookupu   _toc(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __contains__$  s    
c             C   s   |  j  ƒ  t |  j ƒ S(   u*   Return a count of messages in the mailbox.(   u   _lookupu   lenu   _toc(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __len__)  s    
c             C   s(   |  j  p t |  j ƒ d |  _  n d S(   u   Lock the mailbox.NT(   u   _lockedu
   _lock_fileu   _fileu   True(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   lock.  s    
c             C   s(   |  j  o t |  j ƒ d |  _  n d S(   u#   Unlock the mailbox if it is locked.NF(   u   _lockedu   _unlock_fileu   _fileu   False(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   unlock4  s    
c       
      C   s“  |  j  p d S|  j d k	 p t ‚ |  j j d d ƒ |  j j ƒ  } | |  j k o t d |  j | f ƒ ‚ n t	 |  j
 ƒ } yÝ i  } |  j | ƒ xÃ t |  j j ƒ  ƒ D]¬ } |  j | \ } } |  j j | ƒ |  j | ƒ | j ƒ  } xD |  j j t d | |  j j ƒ  ƒ ƒ } | p Pn | j | ƒ qõ | | j ƒ  f | | <|  j | ƒ q° WWn% | j ƒ  t j | j ƒ ‚  Yn Xt | ƒ |  j j ƒ  y t j | j |  j
 ƒ WnŠ t k
 o~ }	 zh |	 j t j k p# t j d k o= |	 j t j k o* t j |  j
 ƒ t j | j |  j
 ƒ n ‚  WYd d }	 ~	 Xn Xt |  j
 d ƒ |  _ | |  _ d	 |  _  |  j o t  |  j d d	 ƒn d S(
   u"   Write any pending changes to disk.Ni    i   u4   Size of mailbox file changed (expected %i, found %i)i   u   os2u   rb+u   dotlockF(!   u   _pendingu   _tocu   Noneu   AssertionErroru   _fileu   seeku   tellu   _file_lengthu   ExternalClashErroru   _create_temporaryu   _pathu   _pre_mailbox_hooku   sortedu   keysu   _pre_message_hooku   readu   minu   writeu   _post_message_hooku   closeu   osu   removeu   nameu   _sync_closeu   renameu   OSErroru   errnou   EEXISTu   EACCESu   openu   Falseu   _lockedu
   _lock_file(
   u   selfu   cur_lenu   new_fileu   new_tocu   keyu   startu   stopu	   new_startu   bufferu   e(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   flush:  sZ    
 

#		
c             C   s   d S(   u,   Called before writing the mailbox to file f.N(    (   u   selfu   f(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _pre_mailbox_hookt  s    c             C   s   d S(   u-   Called before writing each message to file f.N(    (   u   selfu   f(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _pre_message_hookx  s    c             C   s   d S(   u,   Called after writing each message to file f.N(    (   u   selfu   f(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _post_message_hook|  s    c             C   s3   |  j  ƒ  |  j o |  j ƒ  n |  j j ƒ  d S(   u   Flush and close the mailbox.N(   u   flushu   _lockedu   unlocku   _fileu   close(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   close€  s    

c             C   si   |  j  d k o |  j ƒ  n | d k	 o: y |  j  | SWqe t k
 o t d | ƒ ‚ Yqe Xn d S(   u'   Return (start, stop) or raise KeyError.u   No message with key: %sN(   u   _tocu   Noneu   _generate_tocu   KeyError(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _lookup‡  s    c             C   se   |  j  j d d ƒ |  j |  j  ƒ |  j | ƒ } |  j |  j  ƒ |  j  j ƒ  |  j  j ƒ  |  _ | S(   u;   Append message to mailbox and return (start, stop) offsets.i    i   (   u   _fileu   seeku   _pre_message_hooku   _install_messageu   _post_message_hooku   flushu   tellu   _file_length(   u   selfu   messageu   offsets(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _append_message‘  s    NT(   u   __name__u
   __module__u   __doc__u   Noneu   Trueu   __init__u   addu   removeu   __setitem__u   iterkeysu   __contains__u   __len__u   locku   unlocku   flushu   _pre_mailbox_hooku   _pre_message_hooku   _post_message_hooku   closeu   _lookupu   _append_message(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _singlefileMailboxñ  s"   
									:				
u   _singlefileMailboxc             B   sD   |  Ee  Z d  Z d Z d „  Z d d „ Z d d „ Z d „  Z	 d S(   u   An mbox or MMDF mailbox.c             C   s›   |  j  | ƒ \ } } |  j j | ƒ |  j j ƒ  j t j d ƒ } |  j j | |  j j ƒ  ƒ } |  j	 | j t j d ƒ ƒ } | j
 | d d … ƒ | S(   u4   Return a Message representation or raise a KeyError.u    u   
i   N(   u   _lookupu   _fileu   seeku   readlineu   replaceu   osu   linesepu   readu   tellu   _message_factoryu   set_from(   u   selfu   keyu   startu   stopu	   from_lineu   stringu   msg(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   get_message¢  s    c             C   so   |  j  | ƒ \ } } |  j j | ƒ | p |  j j ƒ  n |  j j | |  j j ƒ  ƒ } | j t j d ƒ S(   u3   Return a string representation or raise a KeyError.u   
(	   u   _lookupu   _fileu   seeku   readlineu   readu   tellu   replaceu   osu   linesep(   u   selfu   keyu   from_u   startu   stopu   string(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   get_string¬  s    c             C   sY   |  j  | ƒ \ } } |  j j | ƒ | p |  j j ƒ  n t |  j |  j j ƒ  | ƒ S(   u6   Return a file-like representation or raise a KeyError.(   u   _lookupu   _fileu   seeku   readlineu   _PartialFileu   tell(   u   selfu   keyu   from_u   startu   stop(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   get_fileµ  s
    c             C   sF  d } t | t ƒ od | j d ƒ oT | j d ƒ } | d k o( | d | … } | | d d … } qÄ | } d } nK t | t ƒ o d | j ƒ  } n' t | t j j	 ƒ o | j
 ƒ  } n | d k o d t j t j ƒ  ƒ } n |  j j ƒ  } |  j j | t j ƒ |  j | |  j |  j ƒ |  j j ƒ  } | | f S(   u1   Format a message and blindly write to self._file.u   From u   
iÿÿÿÿNi   u    u   From MAILER-DAEMON %s(   u   Noneu
   isinstanceu   stru
   startswithu   findu   _mboxMMDFMessageu   get_fromu   emailu   messageu   Messageu   get_unixfromu   timeu   asctimeu   gmtimeu   _fileu   tellu   writeu   osu   linesepu   _dump_messageu   _mangle_from_(   u   selfu   messageu	   from_lineu   newlineu   startu   stop(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _install_message½  s&     
NTF(
   u   __name__u
   __module__u   __doc__u   Trueu   _mangle_from_u   get_messageu   Falseu
   get_stringu   get_fileu   _install_message(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu	   _mboxMMDF  s   
	
	u	   _mboxMMDFc             B   s;   |  Ee  Z d  Z d Z d d d „ Z d „  Z d „  Z d S(   u   A classic mbox mailbox.c             C   s#   t  |  _ t j |  | | | ƒ d S(   u   Initialize an mbox mailbox.N(   u   mboxMessageu   _message_factoryu	   _mboxMMDFu   __init__(   u   selfu   pathu   factoryu   create(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __init__Ú  s    	c             C   s+   | j  ƒ  d k o | j t j ƒ n d S(   u-   Called before writing each message to file f.i    N(   u   tellu   writeu   osu   linesep(   u   selfu   f(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _pre_message_hookß  s    c             C   sø   g  g  } } |  j  j d ƒ x’ |  j  j ƒ  } |  j  j ƒ  } | j d ƒ oH t | ƒ t | ƒ k  o | j | t t j ƒ ƒ n | j | ƒ q  | p | j | ƒ Pq  q  t	 t
 t | | ƒ ƒ ƒ |  _ t |  j ƒ |  _ |  j  j ƒ  |  _ d S(   u0   Generate key-to-(start, stop) table of contents.i    u   From N(   u   _fileu   seeku   tellu   readlineu
   startswithu   lenu   appendu   osu   linesepu   dictu	   enumerateu   zipu   _tocu	   _next_keyu   _file_length(   u   selfu   startsu   stopsu   line_posu   line(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _generate_tocä  s    NT(	   u   __name__u
   __module__u   __doc__u   Trueu   _mangle_from_u   Noneu   __init__u   _pre_message_hooku   _generate_toc(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   mboxÕ  s
   
	c             B   s>   |  Ee  Z d  Z d d d „ Z d „  Z d „  Z d „  Z d S(   u   An MMDF mailbox.c             C   s#   t  |  _ t j |  | | | ƒ d S(   u   Initialize an MMDF mailbox.N(   u   MMDFMessageu   _message_factoryu	   _mboxMMDFu   __init__(   u   selfu   pathu   factoryu   create(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __init__ú  s    	c             C   s   | j  d t j ƒ d S(   u-   Called before writing each message to file f.u   N(   u   writeu   osu   linesep(   u   selfu   f(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _pre_message_hookÿ  s    c             C   s   | j  t j d t j ƒ d S(   u,   Called after writing each message to file f.u   N(   u   writeu   osu   linesep(   u   selfu   f(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _post_message_hook  s    c             C   sP  g  g  } } |  j  j d ƒ d } xÑ | } |  j  j ƒ  } |  j  j ƒ  } | j d t j ƒ o‡ | j | ƒ xƒ | } |  j  j ƒ  } |  j  j ƒ  } | d t j k o | j | t t j ƒ ƒ Pqq | p | j | ƒ Pqq qq q& | p Pq& q& t	 t
 t | | ƒ ƒ ƒ |  _ t |  j ƒ |  _ |  j  j d d ƒ |  j  j ƒ  |  _ d S(   u0   Generate key-to-(start, stop) table of contents.i    u   i   N(   u   _fileu   seeku   readlineu   tellu
   startswithu   osu   linesepu   appendu   lenu   dictu	   enumerateu   zipu   _tocu	   _next_keyu   _file_length(   u   selfu   startsu   stopsu   next_posu   line_posu   line(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _generate_toc  s2    NT(	   u   __name__u
   __module__u   __doc__u   Noneu   Trueu   __init__u   _pre_message_hooku   _post_message_hooku   _generate_toc(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   MMDF÷  s
   
		c             B   sà   |  Ee  Z d  Z d 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 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d S(   u   An MH mailbox.c             C   s©   t  j |  | | | ƒ t j j |  j ƒ pp | oV t j |  j d ƒ t j t j t j j	 |  j d ƒ t j
 t j Bt j Bd ƒ ƒ qœ t |  j ƒ ‚ n d |  _ d S(   u   Initialize an MH instance.iÀ  u   .mh_sequencesi€  NF(   u   Mailboxu   __init__u   osu   pathu   existsu   _pathu   mkdiru   closeu   openu   joinu   O_CREATu   O_EXCLu   O_WRONLYu   NoSuchMailboxErroru   Falseu   _locked(   u   selfu   pathu   factoryu   create(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __init__'  s    !"c             C   så   |  j  ƒ  } t | ƒ d k o
 d } n t | ƒ d } t j j |  j t | ƒ ƒ } t | ƒ } zp |  j	 o t
 | ƒ n z8 |  j | | ƒ t | t ƒ o |  j | | ƒ n Wd |  j	 o t | ƒ n XWd t | ƒ X| S(   u$   Add message and return assigned key.i    i   N(   u   keysu   lenu   maxu   osu   pathu   joinu   _pathu   stru   _create_carefullyu   _lockedu
   _lock_fileu   _dump_messageu
   isinstanceu	   MHMessageu   _dump_sequencesu   _unlock_fileu   _sync_close(   u   selfu   messageu   keysu   new_keyu   new_pathu   f(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   add3  s"    


c             C   s  t  j j |  j t | ƒ ƒ } y t | d ƒ } WnQ t k
 oE } z/ | j t j k o t	 d | ƒ ‚ n ‚  WYd d } ~ Xn Xzk |  j
 o t | ƒ n z3 | j ƒ  t  j t  j j |  j t | ƒ ƒ ƒ Wd |  j
 o t | ƒ n XWd | j ƒ  Xd S(   u=   Remove the keyed message; raise KeyError if it doesn't exist.u   rb+u   No message with key: %sN(   u   osu   pathu   joinu   _pathu   stru   openu   IOErroru   errnou   ENOENTu   KeyErroru   _lockedu
   _lock_fileu   closeu   removeu   _unlock_file(   u   selfu   keyu   pathu   fu   e(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   removeJ  s     

)
c             C   s0  t  j j |  j t | ƒ ƒ } y t | d d d ƒ} WnQ t k
 oE } z/ | j t j k o t	 d | ƒ ‚ n ‚  WYd d } ~ Xn Xz“ |  j
 o t | ƒ n z[ t  j t  j | t  j t  j Bƒ ƒ |  j | | ƒ t | t ƒ o |  j | | ƒ n Wd |  j
 o t | ƒ n XWd t | ƒ Xd S(   u>   Replace the keyed message; raise KeyError if it doesn't exist.u   r+u   newlineu    u   No message with key: %sN(   u   osu   pathu   joinu   _pathu   stru   openu   IOErroru   errnou   ENOENTu   KeyErroru   _lockedu
   _lock_fileu   closeu   O_WRONLYu   O_TRUNCu   _dump_messageu
   isinstanceu	   MHMessageu   _dump_sequencesu   _unlock_fileu   _sync_close(   u   selfu   keyu   messageu   pathu   fu   e(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __setitem__`  s$    
#
c             C   sU  yl |  j  o1 t t j j |  j t | ƒ ƒ d d d ƒ} n. t t j j |  j t | ƒ ƒ d d d ƒ} WnQ t k
 oE } z/ | j t j	 k o t
 d | ƒ ‚ n ‚  WYd d } ~ Xn XzH |  j  o t | ƒ n z t | ƒ } Wd |  j  o t | ƒ n XWd | j ƒ  Xx8 |  j ƒ  D]* \ } } | | k o | j | ƒ q#q#W| S(   u4   Return a Message representation or raise a KeyError.u   r+u   newlineu    u   ru   No message with key: %sN(   u   _lockedu   openu   osu   pathu   joinu   _pathu   stru   IOErroru   errnou   ENOENTu   KeyErroru
   _lock_fileu	   MHMessageu   _unlock_fileu   closeu   get_sequencesu   add_sequence(   u   selfu   keyu   fu   eu   msgu   nameu   key_list(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   get_messagex  s*    
11

 c             C   s  yl |  j  o1 t t j j |  j t | ƒ ƒ d d d ƒ} n. t t j j |  j t | ƒ ƒ d d d ƒ} WnQ t k
 oE } z/ | j t j	 k o t
 d | ƒ ‚ n ‚  WYd d } ~ Xn XzF |  j  o t | ƒ n z | j ƒ  SWd |  j  o t | ƒ n XWd | j ƒ  Xd S(   u3   Return a string representation or raise a KeyError.u   r+u   newlineu    u   ru   No message with key: %sN(   u   _lockedu   openu   osu   pathu   joinu   _pathu   stru   IOErroru   errnou   ENOENTu   KeyErroru
   _lock_fileu   readu   _unlock_fileu   close(   u   selfu   keyu   fu   e(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   get_string“  s     
11

c             C   s   y1 t  t j j |  j t | ƒ ƒ d d d ƒ} WnQ t k
 oE } z/ | j t j k o t	 d | ƒ ‚ n ‚  WYd d } ~ Xn Xt
 | ƒ S(   u6   Return a file-like representation or raise a KeyError.u   ru   newlineu    u   No message with key: %sN(   u   openu   osu   pathu   joinu   _pathu   stru   IOErroru   errnou   ENOENTu   KeyErroru
   _ProxyFile(   u   selfu   keyu   fu   e(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   get_fileª  s    1c             C   s&   t  t d „  t j |  j ƒ Dƒ ƒ ƒ S(   u   Return an iterator over keys.c             s   s,   |  ]" } | j  ƒ  o t | ƒ Vq q d  S(   N(   u   isdigitu   int(   u   .0u   entry(    (    u$   /mit/python/lib/python3.0/mailbox.pyu	   <genexpr>·  s    (   u   iteru   sortedu   osu   listdiru   _path(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   iterkeysµ  s    c             C   s(   t  j j t  j j |  j t | ƒ ƒ ƒ S(   u9   Return True if the keyed message exists, False otherwise.(   u   osu   pathu   existsu   joinu   _pathu   str(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __contains__º  s    c             C   s   t  t |  j ƒ  ƒ ƒ S(   u*   Return a count of messages in the mailbox.(   u   lenu   listu   keys(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __len__¾  s    c             C   sL   |  j  p> t t j j |  j d ƒ d ƒ |  _ t |  j ƒ d |  _  n d S(   u   Lock the mailbox.u   .mh_sequencesu   rb+NT(	   u   _lockedu   openu   osu   pathu   joinu   _pathu   _fileu
   _lock_fileu   True(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   lockÂ  s    
$c             C   s;   |  j  o- t |  j ƒ t |  j ƒ |  ` d |  _  n d S(   u#   Unlock the mailbox if it is locked.NF(   u   _lockedu   _unlock_fileu   _fileu   _sync_closeu   False(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   unlockÉ  s
    
c             C   s   d S(   u&   Write any pending changes to the disk.N(    (   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   flushÑ  s    c             C   s   |  j  o |  j ƒ  n d S(   u   Flush and close the mailbox.N(   u   _lockedu   unlock(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   closeÕ  s    
c             C   s]   g  } xP t  j |  j ƒ D]< } t  j j t  j j |  j | ƒ ƒ o | j | ƒ q q W| S(   u   Return a list of folder names.(   u   osu   listdiru   _pathu   pathu   isdiru   joinu   append(   u   selfu   resultu   entry(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   list_foldersÚ  s     %c             C   s+   t  t j j |  j | ƒ d |  j d d ƒS(   u+   Return an MH instance for the named folder.u   factoryu   createF(   u   MHu   osu   pathu   joinu   _pathu   _factoryu   False(   u   selfu   folder(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   get_folderâ  s    c             C   s%   t  t j j |  j | ƒ d |  j ƒS(   u:   Create a folder and return an MH instance representing it.u   factory(   u   MHu   osu   pathu   joinu   _pathu   _factory(   u   selfu   folder(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   add_folderç  s    c             C   sŒ   t  j j |  j | ƒ } t  j | ƒ } | d g k o  t  j t  j j | d ƒ ƒ n% | g  k o n t d |  j ƒ ‚ t  j | ƒ d S(   u-   Delete the named folder, which must be empty.u   .mh_sequencesu   Folder not empty: %sN(   u   osu   pathu   joinu   _pathu   listdiru   removeu   NotEmptyErroru   rmdir(   u   selfu   folderu   pathu   entries(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   remove_folderì  s     c       
         sk  i  } t  t j j |  j d ƒ d d d ƒ} z,t |  j ƒ  ƒ ‰  x| D]} yØ | j d ƒ \ } } t ƒ  } xq | j ƒ  D]c } | j ƒ  o | j	 t
 | ƒ ƒ q} d „  | j d ƒ Dƒ \ } }	 | j t | |	 d ƒ ƒ q} W‡  f d	 †  t | ƒ Dƒ | | <t | | ƒ d
 k o | | =n WqI t k
 o t d | j ƒ  ƒ ‚ YqI XqI WWd | j ƒ  X| S(   u=   Return a name-to-key-list dictionary to define each sequence.u   .mh_sequencesu   ru   newlineu    u   :c             s   s   |  ] } t  | ƒ Vq d  S(   N(   u   int(   u   .0u   x(    (    u$   /mit/python/lib/python3.0/mailbox.pyu	   <genexpr>  s    u   -i   c                s,   g  } |  ] } | ˆ  k o | | q
 q
 S(    (    (   u   .0u   _[1]u   key(   u   all_keys(    u$   /mit/python/lib/python3.0/mailbox.pyu
   <listcomp>  s    i    u"   Invalid sequence specification: %sN(   u   openu   osu   pathu   joinu   _pathu   setu   keysu   splitu   isdigitu   addu   intu   updateu   rangeu   sortedu   lenu
   ValueErroru   FormatErroru   rstripu   close(
   u   selfu   resultsu   fu   lineu   nameu   contentsu   keysu   specu   startu   stop(    (   u   all_keysu$   /mit/python/lib/python3.0/mailbox.pyu   get_sequencesø  s.    ' 	  c             C   su  t  t j j |  j d ƒ d d d ƒ} z<t j t j  | j t j t j Bƒ ƒ x| j	 ƒ  D]\ } } t
 | ƒ d k o q] n | j d | ƒ d } d } xŒ t t | ƒ ƒ D]x } | d | k o" | p d } | j d ƒ q%n: | o! d } | j d	 | | f ƒ n | j d
 | ƒ | } q³ W| o | j t | ƒ d ƒ q] | j d ƒ q] WWd t | ƒ Xd S(   u:   Set sequences using the given name-to-key-list dictionary.u   .mh_sequencesu   r+u   newlineu    i    u   %s:i   u   -u   %s %su    %su   
NFT(   u   openu   osu   pathu   joinu   _pathu   closeu   nameu   O_WRONLYu   O_TRUNCu   itemsu   lenu   writeu   Noneu   Falseu   sortedu   setu   Trueu   stru   _sync_close(   u   selfu	   sequencesu   fu   nameu   keysu   prevu
   completingu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   set_sequences  s2    '&  
c       	      C   s´  |  j  ƒ  } d } g  } x|  j ƒ  D]ý } | d | k oÜ | j | | d f ƒ t t d ƒ om t j t j j |  j t	 | ƒ ƒ t j j |  j t	 | d ƒ ƒ ƒ t j
 t j j |  j t	 | ƒ ƒ ƒ qt j t j j |  j t	 | ƒ ƒ t j j |  j t	 | d ƒ ƒ ƒ n | d 7} q% W| d |  _ t | ƒ d k o d SxU | j ƒ  D]G \ } } x8 | D]0 \ } } | | k o | | | j | ƒ <qkqkWqXW|  j | ƒ d S(   u?   Re-name messages to eliminate numbering gaps. Invalidates keys.i    i   u   linkN(   u   get_sequencesu   keysu   appendu   hasattru   osu   linku   pathu   joinu   _pathu   stru   unlinku   renameu	   _next_keyu   lenu   itemsu   indexu   set_sequences(	   u   selfu	   sequencesu   prevu   changesu   keyu   nameu   key_listu   oldu   new(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   pack0  s0     !#)!'  c             C   s´   | j  ƒ  } |  j  ƒ  } xY | j ƒ  D]K \ } } | | k o | j | ƒ q% | | k o | | j | ƒ =q% q% Wx, | D]$ } | | k o | g | | <q{ q{ W|  j | ƒ d S(   u;   Inspect a new MHMessage and update sequences appropriately.N(   u   get_sequencesu   itemsu   appendu   indexu   set_sequences(   u   selfu   messageu   keyu   pending_sequencesu   all_sequencesu   nameu   key_listu   sequence(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _dump_sequencesI  s      NT(   u   __name__u
   __module__u   __doc__u   Noneu   Trueu   __init__u   addu   removeu   __setitem__u   get_messageu
   get_stringu   get_fileu   iterkeysu   __contains__u   __len__u   locku   unlocku   flushu   closeu   list_foldersu
   get_folderu
   add_folderu   remove_folderu   get_sequencesu   set_sequencesu   packu   _dump_sequences(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   MH$  s.   
																				c             B   s›   |  Ee  Z d  Z e d ƒ Z d 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 S(   u   An Rmail-style Babyl mailbox.u   unseenu   deletedu   filedu   answeredu	   forwardedu   editedu   resentc             C   s#   t  j |  | | | ƒ i  |  _ d S(   u   Initialize a Babyl mailbox.N(   u   _singlefileMailboxu   __init__u   _labels(   u   selfu   pathu   factoryu   create(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __init__^  s    c             C   s=   t  j |  | ƒ } t | t ƒ o | j ƒ  |  j | <n | S(   u$   Add message and return assigned key.(   u   _singlefileMailboxu   addu
   isinstanceu   BabylMessageu
   get_labelsu   _labels(   u   selfu   messageu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   addc  s    c             C   s2   t  j |  | ƒ | |  j k o |  j | =n d S(   u=   Remove the keyed message; raise KeyError if it doesn't exist.N(   u   _singlefileMailboxu   removeu   _labels(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   removej  s    c             C   s>   t  j |  | | ƒ t | t ƒ o | j ƒ  |  j | <n d S(   u>   Replace the keyed message; raise KeyError if it doesn't exist.N(   u   _singlefileMailboxu   __setitem__u
   isinstanceu   BabylMessageu
   get_labelsu   _labels(   u   selfu   keyu   message(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __setitem__p  s    c       	      C   sm  |  j  | ƒ \ } } |  j j | ƒ |  j j ƒ  t j ƒ  } xO |  j j ƒ  } | d t j k p | o Pn | j | j	 t j d ƒ ƒ qA t j ƒ  } xK |  j j ƒ  } | t j k p | o Pn | j | j	 t j d ƒ ƒ qŸ |  j j
 | |  j j ƒ  ƒ j	 t j d ƒ } t | j ƒ  | ƒ } | j | j ƒ  ƒ | |  j k o | j |  j | ƒ n | S(   u4   Return a Message representation or raise a KeyError.u   *** EOOH ***u   
(   u   _lookupu   _fileu   seeku   readlineu   iou   StringIOu   osu   linesepu   writeu   replaceu   readu   tellu   BabylMessageu   getvalueu   set_visibleu   _labelsu
   set_labels(	   u   selfu   keyu   startu   stopu   original_headersu   lineu   visible_headersu   bodyu   msg(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   get_messagev  s,    %	c             C   sø   |  j  | ƒ \ } } |  j j | ƒ |  j j ƒ  t j ƒ  } xO |  j j ƒ  } | d t j k p | o Pn | j | j	 t j d ƒ ƒ qA x/ |  j j ƒ  } | t j k p | o Pq“ q“ | j
 ƒ  |  j j | |  j j ƒ  ƒ j	 t j d ƒ S(   u3   Return a string representation or raise a KeyError.u   *** EOOH ***u   
(   u   _lookupu   _fileu   seeku   readlineu   iou   StringIOu   osu   linesepu   writeu   replaceu   getvalueu   readu   tell(   u   selfu   keyu   startu   stopu   original_headersu   line(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   get_string  s     	%c             C   s%   t  j |  j | ƒ j d t j ƒ ƒ S(   u6   Return a file-like representation or raise a KeyError.u   
(   u   iou   StringIOu
   get_stringu   replaceu   osu   linesep(   u   selfu   key(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   get_file¢  s    c             C   sT   |  j  ƒ  t ƒ  } x$ |  j j ƒ  D] } | j | ƒ q# W| j |  j ƒ t | ƒ S(   u4   Return a list of user-defined labels in the mailbox.(   u   _lookupu   setu   _labelsu   valuesu   updateu   difference_updateu   _special_labelsu   list(   u   selfu   labelsu
   label_list(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   get_labels§  s    
	 c             C   sØ  g  g  } } |  j  j d ƒ d } g  } x>| } |  j  j ƒ  } |  j  j ƒ  } | d t j k o t | ƒ t | ƒ k  o | j | t t j ƒ ƒ n | j | ƒ d „  |  j  j ƒ  d d … j d ƒ Dƒ } | j | ƒ q, | d k p | d t j k o; t | ƒ t | ƒ k  o | j | t t j ƒ ƒ qgq, | p | j | t t j ƒ ƒ Pq, q, t	 t
 t | | ƒ ƒ ƒ |  _ t	 t
 | ƒ ƒ |  _ t |  j ƒ |  _ |  j  j d d ƒ |  j  j ƒ  |  _ d S(	   u0   Generate key-to-(start, stop) table of contents.i    u   c             S   s2   g  } |  ]$ } | j  ƒ  o | | j  ƒ  q
 q
 S(    (   u   strip(   u   .0u   _[1]u   label(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   <listcomp>¾  s    i   Nu   ,u   i   (   u   _fileu   seeku   readlineu   tellu   osu   linesepu   lenu   appendu   splitu   dictu	   enumerateu   zipu   _tocu   _labelsu	   _next_keyu   _file_length(   u   selfu   startsu   stopsu   next_posu   label_listsu   line_posu   lineu   labels(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _generate_toc°  s4    &!"c             C   s9   | j  d t j t j d j |  j ƒ  ƒ t j f ƒ d S(   u,   Called before writing the mailbox to file f.u(   BABYL OPTIONS:%sVersion: 5%sLabels:%s%su   ,N(   u   writeu   osu   linesepu   joinu
   get_labels(   u   selfu   f(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _pre_mailbox_hookÎ  s    	c             C   s   | j  d t j ƒ d S(   u-   Called before writing each message to file f.u   N(   u   writeu   osu   linesep(   u   selfu   f(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _pre_message_hookÔ  s    c             C   s   | j  t j d ƒ d S(   u,   Called after writing each message to file f.u   N(   u   writeu   osu   linesep(   u   selfu   f(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _post_message_hookØ  s    c          
   C   s  |  j  j ƒ  } t | t ƒ oÖ g  } g  } xB | j ƒ  D]4 } | |  j k o | j | ƒ q8 | j | ƒ q8 W|  j  j d ƒ x" | D] } |  j  j d | ƒ q‡ W|  j  j d ƒ x& | D] } |  j  j d | d ƒ q¼ W|  j  j t j	 ƒ n |  j  j d t j	 ƒ t | t
 j j ƒ oÒt j ƒ  } t
 j j | d d ƒ } | j | ƒ | j d ƒ xH | j ƒ  } |  j  j | j d t j	 ƒ ƒ | d k p | o Pqcqc|  j  j d	 t j	 ƒ t | t ƒ o† t j ƒ  }	 t
 j j |	 d d ƒ }
 |
 j | j ƒ  ƒ x¤ |	 j ƒ  } |  j  j | j d t j	 ƒ ƒ | d k p | o PqqnY | j d ƒ xH | j ƒ  } |  j  j | j d t j	 ƒ ƒ | d k p | o PqhqhxH| j d
 ƒ } | p Pn |  j  j | j d t j	 ƒ ƒ q³nt | t ƒ oû | j d ƒ d } | d d k o– |  j  j | d | … j d t j	 ƒ ƒ |  j  j d	 t j	 ƒ |  j  j | d | … j d t j	 ƒ ƒ |  j  j | | d … j d t j	 ƒ ƒ qû|  j  j d	 t j	 t j	 ƒ |  j  j | j d t j	 ƒ ƒ ný t | d ƒ oÖ | j ƒ  } d } x} | j ƒ  } |  j  j | j d t j	 ƒ ƒ | d k p | o: |  j  j d	 t j	 ƒ | o d } | j | ƒ qžPq$q$xW | j d
 ƒ } | p Pn |  j  j | j d t j	 ƒ ƒ q¤n t d t | ƒ ƒ ‚ |  j  j ƒ  } | | f S(   u0   Write message contents and return (start, stop).u   1u   , u   ,,u    u   ,u   1,,i    u   
u   *** EOOH ***i   u   

i   iÿÿÿÿNu   readlineu   Invalid message type: %sFT(   u   _fileu   tellu
   isinstanceu   BabylMessageu
   get_labelsu   _special_labelsu   appendu   writeu   osu   linesepu   emailu   messageu   Messageu   iou   StringIOu	   generatoru	   Generatoru   Falseu   flattenu   seeku   readlineu   replaceu   get_visibleu   readu   stru   findu   hasattru   Trueu	   TypeErroru   type(   u   selfu   messageu   startu   special_labelsu   labelsu   labelu   orig_bufferu   orig_generatoru   lineu
   vis_bufferu   vis_generatoru   bufferu
   body_startu   original_posu
   first_passu   stop(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _install_messageÜ  s¤       &#&N(   u   unseenu   deletedu   filedu   answeredu	   forwardedu   editedu   resentT(   u   __name__u
   __module__u   __doc__u	   frozensetu   _special_labelsu   Noneu   Trueu   __init__u   addu   removeu   __setitem__u   get_messageu
   get_stringu   get_fileu
   get_labelsu   _generate_tocu   _pre_mailbox_hooku   _pre_message_hooku   _post_message_hooku   _install_message(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   BabylX  s    
													c             B   s2   |  Ee  Z d  Z d d „ Z d „  Z d „  Z d S(   u0   Message with mailbox-format-specific properties.c             C   sã   t  | t j j ƒ o; |  j t j | ƒ ƒ t  | t ƒ o | j |  ƒ qß n t  | t ƒ o |  j t j	 | ƒ ƒ ne t
 | d ƒ o |  j t j | ƒ ƒ n; | d k o t j j j |  ƒ n t d t | ƒ ƒ ‚ d S(   u   Initialize a Message instance.u   readu   Invalid message type: %sN(   u
   isinstanceu   emailu   messageu   Messageu   _become_messageu   copyu   deepcopyu   _explain_tou   stru   message_from_stringu   hasattru   message_from_fileu   Noneu   __init__u	   TypeErroru   type(   u   selfu   message(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __init__8  s    c             C   s)   x" d
 D] } | j  | |  j  | <q Wd	 S(   u0   Assume the non-format-specific state of message.u   _headersu	   _unixfromu   _payloadu   _charsetu   preambleu   epilogueu   defectsu   _default_typeN(   u   _headersu	   _unixfromu   _payloadu   _charsetu   preambleu   epilogueu   defectsu   _default_type(   u   __dict__(   u   selfu   messageu   name(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _become_messageG  s     c             C   s%   t  | t ƒ o d St d ƒ ‚ d S(   u:   Copy format-specific state to message insofar as possible.Nu    Cannot convert to specified type(   u
   isinstanceu   Messageu	   TypeError(   u   selfu   message(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _explain_toM  s    N(   u   __name__u
   __module__u   __doc__u   Noneu   __init__u   _become_messageu   _explain_to(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   Message5  s   
	c             B   sƒ   |  Ee  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 S(   u)   Message with Maildir-specific properties.c             C   s5   d |  _  d |  _ t j ƒ  |  _ t j |  | ƒ d S(   u%   Initialize a MaildirMessage instance.u   newu    N(   u   _subdiru   _infou   timeu   _dateu   Messageu   __init__(   u   selfu   message(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __init__X  s    		c             C   s   |  j  S(   u   Return 'new' or 'cur'.(   u   _subdir(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   get_subdir_  s    c             C   s;   | d k p | d k o | |  _  n t d | ƒ ‚ d S(   u   Set subdir to 'new' or 'cur'.u   newu   curu!   subdir must be 'new' or 'cur': %sN(   u   _subdiru
   ValueError(   u   selfu   subdir(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   set_subdirc  s    c             C   s-   |  j  j d ƒ o |  j  d d … Sd Sd S(   u*   Return as a string the flags that are set.u   2,i   Nu    (   u   _infou
   startswith(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu	   get_flagsj  s    c             C   s    d d j  t | ƒ ƒ |  _ d S(   u)   Set the given flags and unset all others.u   2,u    N(   u   joinu   sortedu   _info(   u   selfu   flags(    (    u$   /mit/python/lib/python3.0/mailbox.pyu	   set_flagsq  s    c             C   s0   |  j  d j t |  j ƒ  ƒ t | ƒ Bƒ ƒ d S(   u.   Set the given flag(s) without changing others.u    N(   u	   set_flagsu   joinu   setu	   get_flags(   u   selfu   flag(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   add_flagu  s    c             C   sA   |  j  ƒ  o0 |  j d j t |  j  ƒ  ƒ t | ƒ ƒ ƒ n d S(   u7   Unset the given string flag(s) without changing others.u    N(   u	   get_flagsu	   set_flagsu   joinu   set(   u   selfu   flag(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   remove_flagy  s    c             C   s   |  j  S(   u<   Return delivery date of message, in seconds since the epoch.(   u   _date(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   get_date~  s    c             C   s>   y t  | ƒ |  _ Wn$ t k
 o t d | ƒ ‚ Yn Xd S(   u9   Set delivery date of message, in seconds since the epoch.u   can't convert to float: %sN(   u   floatu   _dateu
   ValueErroru	   TypeError(   u   selfu   date(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   set_date‚  s    c             C   s   |  j  S(   u%   Get the message's "info" as a string.(   u   _info(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   get_info‰  s    c             C   s7   t  | t ƒ o | |  _ n t d t | ƒ ƒ ‚ d S(   u    Set the message's "info" string.u   info must be a string: %sN(   u
   isinstanceu   stru   _infou	   TypeErroru   type(   u   selfu   info(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   set_info  s    c             C   sz  t  | t ƒ o= | j |  j ƒ  ƒ | j |  j ƒ  ƒ | j |  j ƒ  ƒ n*t  | t ƒ oÑ t	 |  j ƒ  ƒ } d | k o | j
 d ƒ n |  j ƒ  d k o | j
 d ƒ n d | k o | j
 d ƒ n d | k o | j
 d ƒ n d | k o | j
 d ƒ n | j d	 t j |  j ƒ  ƒ ƒ nIt  | t ƒ op t	 |  j ƒ  ƒ } d | k o | j d
 ƒ n d | k o | j d ƒ n d | k o | j d ƒ qvnÉ t  | t ƒ oŽ t	 |  j ƒ  ƒ } d | k o | j d
 ƒ n d | k o | j d ƒ n d | k o | j d ƒ n d | k o | j d ƒ qvn+ t  | t ƒ o n t d t | ƒ ƒ ‚ d S(   u;   Copy Maildir-specific state to message insofar as possible.u   Su   Ru   curu   Ou   Tu   Du   Fu   Au   MAILER-DAEMONu   unseenu   repliedu   flaggedu   deletedu   answeredu   Pu	   forwardedu$   Cannot convert to specified type: %sN(   u
   isinstanceu   MaildirMessageu	   set_flagsu	   get_flagsu
   set_subdiru
   get_subdiru   set_dateu   get_dateu   _mboxMMDFMessageu   setu   add_flagu   set_fromu   timeu   gmtimeu	   MHMessageu   add_sequenceu   BabylMessageu	   add_labelu   Messageu	   TypeErroru   type(   u   selfu   messageu   flags(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _explain_to”  sN    #N(   u   __name__u
   __module__u   __doc__u   Noneu   __init__u
   get_subdiru
   set_subdiru	   get_flagsu	   set_flagsu   add_flagu   remove_flagu   get_dateu   set_dateu   get_infou   set_infou   _explain_to(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   MaildirMessageU  s   
										c             B   sb   |  Ee  Z d  Z d	 d „ Z d „  Z d	 d „ Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 S(
   u/   Message with mbox- or MMDF-specific properties.c             C   s‚   |  j  d d ƒ t | t j j ƒ oH | j ƒ  } | d k	 o+ | j d ƒ o |  j  | d d … ƒ qn n t j	 |  | ƒ d S(   u'   Initialize an mboxMMDFMessage instance.u   MAILER-DAEMONu   From i   NT(
   u   set_fromu   Trueu
   isinstanceu   emailu   messageu   Messageu   get_unixfromu   Noneu
   startswithu   __init__(   u   selfu   messageu   unixfrom(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __init__Ã  s    c             C   s   |  j  S(   u    Return contents of "From " line.(   u   _from(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   get_fromÌ  s    c             C   sR   | d k	 o8 | d k o t j ƒ  } n | d t j | ƒ 7} n | |  _ d S(   u>   Set "From " line, formatting and appending time_ if specified.u    NT(   u   Noneu   Trueu   timeu   gmtimeu   asctimeu   _from(   u   selfu   from_u   time_(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   set_fromÐ  s
    c             C   s    |  j  d d ƒ |  j  d d ƒ S(   u*   Return as a string the flags that are set.u   Statusu    u   X-Status(   u   get(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu	   get_flagsØ  s    c             C   s  t  | ƒ } d
 \ } } x6 d D]. } | | k o | | 7} | j | ƒ q q Wx6 d D]. } | | k o | | 7} | j | ƒ qX qX W| d j t | ƒ ƒ 7} y |  j d | ƒ Wn$ t k
 o |  j d | ƒ Yn Xy |  j d | ƒ Wn$ t k
 o |  j d | ƒ Yn Xd	 S(   u)   Set the given flags and unset all others.u    u   Ru   Ou   Du   Fu   Au   Statusu   X-StatusN(   u    u    (   u   Ru   O(   u   Du   Fu   A(   u   setu   removeu   joinu   sortedu   replace_headeru   KeyErroru
   add_header(   u   selfu   flagsu   status_flagsu   xstatus_flagsu   flag(    (    u$   /mit/python/lib/python3.0/mailbox.pyu	   set_flagsÜ  s*     
 
c             C   s0   |  j  d j t |  j ƒ  ƒ t | ƒ Bƒ ƒ d S(   u.   Set the given flag(s) without changing others.u    N(   u	   set_flagsu   joinu   setu	   get_flags(   u   selfu   flag(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   add_flagò  s    c             C   sN   d |  k p d |  k o0 |  j  d j t |  j ƒ  ƒ t | ƒ ƒ ƒ n d S(   u7   Unset the given string flag(s) without changing others.u   Statusu   X-Statusu    N(   u	   set_flagsu   joinu   setu	   get_flags(   u   selfu   flag(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   remove_flagö  s    c             C   s¶  t  | t ƒ o"t |  j ƒ  ƒ } d | k o | j d ƒ n d | k o | j d ƒ n d | k o | j d ƒ n d | k o | j d ƒ n d | k o | j d ƒ n | d	 =| d
 =d j |  j ƒ  j ƒ  d d … ƒ } y& | j	 t
 j t j | d ƒ ƒ ƒ Wq²t t f k
 o Yq²Xnt  | t ƒ o* | j |  j ƒ  ƒ | j |  j ƒ  ƒ nGt  | t ƒ o~ t |  j ƒ  ƒ } d | k o | j d ƒ n d | k o | j d ƒ n d | k o | j d ƒ n | d	 =| d
 =n¹ t  | t ƒ o~ t |  j ƒ  ƒ } d | k o | j d ƒ n d | k o | j d ƒ n d | k o | j d ƒ n | d	 =| d
 =n+ t  | t ƒ o n t d t | ƒ ƒ ‚ d S(   uA   Copy mbox- or MMDF-specific state to message insofar as possible.u   Ou   curu   Fu   Au   Ru   Su   Du   Tu   statusu   x-statusu    iûÿÿÿNu   %a %b %d %H:%M:%S %Yu   unseenu   repliedu   flaggedu   deletedu   answeredu$   Cannot convert to specified type: %s(   u
   isinstanceu   MaildirMessageu   setu	   get_flagsu
   set_subdiru   add_flagu   joinu   get_fromu   splitu   set_dateu   calendaru   timegmu   timeu   strptimeu
   ValueErroru   OverflowErroru   _mboxMMDFMessageu	   set_flagsu   set_fromu	   MHMessageu   add_sequenceu   BabylMessageu	   add_labelu   Messageu	   TypeErroru   type(   u   selfu   messageu   flagsu
   maybe_date(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _explain_toû  s^    %
N(   u   __name__u
   __module__u   __doc__u   Noneu   __init__u   get_fromu   set_fromu	   get_flagsu	   set_flagsu   add_flagu   remove_flagu   _explain_to(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _mboxMMDFMessageÀ  s   
						u   _mboxMMDFMessagec             B   s   |  Ee  Z d  Z d S(   u&   Message with mbox-specific properties.N(   u   __name__u
   __module__u   __doc__(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   mboxMessage/  s   
c             B   sM   |  Ee  Z d  Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d S(   u$   Message with MH-specific properties.c             C   s   g  |  _  t j |  | ƒ d S(   u!   Initialize an MHMessage instance.N(   u
   _sequencesu   Messageu   __init__(   u   selfu   message(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __init__6  s    	c             C   s   |  j  d d … S(   u4   Return a list of sequences that include the message.N(   u
   _sequences(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   get_sequences;  s    c             C   s   t  | ƒ |  _ d S(   u3   Set the list of sequences that include the message.N(   u   listu
   _sequences(   u   selfu	   sequences(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   set_sequences?  s    c             C   sR   t  | t ƒ o( | |  j k o |  j j | ƒ qN n t d t | ƒ ƒ ‚ d S(   u8   Add sequence to list of sequences including the message.u   sequence must be a string: %sN(   u
   isinstanceu   stru
   _sequencesu   appendu	   TypeErroru   type(   u   selfu   sequence(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   add_sequenceC  s    c             C   s/   y |  j  j | ƒ Wn t k
 o Yn Xd S(   uA   Remove sequence from the list of sequences including the message.N(   u
   _sequencesu   removeu
   ValueError(   u   selfu   sequence(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   remove_sequenceK  s    c             C   sï  t  | t ƒ oŠ t |  j ƒ  ƒ } d | k o | j d ƒ n | j d ƒ | j d ƒ d | k o | j d ƒ n d | k o | j d ƒ qënRt  | t ƒ o} t |  j ƒ  ƒ } d | k o | j d ƒ n | j d	 ƒ d | k o | j d ƒ n d | k o | j d
 ƒ qënÅ t  | t ƒ o( x± |  j ƒ  D] } | j | ƒ qDWn t  | t	 ƒ oR t |  j ƒ  ƒ } d | k o | j
 d ƒ n d | k o | j
 d ƒ qën+ t  | t ƒ o n t d t | ƒ ƒ ‚ d S(   u6   Copy MH-specific state to message insofar as possible.u   unseenu   curu   Su   flaggedu   Fu   repliedu   Ru   ROu   Ou   Au   answeredu$   Cannot convert to specified type: %sN(   u
   isinstanceu   MaildirMessageu   setu   get_sequencesu
   set_subdiru   add_flagu   _mboxMMDFMessageu	   MHMessageu   add_sequenceu   BabylMessageu	   add_labelu   Messageu	   TypeErroru   type(   u   selfu   messageu	   sequencesu   sequence(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _explain_toR  sB     N(
   u   __name__u
   __module__u   __doc__u   Noneu   __init__u   get_sequencesu   set_sequencesu   add_sequenceu   remove_sequenceu   _explain_to(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu	   MHMessage3  s   
				c             B   sh   |  Ee  Z d  Z d
 d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z d
 S(   u'   Message with Babyl-specific properties.c             C   s)   g  |  _  t ƒ  |  _ t j |  | ƒ d S(   u$   Initialize an BabylMessage instance.N(   u   _labelsu   Messageu   _visibleu   __init__(   u   selfu   message(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __init__|  s    	c             C   s   |  j  d d … S(   u'   Return a list of labels on the message.N(   u   _labels(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   get_labels‚  s    c             C   s   t  | ƒ |  _ d S(   u&   Set the list of labels on the message.N(   u   listu   _labels(   u   selfu   labels(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   set_labels†  s    c             C   sR   t  | t ƒ o( | |  j k o |  j j | ƒ qN n t d t | ƒ ƒ ‚ d S(   u+   Add label to list of labels on the message.u   label must be a string: %sN(   u
   isinstanceu   stru   _labelsu   appendu	   TypeErroru   type(   u   selfu   label(    (    u$   /mit/python/lib/python3.0/mailbox.pyu	   add_labelŠ  s    c             C   s/   y |  j  j | ƒ Wn t k
 o Yn Xd S(   u4   Remove label from the list of labels on the message.N(   u   _labelsu   removeu
   ValueError(   u   selfu   label(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   remove_label’  s    c             C   s   t  |  j ƒ S(   u3   Return a Message representation of visible headers.(   u   Messageu   _visible(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   get_visible™  s    c             C   s   t  | ƒ |  _ d S(   u2   Set the Message representation of visible headers.N(   u   Messageu   _visible(   u   selfu   visible(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   set_visible  s    c             C   s“   xI |  j  j ƒ  D]8 } | |  k o |  j  j | |  | ƒ q |  j  | =q Wx@ d D]8 } | |  k o% | |  j  k o |  | |  j  | <qS qS Wd S(	   u9   Update and/or sensibly generate a set of visible headers.u   Dateu   Fromu   Reply-Tou   Tou   CCu   SubjectN(   u   Dateu   Fromu   Reply-Tou   Tou   CCu   Subject(   u   _visibleu   keysu   replace_header(   u   selfu   header(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   update_visible¡  s      c             C   s-  t  | t ƒ oµ t |  j ƒ  ƒ } d | k o | j d ƒ n | j d ƒ | j d ƒ d | k p d | k o | j d ƒ n d | k o | j d ƒ n d	 | k o | j d
 ƒ q)net  | t ƒ o} t |  j ƒ  ƒ } d | k o | j d ƒ n | j d ƒ d	 | k o | j d ƒ n d | k o | j d ƒ q)nØ t  | t ƒ oR t |  j ƒ  ƒ } d | k o | j d ƒ n d | k o | j d ƒ q)nv t  | t	 ƒ o; | j
 |  j ƒ  ƒ xO |  j ƒ  D] } | j | ƒ qäWn+ t  | t ƒ o n t d t | ƒ ƒ ‚ d S(   u9   Copy Babyl-specific state to message insofar as possible.u   unseenu   curu   Su	   forwardedu   resentu   Pu   answeredu   Ru   deletedu   Tu   ROu   Ou   Du   Au   repliedu$   Cannot convert to specified type: %sN(   u
   isinstanceu   MaildirMessageu   setu
   get_labelsu
   set_subdiru   add_flagu   _mboxMMDFMessageu	   MHMessageu   add_sequenceu   BabylMessageu   set_visibleu   get_visibleu	   add_labelu   Messageu	   TypeErroru   type(   u   selfu   messageu   labelsu   label(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _explain_to¬  sH     N(   u   __name__u
   __module__u   __doc__u   Noneu   __init__u
   get_labelsu
   set_labelsu	   add_labelu   remove_labelu   get_visibleu   set_visibleu   update_visibleu   _explain_to(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   BabylMessagey  s   
							c             B   s   |  Ee  Z d  Z d S(   u&   Message with MMDF-specific properties.N(   u   __name__u
   __module__u   __doc__(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   MMDFMessageÖ  s   
c             B   st   |  Ee  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 d S(   u   A read-only wrapper of a file.c             C   s6   | |  _  | d k o | j ƒ  |  _ n
 | |  _ d S(   u   Initialize a _ProxyFile.N(   u   _fileu   Noneu   tellu   _pos(   u   selfu   fu   pos(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __init__Ý  s    	c             C   s   |  j  | |  j j ƒ S(   u   Read bytes.(   u   _readu   _fileu   read(   u   selfu   size(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   readå  s    c             C   s   |  j  | |  j j ƒ S(   u   Read a line.(   u   _readu   _fileu   readline(   u   selfu   size(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   readlineé  s    c             C   s[   g  } xN |  D]F } | j  | ƒ | d k	 o& | t | ƒ 8} | d k o PqS q q W| S(   u   Read multiple lines.i    N(   u   appendu   Noneu   len(   u   selfu   sizehintu   resultu   line(    (    u$   /mit/python/lib/python3.0/mailbox.pyu	   readlinesí  s     c             c   s,   x% |  j  ƒ  } | p
 t ‚ n | Vq d S(   u   Iterate over lines.N(   u   readlineu   StopIteration(   u   selfu   line(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __iter__ø  s
    
c             C   s   |  j  S(   u   Return the position.(   u   _pos(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   tell   s    i    c             C   sM   | d k o |  j  j |  j ƒ n |  j  j | | ƒ |  j  j ƒ  |  _ d S(   u   Change position.i   N(   u   _fileu   seeku   _posu   tell(   u   selfu   offsetu   whence(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   seek  s    c             C   s
   |  `  d S(   u   Close the file.N(   u   _file(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   close  s    c             C   sL   | d k o
 d } n |  j j |  j ƒ | | ƒ } |  j j ƒ  |  _ | S(   u"   Read size bytes using read_method.iÿÿÿÿN(   u   Noneu   _fileu   seeku   _posu   tell(   u   selfu   sizeu   read_methodu   result(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _read  s    
N(   u   __name__u
   __module__u   __doc__u   Noneu   __init__u   readu   readlineu	   readlinesu   __iter__u   tellu   seeku   closeu   _read(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   _ProxyFileÚ  s   
			u
   _ProxyFilec             B   sA   |  Ee  Z d  Z d d d „ Z d „  Z d d „ Z d „  Z d S(   u&   A read-only wrapper of part of a file.c             C   s)   t  j |  | | ƒ | |  _ | |  _ d S(   u   Initialize a _PartialFile.N(   u
   _ProxyFileu   __init__u   _startu   _stop(   u   selfu   fu   startu   stop(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   __init__  s    	c             C   s   t  j |  ƒ |  j S(   u*   Return the position with respect to start.(   u
   _ProxyFileu   tellu   _start(   u   self(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   tell"  s    i    c             C   s]   | d k o |  j  |  _ d } n$ | d k o |  j |  _ d } n t j |  | | ƒ d S(   u8   Change position, possibly with respect to start or stop.i    i   i   N(   u   _startu   _posu   _stopu
   _ProxyFileu   seek(   u   selfu   offsetu   whence(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   seek&  s    

c             C   sf   |  j  |  j } | d k o d S| d k p | d k  p | | k o
 | } n t j |  | | ƒ S(   u;   Read size bytes using read_method, honoring start and stop.i    u    N(   u   _stopu   _posu   Noneu
   _ProxyFileu   _read(   u   selfu   sizeu   read_methodu	   remaining(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _read0  s    '
N(   u   __name__u
   __module__u   __doc__u   Noneu   __init__u   tellu   seeku   _read(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _PartialFile  s
   
	
u   _PartialFilec          $   C   sE  d } yðt o‚ y t j |  t j t j Bƒ Wq’ t k
 oQ } z; | j t j t j f k o t	 d |  j
 ƒ ‚ n ‚  WYd d } ~ Xq’ Xn | o\y! t |  j
 d ƒ } | j ƒ  WnB t k
 o6 } z  | j t j k o d S‚  WYd d } ~ Xn Xyh t t d ƒ o4 t j | j
 |  j
 d ƒ d } t j | j
 ƒ n! t j | j
 |  j
 d ƒ d } Wqõt k
 o{ } ze | j t j k p# t j
 d k o: | j t j k o' t j | j
 ƒ t	 d |  j
 ƒ ‚ n ‚  WYd d } ~ XqõXn WnH t o t j |  t j ƒ n | o t j |  j
 d ƒ n ‚  Yn Xd S(	   u(   Lock file f using lockf and dot locking.u   lockf: lock unavailable: %sNu   .locku   linku   os2u   dot lock unavailable: %sFT(   u   Falseu   fcntlu   lockfu   LOCK_EXu   LOCK_NBu   IOErroru   errnou   EAGAINu   EACCESu   ExternalClashErroru   nameu   _create_temporaryu   closeu   hasattru   osu   linku   Trueu   unlinku   renameu   OSErroru   EEXISTu   removeu   LOCK_UN(   u   fu   dotlocku   dotlock_doneu   eu   pre_lock(    (    u$   /mit/python/lib/python3.0/mailbox.pyu
   _lock_file:  sL    
#c             C   sT   t  o t  j |  t  j ƒ n t j j |  j d ƒ o t j |  j d ƒ n d S(   u*   Unlock file f using lockf and dot locking.u   .lockN(   u   fcntlu   lockfu   LOCK_UNu   osu   pathu   existsu   nameu   remove(   u   f(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _unlock_fileg  s    c             C   sR   t  j |  t  j t  j Bt  j Bd ƒ } z t |  d d d ƒSWd t  j | ƒ Xd S(   uC   Create a file if it doesn't exist and open for reading and writing.i¶  u   r+u   newlineu    N(   u   osu   openu   O_CREATu   O_EXCLu   O_RDWRu   close(   u   pathu   fd(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _create_carefullyn  s    &c             C   s2   t  d |  t t j ƒ  ƒ t j ƒ  t j ƒ  f ƒ S(   uB   Create a temp file based on path and open for reading and writing.u   %s.%s.%s.%s(   u   _create_carefullyu   intu   timeu   socketu   gethostnameu   osu   getpid(   u   path(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _create_temporaryv  s    	c             C   s5   |  j  ƒ  t t d ƒ o t j |  j ƒ  ƒ n d S(   u0   Ensure changes to file f are physically on disk.u   fsyncN(   u   flushu   hasattru   osu   fsyncu   fileno(   u   f(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _sync_flush|  s    
c             C   s   t  |  ƒ |  j ƒ  d S(   u:   Close file f, ensuring all changes are physically on disk.N(   u   _sync_flushu   close(   u   f(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   _sync_close‚  s    
c             B   s   |  Ee  Z d  Z d S(   u"   Raised for module-specific errors.N(   u   __name__u
   __module__u   __doc__(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   Errorˆ  s   
u   Errorc             B   s   |  Ee  Z d  Z d S(   u:   The specified mailbox does not exist and won't be created.N(   u   __name__u
   __module__u   __doc__(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   NoSuchMailboxError‹  s   
u   NoSuchMailboxErrorc             B   s   |  Ee  Z d  Z d S(   u>   The specified mailbox is not empty and deletion was requested.N(   u   __name__u
   __module__u   __doc__(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   NotEmptyErrorŽ  s   
u   NotEmptyErrorc             B   s   |  Ee  Z d  Z d S(   u)   Another process caused an action to fail.N(   u   __name__u
   __module__u   __doc__(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   ExternalClashError‘  s   
u   ExternalClashErrorc             B   s   |  Ee  Z d  Z d S(   u)   A file appears to have an invalid format.N(   u   __name__u
   __module__u   __doc__(   u
   __locals__(    (    u$   /mit/python/lib/python3.0/mailbox.pyu   FormatError”  s   
u   FormatError(0   u   __doc__u   sysu   osu   timeu   calendaru   socketu   errnou   copyu   emailu   email.messageu   email.generatoru   iou   platformu   ImportErroru   fcntlu   Noneu   __all__u   Mailboxu   Maildiru   _singlefileMailboxu	   _mboxMMDFu   mboxu   MMDFu   MHu   Babylu   messageu   Messageu   MaildirMessageu   _mboxMMDFMessageu   mboxMessageu	   MHMessageu   BabylMessageu   MMDFMessageu
   _ProxyFileu   _PartialFileu   Trueu
   _lock_fileu   _unlock_fileu   _create_carefullyu   _create_temporaryu   _sync_flushu   _sync_closeu	   Exceptionu   Erroru   NoSuchMailboxErroru   NotEmptyErroru   ExternalClashErroru   FormatError(    (    (    u$   /mit/python/lib/python3.0/mailbox.pyu   <module>   sd   
¹ÿ ¬8"-ÿ 5Ý koF]?!-					