mò
­fIc           @   sù   d  Z  d k Z d k Z d d d d d d g Z d f  d	 „  ƒ  YZ d
 f  d „  ƒ  YZ d e 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.Nt   UnixMailboxt   MmdfMailboxt	   MHMailboxt   Maildirt   BabylMailboxt   PortableUnixMailboxt   _Mailboxc           B   s)   t  Z e i d „ Z d „  Z d „  Z RS(   Nc         C   s   | |  _  d |  _ | |  _ d  S(   Ni    (   t   fpt   selft   seekpt   factory(   R   R   R
   (    (    t$   /mit/python/lib/python2.4/mailbox.pyt   __init__   s    		c         C   s   t  |  i d  ƒ S(   N(   t   iterR   t   nextt   None(   R   (    (    R   t   __iter__   s    c         C   s²   x“ |  i i |  i ƒ y |  i ƒ  Wn) t j
 o |  i i ƒ  |  _ d  Sn X|  i i ƒ  } |  i	 ƒ  |  i i ƒ  |  _ } | | j o Pq q W|  i t |  i | | ƒ ƒ S(   Ni   (   R   R   t   seekR	   t   _search_startt   EOFErrort   tellR   t   startt   _search_endt   stopR
   t   _Subfile(   R   R   R   (    (    R   R      s      	

(   t   __name__t
   __module__t   rfc822t   MessageR   R   R   (    (    (    R   R      s   	R   c           B   s\   t  Z d „  Z d „  Z d  d „ Z d  d „ Z d d „ Z d „  Z d d	 „ Z	 d
 „  Z
 RS(   Nc         C   s+   | |  _  | |  _ | |  _ |  i |  _ d  S(   N(   R   R   R   R   t   pos(   R   R   R   R   (    (    R   R   (   s    			c         C   s‘   |  i |  i j o d Sn |  i |  i } | d  j p | d j  p | | j o
 | } n |  i i |  i ƒ | | ƒ } |  i i
 ƒ  |  _ | S(   Nt    i    (   R   R   R   t	   remainingt   lengthR   R   R   t   read_functiont   dataR   (   R   R    R!   R"   R   (    (    R   t   _read/   s    '
c         C   s   |  i | |  i i ƒ S(   N(   R   R#   R    R   t   read(   R   R    (    (    R   R$   :   s    c         C   s   |  i | |  i i ƒ S(   N(   R   R#   R    R   t   readline(   R   R    (    (    R   R%   =   s    iÿÿÿÿc         C   sj   g  } x] |  i ƒ  } | p Pn | i | ƒ | d j o& | t | ƒ } | d j o Pqa q	 q	 W| S(   Ni   i    (   t   linesR   R%   t   linet   appendt   sizehintt   len(   R   R)   R&   R'   (    (    R   t	   readlines@   s      c         C   s   |  i |  i S(   N(   R   R   R   (   R   (    (    R   R   M   s    i    c         C   sg   | d j o |  i | |  _ nC | d j o |  i | |  _ n" | d j o |  i | |  _ n d  S(   Ni    i   i   (   t   whenceR   R   R   R   (   R   R   R,   (    (    R   R   P   s    c         C   s
   |  ` d  S(   N(   R   R   (   R   (    (    R   t   closeX   s    (   R   R   R   R#   R   R$   R%   R+   R   R   R-   (    (    (    R   R   &   s   			c           B   s>   t  Z d „  Z d „  Z d Z d  Z d „  Z d „  Z e Z	 RS(   Nc         C   st   xm |  i i ƒ  } |  i i ƒ  } | p
 t ‚ n | d  d j o( |  i | ƒ o |  i i | ƒ d  Sq q Wd  S(   Ni   i   s   From (	   R   R   R   R   R%   R'   R   t   _isrealfromlineR   (   R   R'   R   (    (    R   R   _   s      
!c         C   s   |  i i ƒ  xk |  i i ƒ  } |  i i ƒ  } | p d  Sn | d  d j o( |  i | ƒ o |  i i | ƒ d  Sq q Wd  S(   Ni   i   s   From (   R   R   R%   R   R   R'   R.   R   (   R   R'   R   (    (    R   R   i   s      !sX   From \s*[^\s]+\s+\w\w\w\s+\w\w\w\s+\d?\d\s+\d?\d:\d\d(:\d\d)?(\s+[^\s]+)?\s+\d\d\d\d\s*$c         C   s<   |  i p" d  k } | i |  i ƒ |  _ n |  i i | ƒ S(   N(   R   t   _regexpt   ret   compilet   _fromlinepatternt   matchR'   (   R   R'   R0   (    (    R   t   _strict_isrealfromline‘   s    
	c         C   s   t  S(   N(   t   True(   R   R'   (    (    R   t   _portable_isrealfromline—   s    (
   R   R   R   R   R2   R   R/   R4   R6   R.   (    (    (    R   R    ]   s   	
	$		c           B   s   t  Z e i Z RS(   N(   R   R   R    R6   R.   (    (    (    R   R      s   c           B   s   t  Z d „  Z d „  Z RS(   Nc         C   sE   x> |  i i ƒ  } | p
 t ‚ n | d  d j o d  Sq q Wd  S(   Ni   i   s   
(   R   R   R%   R'   R   (   R   R'   (    (    R   R   £   s      
c         C   s^   xW |  i i ƒ  } |  i i ƒ  } | p d  Sn | d j o |  i i | ƒ d  Sq q Wd  S(   Ni   s   
(   R   R   R   R   R%   R'   R   (   R   R'   R   (    (    R   R   «   s      (   R   R   R   R   (    (    (    R   R   ¡   s   	c           B   s)   t  Z e i d „ Z d „  Z d „  Z RS(   Nc         C   sŠ   d  k  } | i d ƒ } | |  _ t i |  i ƒ } t | i	 | ƒ } t
 t | ƒ } | i ƒ  t
 t | ƒ |  _ |  i i ƒ  | |  _ d  S(   Ns   ^[1-9][0-9]*$(   R0   R1   t   patt   dirnameR   t   ost   listdirt   listt   filterR3   t   mapt   longt   sortt   strt   boxest   reverseR
   (   R   R8   R
   R7   R;   R0   (    (    R   R   ¸   s    		
c         C   s   t  |  i d  ƒ S(   N(   R   R   R   R   (   R   (    (    R   R   È   s    c         C   s{   |  i p d  Sn |  i i ƒ  } t t i i |  i	 | ƒ ƒ } |  i | ƒ } y | | _ Wn t t f j
 o n X| S(   N(   R   RA   R   t   popt   fnt   openR9   t   patht   joinR8   R   R
   t   msgt	   _mh_msgnot   AttributeErrort	   TypeError(   R   R   RH   RD   (    (    R   R   Ë   s    
(   R   R   R   R   R   R   R   (    (    (    R   R   ¶   s   	c           B   s)   t  Z e i d „ Z d „  Z d „  Z RS(   Nc         C   sù   | |  _  | |  _ t i i |  i  d ƒ } g  } t i | ƒ D]1 } | d d j o | t i i | | ƒ q> q> ~ } t i i |  i  d ƒ } | g  } t i | ƒ D]1 } | d d j o | t i i | | ƒ q§ q§ ~ 7} | i ƒ  | |  _
 d  S(   Nt   newi    t   .t   cur(   R8   R   R
   R9   RF   RG   t   newdirt   _[1]R:   t   fRA   t   curdirRB   (   R   R8   R
   RQ   RP   RO   RA   RR   (    (    R   R   Û   s    		NR
c         C   s   t  |  i d  ƒ S(   N(   R   R   R   R   (   R   (    (    R   R   ë   s    c         C   s:   |  i p d  Sn |  i i ƒ  } t | ƒ } |  i | ƒ S(   N(   R   RA   R   RC   RD   RE   R   R
   (   R   R   RD   (    (    R   R   î   s
    
(   R   R   R   R   R   R   R   (    (    (    R   R   Ø   s   	c           B   s   t  Z d „  Z d „  Z RS(   Nc         C   sA   x: |  i i ƒ  } | p
 t ‚ n | d j o d  Sq q Wd  S(   Ni   s   *** EOOH ***
(   R   R   R%   R'   R   (   R   R'   (    (    R   R   ø   s      
c         C   sk   xd |  i i ƒ  } |  i i ƒ  } | p d  Sn | d j p | d j o |  i i | ƒ d  Sq q Wd  S(   Ni   s   
s   (   R   R   R   R   R%   R'   R   (   R   R'   R   (    (    R   R      s      (   R   R   R   R   (    (    (    R   R   ö   s   	c          C   s‡  d  k  } | i d } | p@ xG d D]( } | t i j o t i | }
 Pq$ q$ Wd GHd  Sn | d }
 |
 d  d j o t i d	 d
 |
 d }
 nA d |
 j o3 t i i d |
 ƒ o d |
 }
 qÕ d |
 }
 n t i i	 |
 ƒ oB t i i	 t i i
 |
 d ƒ ƒ o t |
 ƒ } qEt |
 ƒ } n t |
 d ƒ }  t |  ƒ } g  }	 xP | i ƒ  } | d  j o Pn |	 i | ƒ t | ƒ d j o d  | _ qNqNWt | ƒ d j oN t | d ƒ } d | GH|	 | d } | i ƒ  | i i | i i ƒ  ƒ n… d G|
 Gd Gt |	 ƒ Gd GHxf |	 D]^ } | i d ƒ p d } | i d ƒ p d } | i d ƒ p d } d | | d | f GHq!Wd  S(   Ni   t   MAILDIRt   MAILt   LOGNAMEt   USERs-   $MAIL, $LOGNAME nor $USER set -- who are you?i    t   +t   HOMEs   /Mail/t   /s
   /var/mail/s
   /usr/mail/RN   t   rs   Message %d body:t   Mailboxt   hass	   messages:t   fromR   t   subjectt   dates   -%20.20s   %20.20s   %-30.30si   (   RS   RT   RU   RV   (!   t   syst   argvt   argst   keyR9   t   environt   mboxRF   t   isfilet   isdirRG   R   t   mbR   RE   R   R   t   msgsR   RH   R   R(   R*   t   intt   numt
   rewindbodyt   stdoutt   writeR$   t	   getheaderRQ   t   st   d(   R   RQ   Rh   Rb   R`   Rp   Rk   Rc   RH   Ri   Re   Rq   (    (    R   t   _test  sZ    	 	
"  	
 t   __main__(   t   __doc__R   R9   t   __all__R   R   R    R   R   R   R   R   Rr   R   (   R   R   Ru   R    R   Rr   R   R   R   R   R   R9   (    (    R   t   ?   s   		7@"	5