;ò
¢)?Bc           @   s^  d  k  l Z d k Z d k Z d k Z d k Z d k Z d k l Z l	 Z	 l
 Z
 d k Z d k l Z d k l Z d Z e Z d Z d k l Z d k l Z d	 k l Z d
 k l Z d Z e i d ƒ Z d „  Z d d d d g Z  d „  Z! d f  d „  ƒ  YZ" d e" f d „  ƒ  YZ# d f  d „  ƒ  YZ$ d f  d „  ƒ  YZ% d e# f d „  ƒ  YZ& d S(   (   s   nested_scopesN(   s	   parseaddrs   parsedate_tzs	   mktime_tz(   s   StringIO(   s	   lowercases   0.09 (Mailman edition)id   (   s   Errors(   s   ArchiverMailbox(   s   syslog(   s   _s    s   (<.*>)c         C   sK   |  o d Sn |  d d j o |  d d j o |  d d !}  n |  Sd S(   s:   Remove quotes or parenthesization from a Message-ID strings    i    s   "<([iÿÿÿÿs   ">)]i   N(   s   s(   s   s(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   strip_separators   s     "s   vans   vons   ders   dec         C   s8  d |  j o |  Sn |  i ƒ  } t | ƒ d } | d j o |  Sn |  i ƒ  |  j p |  i ƒ  |  j o> xŽ | d j o | | d i ƒ  t j o | d } qo WnT xP | d j o1 | | d d t j p | | d i ƒ  t j o | d } q­ Wt	 i
 | d | | d !ƒ d t	 i
 | |  ƒ }  |  Sd S(   s+   Canonicalize a name into Last, First formats   ,i   i    iÿÿÿÿs   , N(   s   authors   splits   Ls   lens   is   uppers   lowers   smallNamePartss	   lowercases   SPACEs   join(   s   authors   is   L(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys	   fixAuthor'   s      & ( A3s   DatabaseInterfacec           B   s†   t  Z d „  Z d „  Z d „  Z d „  Z e e e d „ Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z RS(   Nc         C   s   d  S(   N(    (   s   self(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   __init__@   s    c         C   s   d  S(   N(    (   s   self(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   closeA   s    c         C   s   d  S(   N(    (   s   selfs   archives   msgid(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys
   getArticleB   s    c         C   s   d  S(   N(    (   s   selfs   archives   msgid(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys
   hasArticleC   s    c         C   s   d  S(   N(    (   s   selfs   archives   articles   subjects   authors   date(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys
   addArticleD   s    c         C   s   d  S(   N(    (   s   selfs   archive(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys	   firstdateF   s    c         C   s   d  S(   N(    (   s   selfs   archive(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   lastdateG   s    c         C   s   d  S(   N(    (   s   selfs   archives   index(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   firstH   s    c         C   s   d  S(   N(    (   s   selfs   archives   index(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   nextI   s    c         C   s   d  S(   N(    (   s   selfs   archive(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   numArticlesJ   s    c         C   s   d  S(   N(    (   s   selfs   archive(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys
   newArchiveK   s    c         C   s   d  S(   N(    (   s   selfs   archives   keys   msgid(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   setThreadKeyL   s    c         C   s   d  S(   N(    (   s   selfs   subject(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   getOldestArticleM   s    (   s   __name__s
   __module__s   __init__s   closes
   getArticles
   hasArticles   Nones
   addArticles	   firstdates   lastdates   firsts   nexts   numArticless
   newArchives   setThreadKeys   getOldestArticle(    (    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   DatabaseInterface?   s   											s   Databasec           B   s2   t  Z d  Z d „  Z e e e d „ Z d „  Z RS(   s‚   Define the basic sorting logic for a database

    Assumes that the database internally uses dateIndex, authorIndex,
    etc.
    c         C   s1   h  |  _ h  |  _ h  |  _ h  |  _ h  |  _ d  S(   N(   s   selfs	   dateIndexs   authorIndexs   subjectIndexs   articleIndexs   changed(   s   self(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   __init__Y   s
    				c         C   s<  | p | i  | i | i f }	 | p | i | i | i f } | p | i | i f } | i |  i	 | <| i |  i
 |	 <| i |  i | <|  i | ƒ t |  i | | i f <| i } | t j	 o |  i i | ƒ o* |  i | | ƒ } | i | i d }
 n | i d }
 |
 | _ |
 | i f } |  i | | | i ƒ d  S(   Ns   -(   s   authors   articles   dates   msgids	   authorkeys   subjects
   subjectkeys   datekeys   selfs	   dateIndexs   authorIndexs   subjectIndexs   store_articles   Nones   changeds   archives   parentIDs   articleIndexs   has_keys
   getArticles   parents	   threadKeys   myThreadKeys   keys   setThreadKey(   s   selfs   archives   articles   subjects   authors   dates   keys   parents   parentIDs	   authorkeys   myThreadKeys   datekeys
   subjectkey(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys
   addArticleb   s     	 	c         C   sP   | i } | i } g  | _ | ` t i | ƒ |  i | i	 <| | _ | | _ d S(   s0   Store article without message body to save spaceN(
   s   articles   bodys   temps	   html_bodys   temp2s   pickles   dumpss   selfs   articleIndexs   msgid(   s   selfs   articles   temps   temp2(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   store_article}   s     				(   s   __name__s
   __module__s   __doc__s   __init__s   Nones
   addArticles   store_article(    (    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   DatabaseO   s    		s   Articlec           B   sA   t  Z e i ƒ  Z e d g  d „ Z d „  Z d „  Z d „  Z RS(   Ni    c         C   s¡  | t j o d  Sn | |  _ t |  _ t |  _ t | d ƒ }
 |
 d j o t |  i ƒ |  _	 n
 |
 |  _	 | i
 d ƒ o t | d ƒ |  _ n t d ƒ |  _ |  i d j o t d ƒ |  _ n |  i | ƒ t | i d d ƒ ƒ \ |  _ |  _ | d } |  i o
 | t j	 o t | ƒ \ }	 |  _ n t |  i ƒ |  _ t |  i ƒ |  _ |  i d j o |  i |  _ n | d |  _ | d |  _ | d	 |  _ | d
 } | t j o d |  _ nB t i | ƒ } | t j o d |  _ n t | i d ƒ ƒ |  _ | d } | t j o g  |  _ n t t | i ƒ  ƒ |  _ h  |  _  x3 | D]+ } | i
 | ƒ o | | |  i  | <qMqMWt# | i$ ƒ  ƒ } | i& ƒ  |  _' d  S(   Ns
   Message-Ids    s   Subjects
   No subjects   Froms   Reply-Tos   in-reply-tos
   referencess
   message-ids   In-Reply-Toi   s
   References((   s   messages   Nones   sequences   selfs   parentIDs	   threadKeys   strip_separatorss   ids   strs   msgids   has_keys   subjects   _s	   _set_dates	   parseaddrs   gets   authors   emails   es   ignoreauthors   _in_reply_tos   _referencess   _message_ids   i_r_ts   in_reply_tos	   msgid_pats   searchs   matchs   groups
   referencess   maps   splits   headerss   keepHeaderss   is   StringIOs   get_payloads   ss	   readliness   body(   s   selfs   messages   sequences   keepHeaderss   es   is   ss
   referencess   i_r_ts   ignoreauthors   ids   match(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   __init__œ   sX    				 $

 
	 c            sm   ‡  d †  } | d ƒ } | t j o | d ƒ } n | t j o |  i d } n | |  _ d | |  _ d  S(   Nc            sn   g  } ˆ  i |  | ƒ } | | j o t Sn t | ƒ } y t | ƒ SWn  t	 t
 t f j
 o t Sn Xd  S(   N(   s   missings   messages   gets   headers   datestrs   Nones   parsedate_tzs   dates	   mktime_tzs	   TypeErrors
   ValueErrors   OverflowError(   s   headers   missings   datestrs   date(   s   message(    s*   /var/mailman/Mailman/Archiver/pipermail.pys	   floatdateà   s    s   dates   x-list-received-datei   s   %011i(   s	   floatdates   dates   Nones   selfs   _last_article_time(   s   selfs   messages   dates	   floatdate(    (   s   messages*   /var/mailman/Mailman/Archiver/pipermail.pys	   _set_dateß   s    
	c         C   s   d t  |  i ƒ d Sd  S(   Ns   <Article ID = s   >(   s   reprs   selfs   msgid(   s   self(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   __repr__ó   s    c         C   s   d  S(   N(    (   s   self(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   finished_update_articleö   s    (	   s   __name__s
   __module__s   times   _last_article_times   Nones   __init__s	   _set_dates   __repr__s   finished_update_article(    (    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   Article™   s
   C		s   Tc           B   sU  t  Z d Z d Z d Z e d e d „ Z d „  Z d „  Z d „  Z	 g  d	 „ Z
 d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e e d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  d  „  Z! d! „  Z" d" „  Z# d# „  Z$ d$ „  Z% d% „  Z& RS(&   Nií  i¤  s   .htmli   c         C   sá  | t j o t i ƒ  |  _  n t i i | ƒ } | |  _  | |  _ y t i |  i  ƒ Wn• t i	 j
 o† }	 |	 \ } }
 | d j o t i	 |	 ‚ qð |  i t d ƒ |  i  ƒ t i d ƒ } z t i |  i  |  i ƒ Wd  t i | ƒ Xn Xy | o
 t ‚ n t t i i |  i  d ƒ d ƒ } |  i t d ƒ ƒ t i | ƒ } | i ƒ  x* | i ƒ  D] \ } } t |  | | ƒ q_WWn= t t  f j
 o+ g  |  _! g  |  _" d |  _# d |  _$ n X| |  i  j o | |  _  n d  S(   Ni   s   Creating archive directory i    s   pipermail.pcks   rs   Reloading pickled archive state(%   s   basedirs   Nones   oss   getcwds   selfs   paths
   expandusers   databases   stats   errors   errdatas   errnos   errmsgs   messages   _s   umasks   omasks   mkdirs   DIRMODEs   reloads   IOErrors   opens   joins   fs   pickles   loads   ds   closes   itemss   keys   values   setattrs   EOFErrors   archivess   _dirty_archivess   sequences
   update_TOC(   s   selfs   basedirs   reloads   databases   fs   ds   errnos   values   keys   errdatas   errmsgs   omask(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   __init__   sD    		 
!
 			c         C   sÂ   |  i ƒ  d |  _ |  i ƒ  |  i t d ƒ t i i |  i	 d ƒ ƒ |  i
 i ƒ  |  `
 t i d ƒ } z% t t i i |  i	 d ƒ d ƒ } Wd t i | ƒ Xt i |  i ƒ  | ƒ | i ƒ  d S(   sB   Close an archive, save its state, and update any changed archives.i    s   Pickling archive state into s   pipermail.pcki   s   wN(   s   selfs   update_dirty_archivess
   update_TOCs	   write_TOCs   messages   _s   oss   paths   joins   basedirs   databases   closes   umasks   omasks   opens   fs   pickles   dumps   getstate(   s   selfs   fs   omask(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   close5  s     
	
)% c         C   s   |  i Sd  S(   N(   s   selfs   __dict__(   s   self(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   getstateH  s    c         C   sˆ   |  i i | ƒ } |  i i | ƒ } t i t i t i ƒ  ƒ ƒ } | |  _ | |  _ | |  _	 |  i i
 | ƒ |  _ | |  _ t |  _ d  S(   N(   s   selfs   databases	   firstdates   archives   lastdates   times   asctimes	   localtimes   nows   archivedates   numArticless   sizes   __version__s   version(   s   selfs   archives	   firstdates   lastdates   now(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   __set_parametersU  s    				c         C   sa  t  } | i o | i } n=| i o› t |  i i | i ƒ }
 |
 o t  Sn |  i
 i |  i |
 d ƒ } xG |
 d D]; }	 |  i
 i |  i |	 ƒ } | i | i j o
 | } qv qv W| i } n˜ y |  i i | i ƒ \ } } | G| GH|  i i ƒ  | i d ƒ \ } } | i G| G| GH| | i j o
 | | j o
 | } n Wn t j
 o n X| Sd  S(   Ni    i   s    (   s   Nones   parentIDs   articles   in_reply_tos
   referencess   filters   selfs   articleIndexs   has_keys   refss   databases
   getArticles   archives   maxdates   refs   as   dates   msgids   subjectIndexs   set_locations   subjects   keys   tempids   nexts   splits   childrens   KeyError(   s   selfs   articles   childrens   as   maxdates   tempids   keys   parentIDs   dates   refs   refss   subject(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   __findParentf  s4    

 	c         C   s  |  i i |  i d ƒ |  i i |  i d ƒ } xä | t j	 oÖ y |  i i |  i | ƒ } Wn t	 j
 o nŠ X| i
 t j p |  i i |  i | i
 ƒ o n3 |  i i |  i | i
 ƒ } | i | i d | _ |  i i |  i | i | i f | ƒ |  i i |  i d ƒ } q1 Wd  S(   Ns   threads   dates   -(   s   selfs   databases
   clearIndexs   archives   firsts   msgids   Nones
   getArticles   articles   KeyErrors   parentIDs
   hasArticles   parents	   threadKeys   dates   setThreadKeys   next(   s   selfs   parents   msgids   article(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   updateThreadedIndex†  s$     c         C   s‚   | |  _  |  i t d ƒ ƒ t i i |  i | ƒ } |  i	 | ƒ x* d d d f D] } |  i | | | ƒ qQ W|  i | | ƒ d  S(   Ns.   Updating index files for archive [%(archive)s]s   Dates   Subjects   Author(   s   archives   selfs   messages   _s   oss   paths   joins   basedirs   arcdirs   _T__set_parameterss   hdrs   _update_simple_indexs   _update_thread_index(   s   selfs   archives   hdrs   arcdir(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   update_archive¨  s    	 c         C   sæ   |  i d | ƒ | |  _ | i ƒ  } |  i | | ƒ |  i ƒ  d } |  i	 i
 | | ƒ } xp | t j	 ob y |  i	 i |  i | ƒ } Wn t j
 o n X| d } |  i | ƒ |  i	 i | | ƒ } q^ W|  i ƒ  |  i ƒ  d  S(   Ns     i    i   (   s   selfs   messages   hdrs   types   lowers   _open_index_file_as_stdouts   arcdirs   write_index_headers   counts   databases   firsts   archives   msgids   Nones
   getArticles   articles   KeyErrors   write_index_entrys   nexts   write_index_footers   _restore_stdout(   s   selfs   hdrs   archives   arcdirs   counts   msgids   article(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   _update_simple_index³  s$    	
 

c         C   s£  |  i t d ƒ ƒ |  i | d ƒ d |  _ |  i ƒ  t g d } d } |  i
 i |  i d ƒ } x] | t j	 o
 | d j  oB |  i
 i |  i | ƒ | | <| d } |  i
 i |  i d ƒ } qd WxÇ| d t j	 oµ| d }	 t }
 |	 t j	 o |	 i }
 n |
 t j	 oþ |  i |	 |
 i d ƒ d ƒ |  i
 i i | |	 i f ƒ o¾ | d } | d } |  i | |	 | | ƒ | t j	 o t |  i
 i | | i f <n | t j	 oY | | i f } |  i
 i i | ƒ o" |  i | | | d	 | d ƒ q|  i
 i | =qq
n | d	 o | d	 i ƒ  n | d } | t j o | i | ƒ n  | i |  i
 i |  i | ƒ ƒ |  i
 i |  i d ƒ } qÄ W|  i ƒ  |  i ƒ  d  S(
   Ns     Threads   threads   Threadi   i   i   s   -i   i    (   s   selfs   messages   _s   _open_index_file_as_stdouts   arcdirs   types   write_index_headers   Nones   Ls   is   databases   firsts   archives   msgids
   getArticles   nexts   articles   artkeys	   threadKeys   write_threadindex_entrys   counts   changeds   has_keys   a1s   a3s   update_articles   keys   finished_update_articles   appends   write_index_footers   _restore_stdout(   s   selfs   archives   arcdirs   is   msgids   Ls   a1s   a3s   keys   articles   artkey(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   _update_thread_indexÊ  sP    	
 
 


"

c         C   sn   t  i i | | |  i ƒ } t  i d ƒ } z t	 | d ƒ |  _
 Wd  t  i | ƒ Xt i |  _ |  i
 t _ d  S(   Ni   s   w(   s   oss   paths   joins   arcdirs
   index_names   selfs	   INDEX_EXTs   umasks   omasks   opens   _T__fs   syss   stdouts
   _T__stdout(   s   selfs   arcdirs
   index_names   paths   omask(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   _open_index_file_as_stdoutü  s     c         C   s)   |  i t _ |  i i ƒ  |  ` |  ` d  S(   N(   s   selfs
   _T__stdouts   syss   stdouts   _T__fs   close(   s   self(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   _restore_stdout  s    c         C   s.   x |  i D] } |  i | ƒ q
 Wg  |  _ d  S(   N(   s   selfs   _dirty_archivess   is   update_archive(   s   selfs   i(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   update_dirty_archives  s    
 c         C   s   t  | | ƒ Sd  S(   N(   s   Articles   msgs   sequence(   s   selfs   msgs   sequence(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   _makeArticle  s    c   
      C   s¤  t  | |  i ƒ }	 | t j o
 d } n d } x] | | j  oO y |	 i ƒ  } Wn t
 i j
 o
 q2 n X| t j o d  Sn | d 7} q2 Wxn oy | i ƒ  } |	 i ƒ  } Wn> t
 i j
 o
 q™ n' t j
 o t d d | ƒ ‚  n X| t j o Pn | d j o q™ n | i d d ƒ } |  i t d ƒ ƒ |  i | |  i ƒ } |  i d 7_ |  i | ƒ | t j	 o
 | | j o Pn | d 7} q™ Wd  S(	   Ni    i   s   errors*   uncaught archiver exception at filepos: %ss    s
   message-ids   n/as   #%(counter)05d %(msgid)s(   s   ArchiverMailboxs   inputs   selfs   maillists   mboxs   starts   Nones   counters   nexts   ms   Errorss   DiscardMessages   tells   poss	   Exceptions   syslogs   gets   msgids   messages   _s   _makeArticles   sequences   as   add_articles   end(
   s   selfs   inputs   starts   ends   as   msgids   counters   ms   poss   mbox(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   processUnixMailbox  sH    
  	c         C   sÉ   |  i i | ƒ d |  _ |  i i | ƒ y t i | ƒ Wnx t i
 j
 oi } | \ } } | d j o; t i d ƒ } z t i | |  i ƒ Wd  t i | ƒ Xqµ t i
 | ‚ n X|  i | | ƒ d  S(   Ni   i   i    (   s   selfs   archivess   appends   archives
   update_TOCs   databases
   newArchives   oss   stats
   archivedirs   errors   errdatas   errnos   errmsgs   umasks   omasks   mkdirs   DIRMODEs   open_new_archive(   s   selfs   archives
   archivedirs   errnos   omasks   errdatas   errmsg(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   new_archive>  s    	 c         C   sÒ  |  i | ƒ } | o d  Sn t | ƒ t d ƒ j o | g } n |  i | ƒ | _ } |  i | ƒ } xa| D]Y} | |  _
 t i i |  i | ƒ } | |  i j o |  i | | ƒ n |  i | | t i i | | ƒ ƒ t | i ƒ } | i i ƒ  }
 |  i | | ƒ | _ }	 |	 o0 |  i i | |	 ƒ } | i | i d | _ n | i d | _ | i | i f } |  i i | | | i ƒ |  i i  | | d | d |
 ƒ| |  i! j o |  i! i" | ƒ qq qq Wd  S(   Ns    s   -s   authors   subject(#   s   selfs   get_archivess   articles   archivess   types   get_filenames   filenames   format_articles   temps   archs   archives   oss   paths   joins   basedirs
   archivedirs   new_archives   write_articles	   fixAuthors   authors   subjects   lowers   get_parent_infos   parentIDs   databases
   getArticles   parents	   threadKeys   dates   msgids   keys   setThreadKeys
   addArticles   _dirty_archivess   append(   s   selfs   articles   parents   temps   authors   archs   filenames   archivess   keys   parentIDs   subjects
   archivedir(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   add_articleQ  s8     	

c         C   sù   t  } | i o | i } n­ | i oŠ |  i | i ƒ } | om |  i i	 | | d ƒ } xD | d D]8 } |  i i	 | | ƒ } | i | i j o
 | } qd qd W| i } qÉ n |  i i | | i ƒ } | o |  i i | | ƒ o
 t  } n | Sd  S(   Ni    i   (   s   Nones   parentIDs   articles   in_reply_tos
   referencess   selfs   _remove_external_referencess   refss   databases
   getArticles   archives   maxdates   refs   as   dates   msgids   getOldestArticles   subjects
   hasArticle(   s   selfs   archives   articles   as   maxdates   parentIDs   refs   refs(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   get_parent_infov  s$    

 
c         C   s   t  i d ƒ } z t | d ƒ } Wd  t  i | ƒ Xt i | f \ } t _ |  i
 | ƒ t i i | i ƒ |  i | ƒ | t _ | i ƒ  d  S(   Ni   s   w(   s   oss   umasks   omasks   opens   paths   fs   syss   stdouts   temp_stdouts   selfs   write_article_headers   articles
   writeliness   bodys   write_article_footers   close(   s   selfs   indexs   articles   paths   fs   temp_stdouts   omask(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   write_article  s     	c         C   sI   g  } x8 | D]0 } |  i i |  i | ƒ o | i | ƒ q q W| Sd  S(   N(   s   keeps   refss   refs   selfs   databases
   hasArticles   archives   append(   s   selfs   refss   refs   keep(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   _remove_external_referencesš  s     c         C   s   d  S(   N(    (   s   selfs   article(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   get_filename¤  s    c         C   s   d S(   s¦   Return a list of indexes where the article should be filed.
        A string can be returned if the list only contains one entry,
        and the empty list is legal.N(    (   s   selfs   article(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   get_archives¦  s     c         C   s   d  S(   N(    (   s   selfs   article(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   format_article«  s    c         C   s   d  S(   N(    (   s   self(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   write_index_header­  s    c         C   s   d  S(   N(    (   s   self(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   write_index_footer¯  s    c         C   s   d  S(   N(    (   s   selfs   article(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   write_index_entry±  s    c         C   s   d  S(   N(    (   s   selfs   articles   depth(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   write_threadindex_entry³  s    c         C   s   d  S(   N(    (   s   selfs   article(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   write_article_headerµ  s    c         C   s   d  S(   N(    (   s   selfs   article(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   write_article_footer·  s    c         C   s   d  S(   N(    (   s   selfs   article(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   write_article_entry¹  s    c         C   s   d  S(   N(    (   s   selfs
   archivedirs   articles   prevs   next(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   update_article»  s    c         C   s   d  S(   N(    (   s   self(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys	   write_TOC½  s    c         C   s   d  S(   N(    (   s   selfs   archives   dir(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   open_new_archive¿  s    c         C   s   d  S(   N(    (   s   selfs   msg(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   messageÁ  s    ('   s   __name__s
   __module__s   DIRMODEs   FILEMODEs	   INDEX_EXTs   Nones   __init__s   closes   getstates   _T__set_parameterss   _T__findParents   updateThreadedIndexs   update_archives   _update_simple_indexs   _update_thread_indexs   _open_index_file_as_stdouts   _restore_stdouts   update_dirty_archivess   _makeArticles   processUnixMailboxs   new_archives   add_articles   get_parent_infos   write_articles   _remove_external_referencess   get_filenames   get_archivess   format_articles   write_index_headers   write_index_footers   write_index_entrys   write_threadindex_entrys   write_article_headers   write_article_footers   write_article_entrys   update_articles	   write_TOCs   open_new_archives   message(    (    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   Tû   sH   5			 	"			2	
				%		%			
													s   BSDDBdatabasec           B   sª   t  Z e i Z d „  Z d „  Z d „  Z d „  Z e	 e	 e	 d „ Z d „  Z
 d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   Nc         C   s=   g  |  _ h  |  _ t |  _ t i i | ƒ |  _ h  |  _	 d  S(   N(
   s   selfs   _BSDDBdatabase__cachekeyss   _BSDDBdatabase__cachedicts   Nones"   _BSDDBdatabase__currentOpenArchives   oss   paths
   expandusers   basedirs   changed(   s   selfs   basedir(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   __init__È  s
    			c         C   sh   |  i | ƒ d } y7 |  i i ƒ  \ } } t i t i	 t
 | ƒ ƒ ƒ } Wn t j
 o n X| Sd  S(   Ns   None(   s   selfs   _BSDDBdatabase__openIndicess   archives   dates	   dateIndexs   firsts   msgids   times   asctimes	   localtimes   floats   KeyError(   s   selfs   archives   msgids   date(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys	   firstdateÐ  s    "c         C   sh   |  i | ƒ d } y7 |  i i ƒ  \ } } t i t i	 t
 | ƒ ƒ ƒ } Wn t j
 o n X| Sd  S(   Ns   None(   s   selfs   _BSDDBdatabase__openIndicess   archives   dates	   dateIndexs   lasts   msgids   times   asctimes	   localtimes   floats   KeyError(   s   selfs   archives   msgids   date(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   lastdateÚ  s    "c         C   s   |  i | ƒ t |  i ƒ Sd  S(   N(   s   selfs   _BSDDBdatabase__openIndicess   archives   lens	   dateIndex(   s   selfs   archive(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   numArticlesä  s    c         C   s*   |  i | ƒ |  i | | | | | ƒ d  S(   N(   s   selfs   _BSDDBdatabase__openIndicess   archives    _BSDDBdatabase__super_addArticles   articles   subjects   authors   date(   s   selfs   archives   articles   subjects   authors   date(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys
   addArticleè  s    c         C   s  |  i | j o d  Sn d  k } |  i ƒ  t i i |  i d ƒ } t i
 d ƒ } z. y t i | d ƒ Wn t j
 o n XWd  t i
 | ƒ Xx` d d d d d f D]I } t i i | | d	 | ƒ } | i | d
 ƒ } t |  | d | ƒ q§ W| |  _ d  S(   Ns   databasei    iý  s   dates   authors   subjects   articles   threads   -s   cs   Index(   s   selfs"   _BSDDBdatabase__currentOpenArchives   archives   bsddbs   _BSDDBdatabase__closeIndicess   oss   paths   joins   basedirs   arcdirs   umasks   omasks   mkdirs   OSErrors   hdrs   btopens   ts   setattr(   s   selfs   archives   hdrs   arcdirs   ts   bsddbs   paths   omask(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   __openIndicesï  s&    	
	  c         C   sÊ   |  i t j	 o n x¦ d d d d d f D] } | d } t |  | ƒ oo t |  | ƒ } | d j o8 t |  d ƒ o h  |  _ n t	 | ƒ |  i |  i <n | i
 ƒ  t |  | ƒ q* q* Wt |  _ d  S(   Ns   dates   authors   subjects   threads   articles   Indexs   archive_length(   s   selfs"   _BSDDBdatabase__currentOpenArchives   Nones   hdrs   attrs   hasattrs   getattrs   indexs   archive_lengths   lens   closes   delattr(   s   selfs   indexs   attrs   hdr(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   __closeIndices  s     

c         C   s   |  i ƒ  d  S(   N(   s   selfs   _BSDDBdatabase__closeIndices(   s   self(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   close  s    c         C   s!   |  i | ƒ |  i i | ƒ Sd  S(   N(   s   selfs   _BSDDBdatabase__openIndicess   archives   articleIndexs   has_keys   msgid(   s   selfs   archives   msgid(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys
   hasArticle  s    c         C   s   |  i | ƒ | |  i | <d  S(   N(   s   selfs   _BSDDBdatabase__openIndicess   archives   msgids   threadIndexs   key(   s   selfs   archives   keys   msgid(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   setThreadKey  s    c         C   s×   |  i | ƒ |  i i | ƒ o/ |  i i | ƒ |  i i | ƒ |  i | Sn t	 |  i ƒ t
 j o1 |  i d |  i d f \ } |  _ |  i | =n |  i | } t i | ƒ } |  i i | ƒ | |  i | <| Sd  S(   Ni    i   (   s   selfs   _BSDDBdatabase__openIndicess   archives   _BSDDBdatabase__cachedicts   has_keys   msgids   _BSDDBdatabase__cachekeyss   removes   appends   lens	   CACHESIZEs   delkeys   articleIndexs   ss   pickles   loadss   article(   s   selfs   archives   msgids   ss   delkeys   article(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys
   getArticle  s    #c         C   sX   |  i | ƒ t |  | d ƒ } y | i ƒ  \ } } | SWn t j
 o t	 Sn Xd  S(   Ns   Index(
   s   selfs   _BSDDBdatabase__openIndicess   archives   getattrs   indexs   firsts   keys   msgids   KeyErrors   None(   s   selfs   archives   indexs   msgids   key(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   first.  s    c         C   sX   |  i | ƒ t |  | d ƒ } y | i ƒ  \ } } Wn t j
 o t	 Sn X| Sd  S(   Ns   Index(
   s   selfs   _BSDDBdatabase__openIndicess   archives   getattrs   indexs   nexts   keys   msgids   KeyErrors   None(   s   selfs   archives   indexs   msgids   key(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   next6  s    	c         C   sŽ   |  i | ƒ | i ƒ  } yW |  i i | ƒ \ } } |  i i	 ƒ  | i
 d ƒ \ } } | | j o t Sn | SWn t j
 o t Sn Xd  S(   Ns    (   s   selfs   _BSDDBdatabase__openIndicess   archives   subjects   lowers   subjectIndexs   set_locations   keys   tempids   nexts   splits   subject2s   dates   Nones   KeyError(   s   selfs   archives   subjects   tempids   subject2s   keys   date(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   getOldestArticle@  s    c         C   s   d  S(   N(    (   s   selfs   archive(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys
   newArchiveM  s    c         C   s®   |  i | ƒ t |  | d ƒ } d } y |  i i ƒ  \ } } Wn t
 j
 o d } n XxL | oC |  i | =y |  i i ƒ  \ } } Wq^ t
 j
 o d } q^ Xq^ Wd  S(   Ns   Indexi    i   (   s   selfs   _BSDDBdatabase__openIndicess   archives   getattrs   indexs   finisheds   threadIndexs   firsts   keys   msgids   KeyErrors   next(   s   selfs   archives   indexs   msgids   finisheds   key(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys
   clearIndexP  s     
(   s   __name__s
   __module__s   Databases
   addArticles    _BSDDBdatabase__super_addArticles   __init__s	   firstdates   lastdates   numArticless   Nones   _BSDDBdatabase__openIndicess   _BSDDBdatabase__closeIndicess   closes
   hasArticles   setThreadKeys
   getArticles   firsts   nexts   getOldestArticles
   newArchives
   clearIndex(    (    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   BSDDBdatabaseÅ  s"   			
	
									
		('   s
   __future__s   nested_scopess   mailboxs   oss   res   syss   times   email.Utilss	   parseaddrs   parsedate_tzs	   mktime_tzs   cPickles   pickles	   cStringIOs   StringIOs   strings	   lowercases   __version__s   VERSIONs	   CACHESIZEs   Mailmans   Errorss   Mailman.Mailboxs   ArchiverMailboxs   Mailman.Logging.Syslogs   syslogs   Mailman.i18ns   _s   SPACEs   compiles	   msgid_pats   strip_separatorss   smallNamePartss	   fixAuthors   DatabaseInterfaces   Databases   Articles   Ts   BSDDBdatabase(   s   Errorss   strip_separatorss   syslogs   ArchiverMailboxs   parsedate_tzs   DatabaseInterfaces   Databases   res	   CACHESIZEs   Articles	   msgid_pats   nested_scopess   SPACEs   BSDDBdatabases   mailboxs   syss   VERSIONs	   fixAuthors   smallNamePartss   _s	   parseaddrs	   lowercases   __version__s   StringIOs   oss   times   pickles	   mktime_tzs   T(    (    s*   /var/mailman/Mailman/Archiver/pipermail.pys   ?   s6   								Jbÿ Ë