N
๚า;c    	   sห   d  Z  k Z k Z k Z d f  d     YZ d f  d     YZ d e f d     YZ d e f d     YZ d	 f  d
     YZ d f  d     YZ	 d e f d     YZ
 d   Z e d j o e   n d S(   sA   Classes to handle Unix style, MMDF style, and MH style mailboxes.s   _Mailboxc      s    d   Z  d d  Z d   Z RS(   Nc    s   | |  _  d |  _ d  S(   Ni    (   s   fps   selfs   seekp(   s   selfs   fps,   /mit/python/share/pmail/mail/pmailmailbox.pys   __init__ s    	c    sV   | d j o |  i | |  _ n | d j o |  i | |  _ n |  i | |  _ d  S(   Ni   i   (   s   whences   selfs   poss   stops   start(   s   selfs   poss   whences,   /mit/python/share/pmail/mail/pmailmailbox.pys   seek s
    i    c    sร   x d o |  i i |  i  y |  i   Wn) t j
 o |  i i   |  _ t Sn X|  i i   } |  i	   |  i i   |  _ } | | j o Pn q Wt i t d t |  i | |   Sd  S(   Ni   (   s   selfs   fps   seeks   seekps   _search_starts   EOFErrors   tells   Nones   starts   _search_ends   stops   mhlibs   Messages   _Subfile(   s   selfs   starts   stops,   /mit/python/share/pmail/mail/pmailmailbox.pys   next s     	

(   s   __init__s   seeks   next(    s,   /mit/python/share/pmail/mail/pmailmailbox.pys   _Mailbox
 s    	s   _Subfilec      sN   d   Z  e d  Z e d  Z d d  Z d   Z d d  Z d	   Z RS(
   Nc    s+   | |  _  | |  _ | |  _ |  i |  _ d  S(   N(   s   fps   selfs   starts   stops   pos(   s   selfs   fps   starts   stops,   /mit/python/share/pmail/mail/pmailmailbox.pys   __init__) s    			c    sฅ   |  i |  i j o d Sn |  i |  i } | t j p
 | d j  o
 | } n | | j o
 | } n |  i i |  i  |  i i |  } |  i i
   |  _ | Sd  S(   Ns    i    (   s   selfs   poss   stops	   remainings   lengths   Nones   fps   seeks   reads   datas   tell(   s   selfs   lengths	   remainings   datas,   /mit/python/share/pmail/mail/pmailmailbox.pys   read/ s    

c    s{   |  i |  i j o d Sn | t j o |  i |  i } n |  i i |  i  |  i i |  } |  i i	   |  _ | Sd  S(   Ns    (
   s   selfs   poss   stops   lengths   Nones   fps   seeks   readlines   datas   tell(   s   selfs   lengths   datas,   /mit/python/share/pmail/mail/pmailmailbox.pys   readline< s    c    sv   g  } xe d o] |  i   } | o Pn | i |  | d j o& | t |  } | d j o Pn n q	 W| Sd  S(   Ni   i    (   s   liness   selfs   readlines   lines   appends   sizehints   len(   s   selfs   sizehints   liness   lines,   /mit/python/share/pmail/mail/pmailmailbox.pys	   readlinesF s     i   c    s   |  i |  i Sd  S(   N(   s   selfs   poss   start(   s   selfs,   /mit/python/share/pmail/mail/pmailmailbox.pys   tellS s    c    sg   | d j o |  i | |  _ nC | d j o |  i | |  _ n" | d j o |  i | |  _ n d  S(   Ni    i   i   (   s   whences   selfs   starts   poss   stop(   s   selfs   poss   whences,   /mit/python/share/pmail/mail/pmailmailbox.pys   seekV s    i    c    s
   |  ` d  S(   N(   s   selfs   fp(   s   selfs,   /mit/python/share/pmail/mail/pmailmailbox.pys   close^ s    (   s   __init__s   Nones   reads   readlines	   readliness   tells   seeks   close(    s,   /mit/python/share/pmail/mail/pmailmailbox.pys   _Subfile' s    	
	s   UnixMailboxc      s)   d   Z  d   Z d Z e Z d   Z RS(   Nc    s]   xV d oN |  i i   } | o
 t  n | d  d j o |  i |  o d  Sn q Wd  S(   Ni   i   s   From (   s   selfs   fps   readlines   lines   EOFErrors   _isrealfromline(   s   selfs   lines,   /mit/python/share/pmail/mail/pmailmailbox.pys   _search_startc s     
!c    sz   xs d ok |  i i   } |  i i   } | o d  Sn | d  d j o |  i |  o |  i i |  d  Sn q Wd  S(   Ni   i   s   From (   s   selfs   fps   tells   poss   readlines   lines   _isrealfromlines   seek(   s   selfs   poss   lines,   /mit/python/share/pmail/mail/pmailmailbox.pys   _search_endk s     !s   ^From c    s>   |  i o k } | i |  i  |  _ n |  i i |  Sd  S(   N(   s   selfs   _regexps   res   compiles   _fromlinepatterns   matchs   line(   s   selfs   lines   res,   /mit/python/share/pmail/mail/pmailmailbox.pys   _isrealfromline s    (   s   _search_starts   _search_ends   _fromlinepatterns   Nones   _regexps   _isrealfromline(    s,   /mit/python/share/pmail/mail/pmailmailbox.pys   UnixMailboxa s
    		s   MmdfMailboxc      s   d   Z  d   Z RS(   Nc    sM   xF d o> |  i i   } | o
 t  n | d  d j o d  Sn q Wd  S(   Ni   i   s   
(   s   selfs   fps   readlines   lines   EOFError(   s   selfs   lines,   /mit/python/share/pmail/mail/pmailmailbox.pys   _search_start s     
c    sf   x_ d oW |  i i   } |  i i   } | o d  Sn | d j o |  i i |  d  Sn q Wd  S(   Ni   s   
(   s   selfs   fps   tells   poss   readlines   lines   seek(   s   selfs   poss   lines,   /mit/python/share/pmail/mail/pmailmailbox.pys   _search_end s     (   s   _search_starts   _search_end(    s,   /mit/python/share/pmail/mail/pmailmailbox.pys   MmdfMailbox s    	s	   MHMailboxc      s   d   Z  d   Z RS(   Nc    st   k  } | i d  } | |  _ t i |  i  } g  |  _ x4 | d r* } | i
 |  o |  i i |  n qB Wd  S(   Ns   ^[0-9][0-9]*$i    (   s   res   compiles   pats   dirnames   selfs   oss   listdirs   filess   boxess   fs   matchs   append(   s   selfs   dirnames   res   pats   filess   fs,   /mit/python/share/pmail/mail/pmailmailbox.pys   __init__ s    			 c    sY   |  i o t Sn |  i d } |  i d =t t i i |  i |   } t
 i |  Sd  S(   Ni    (   s   selfs   boxess   Nones   fns   opens   oss   paths   joins   dirnames   fps   rfc822s   Message(   s   selfs   fns   fps,   /mit/python/share/pmail/mail/pmailmailbox.pys   nextฆ s    
(   s   __init__s   next(    s,   /mit/python/share/pmail/mail/pmailmailbox.pys	   MHMailbox s    	
s   Maildirc      s   d   Z  d   Z RS(   Nc    s  k  } | |  _ g  |  _ t i i |  i d  } x[ t i |  d rH } t
 | i | d   d j o# |  i i t i i | |   n qB Wt i i |  i d  } x[ t i |  d rH } t
 | i | d   d j o# |  i i t i i | |   n qธ Wd  S(   Ns   newi    s   .i   s   cur(   s   strings   dirnames   selfs   boxess   oss   paths   joins   newdirs   listdirs   files   lens   splits   appends   curdir(   s   selfs   dirnames   strings   newdirs   files   curdirs,   /mit/python/share/pmail/mail/pmailmailbox.pys   __init__ฒ s    		 ' c    sY   |  i o t Sn |  i d } |  i d =t t i i |  i |   } t
 i |  Sd  S(   Ni    (   s   selfs   boxess   Nones   fns   opens   oss   paths   joins   dirnames   fps   rfc822s   Message(   s   selfs   fns   fps,   /mit/python/share/pmail/mail/pmailmailbox.pys   nextร s    
(   s   __init__s   next(    s,   /mit/python/share/pmail/mail/pmailmailbox.pys   Maildirฎ s    	s   BabylMailboxc      s   d   Z  d   Z RS(   Nc    sI   xB d o: |  i i   } | o
 t  n | d j o d  Sn q Wd  S(   Ni   s   *** EOOH ***
(   s   selfs   fps   readlines   lines   EOFError(   s   selfs   lines,   /mit/python/share/pmail/mail/pmailmailbox.pys   _search_startอ s     
c    sf   x_ d oW |  i i   } |  i i   } | o d  Sn | d j o |  i i |  d  Sn q Wd  S(   Ni   s   
(   s   selfs   fps   tells   poss   readlines   lines   seek(   s   selfs   poss   lines,   /mit/python/share/pmail/mail/pmailmailbox.pys   _search_endี s     (   s   _search_starts   _search_end(    s,   /mit/python/share/pmail/mail/pmailmailbox.pys   BabylMailboxห s    	c     sy  k  }  k } k } k } | i d } | oQ xJ d d d d f d r+ } | i i |  o | i | } Pn qB Wd GHd  Sn | d } | d  d j o | i d	 d
 | d } n d | j o d | } n | i
 i |  oB | i
 i | i
 i | d   o t |  } n t |  } n t | d  } t |  } g  }	 x@ d o8 | i   }
 |
 t j o Pn |	 i |
  t |
 _ qKWt |  d j oQ | i | d  } d | GH|	 | d }
 |
 i   | i i |
 i i    n d G| Gd Gt |	  Gd GHxh |	 d r^ }
 |
 i d  p d } |
 i d  p d } |
 i d  p d } d | | d | f GHqWd  S(   Ni   s   MAILDIRs   MAILs   LOGNAMEs   USERi    s-   $MAIL, $LOGNAME nor $USER set -- who are you?s   +s   HOMEs   /Mail/s   /s
   /usr/mail/s   curs   rs   Message %d body:s   Mailboxs   hass	   messages:s   froms    s   subjects   dates   %20.20s   %18.18s   %-30.30si   (#   s   times   syss   strings   oss   argvs   argss   keys   environs   has_keys   mboxs   paths   isdirs   joins   Maildirs   mbs	   MHMailboxs   opens   fps   UnixMailboxs   msgss   nexts   msgs   Nones   appends   lens   atois   nums
   rewindbodys   stdouts   writes   reads	   getheaders   fs   ss   d(   s   times   syss   strings   oss   argss   keys   mboxs   mbs   fps   msgss   msgs   nums   fs   ss   ds,   /mit/python/share/pmail/mail/pmailmailbox.pys   _testเ sZ     	
" 	
	 s   __main__N(   s   __doc__s   rfc822s   mhlibs   oss   _Mailboxs   _Subfiles   UnixMailboxs   MmdfMailboxs	   MHMailboxs   Maildirs   BabylMailboxs   _tests   __name__(    s,   /mit/python/share/pmail/mail/pmailmailbox.pys   ? s   :%	4