;
)?Bc           @   sV   d  Z  d k l Z d k l Z d Z d e f d     YZ d e f d     YZ d S(	   s-   A `safe' dictionary for string interpolation.(   s
   StringType(   s   UserDicts   , s   SafeDictc           B   s    t  Z d  Z d   Z d   Z RS(   s   Dictionary which returns a default value for unknown keys.

    This is used in maketext so that editing templates is a bit more robust.
    c         C   sR   y |  i | SWn< t j
 o0 t | t  o d | d SqN d | Sn Xd  S(   Ns   %(s   )ss   <Missing key: %s>(   s   selfs   datas   keys   KeyErrors
   isinstances
   StringType(   s   selfs   key(    (    s    /var/mailman/Mailman/SafeDict.pys   __getitem__   s    c         C   s   | |  Sd  S(   N(   s   templates   self(   s   selfs   template(    (    s    /var/mailman/Mailman/SafeDict.pys   interpolate(   s    (   s   __name__s
   __module__s   __doc__s   __getitem__s   interpolate(    (    (    s    /var/mailman/Mailman/SafeDict.pys   SafeDict   s    		s   MsgSafeDictc           B   s&   t  Z e d  Z d   Z d   Z RS(   Nc         C   s   | |  _ t i |  |  d  S(   N(   s   msgs   selfs   _MsgSafeDict__msgs   SafeDicts   __init__s   dict(   s   selfs   msgs   dict(    (    s    /var/mailman/Mailman/SafeDict.pys   __init__.   s    	c         C   s   | i d  o |  i i | d d  Snf | i d  oE g  } |  i i | d |  } | | j o d Sn t i	 |  Sn t
 i |  |  Sd  S(   Ns   msg_i   s   n/as   allmsg_i   (   s   keys
   startswiths   selfs   _MsgSafeDict__msgs   gets   missings   get_alls   alls
   COMMASPACEs   joins   SafeDicts   __getitem__(   s   selfs   keys   alls   missing(    (    s    /var/mailman/Mailman/SafeDict.pys   __getitem__2   s    c         C   s   |  i i   } xu |  i i   D]d } |  i i |  } t	 |  d j o | d | d | i
   <q t i |  | d | i
   <q W| Sd  S(   Ni   i    s   msg_s   allmsg_(   s   selfs   datas   copys   ds   _MsgSafeDict__msgs   keyss   ks   get_alls   valss   lens   lowers
   COMMASPACEs   join(   s   selfs   ds   ks   vals(    (    s    /var/mailman/Mailman/SafeDict.pys   copy>   s     !(   s   __name__s
   __module__s   Nones   __init__s   __getitem__s   copy(    (    (    s    /var/mailman/Mailman/SafeDict.pys   MsgSafeDict-   s   	N(   s   __doc__s   typess
   StringTypes   UserDicts
   COMMASPACEs   SafeDicts   MsgSafeDict(   s   SafeDicts
   StringTypes
   COMMASPACEs   MsgSafeDicts   UserDict(    (    s    /var/mailman/Mailman/SafeDict.pys   ?   s
   