mς
­fIc           @   sF   d  Z  d f  d     YZ d e f d     YZ d f  d     YZ d S(   sG   A more or less complete user-defined wrapper around dictionary objects.t   UserDictc           B   sς   t  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   Z d  d  Z d  d  Z d  d  Z d   Z d   Z d   Z d  d  Z e e  Z RS(   Nc         K   sI   h  |  _ | d  j	 o |  i |  n t |  o |  i |  n d  S(   N(   t   selft   datat   dictt   Nonet   updatet   lent   kwargs(   R   R   R   (    (    t%   /mit/python/lib/python2.4/UserDict.pyt   __init__   s
    	c         C   s   t  |  i  S(   N(   t   reprR   R   (   R   (    (    R   t   __repr__
   s    c         C   s;   t  | t  o t |  i | i  Sn t |  i |  Sd  S(   N(   t
   isinstanceR   R    t   cmpR   R   (   R   R   (    (    R   t   __cmp__   s    c         C   s   t  |  i  S(   N(   R   R   R   (   R   (    (    R   t   __len__   s    c         C   s   |  i | S(   N(   R   R   t   key(   R   R   (    (    R   t   __getitem__   s    c         C   s   | |  i | <d  S(   N(   t   itemR   R   R   (   R   R   R   (    (    R   t   __setitem__   s    c         C   s   |  i | =d  S(   N(   R   R   R   (   R   R   (    (    R   t   __delitem__   s    c         C   s   |  i i   d  S(   N(   R   R   t   clear(   R   (    (    R   R      s    c         C   ss   |  i t j o t |  i i    Sn d  k } |  i } z h  |  _ | i |   } Wd  | |  _ X| i |   | S(   N(   R   t	   __class__R    R   t   copyt   cR   (   R   R   R   R   (    (    R   R      s    			 
c         C   s   |  i i   S(   N(   R   R   t   keys(   R   (    (    R   R   !   s    c         C   s   |  i i   S(   N(   R   R   t   items(   R   (    (    R   R   "   s    c         C   s   |  i i   S(   N(   R   R   t	   iteritems(   R   (    (    R   R   #   s    c         C   s   |  i i   S(   N(   R   R   t   iterkeys(   R   (    (    R   R   $   s    c         C   s   |  i i   S(   N(   R   R   t
   itervalues(   R   (    (    R   R   %   s    c         C   s   |  i i   S(   N(   R   R   t   values(   R   (    (    R   R   &   s    c         C   s   |  i i |  S(   N(   R   R   t   has_keyR   (   R   R   (    (    R   R   '   s    c         K   sΏ   | d  j o n t | t  o |  i i | i  nc t | t h    p t | d  o |  i i |  n( x$ | i	   D] \ } } | |  | <q Wt |  o |  i i |  n d  S(   NR   (   R   R   R   R    R   R   R   t   typet   hasattrR   t   kt   vR   R   (   R   R   R   R#   R"   (    (    R   R   (   s    ' c         C   s    |  i |  p | Sn |  | S(   N(   R   R   R   t   failobj(   R   R   R$   (    (    R   t   get4   s    c         C   s&   |  i |  p | |  | <n |  | S(   N(   R   R   R   R$   (   R   R   R$   (    (    R   t
   setdefault8   s    c         G   s   |  i i | |  S(   N(   R   R   t   popR   t   args(   R   R   R(   (    (    R   R'   <   s    c         C   s   |  i i   S(   N(   R   R   t   popitem(   R   (    (    R   R)   >   s    c         C   s   | |  i j S(   N(   R   R   R   (   R   R   (    (    R   t   __contains__@   s    c         C   s(   |    } x | D] } | | | <q W| S(   N(   t   clst   dt   iterableR   t   value(   R+   R-   R.   R   R,   (    (    R   t   fromkeysB   s
    	 (   t   __name__t
   __module__R   R	   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R%   R&   R'   R)   R*   R/   t   classmethod(    (    (    R   R       s0   																		t   IterableUserDictc           B   s   t  Z d   Z RS(   Nc         C   s   t  |  i  S(   N(   t   iterR   R   (   R   (    (    R   t   __iter__J   s    (   R0   R1   R5   (    (    (    R   R3   I   s   t	   DictMixinc           B   sͺ   t  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   Z d  d  Z d  d  Z d   Z d   Z d   Z RS(   Nc         c   s   x |  i   D]
 } | Vq Wd  S(   N(   R   R   R"   (   R   R"   (    (    R   R5   V   s     c         C   s,   y |  | } Wn t j
 o t Sn Xt S(   N(   R   R   R.   t   KeyErrort   Falset   True(   R   R   R.   (    (    R   R   Y   s
    	c         C   s   |  i |  S(   N(   R   R   R   (   R   R   (    (    R   R*   _   s    c         c   s#   x |  D] } | |  | f Vq Wd  S(   N(   R   R"   (   R   R"   (    (    R   R   c   s     c         C   s
   |  i   S(   N(   R   R5   (   R   (    (    R   R   f   s    c         c   s%   x |  i   D] \ } } | Vq Wd  S(   N(   R   R   t   _R#   (   R   R:   R#   (    (    R   R   j   s     c         C   s+   g  } |  i   D] \ } } | | q ~ S(   N(   t   _[1]R   R   R:   R#   (   R   R;   R:   R#   (    (    R   R   m   s    c         C   s   t  |  i    S(   N(   t   listR   R   (   R   (    (    R   R   o   s    c         C   s"   x |  i   D] } |  | =q Wd  S(   N(   R   R   R   (   R   R   (    (    R   R   q   s     c         C   s0   y |  | SWn t j
 o | |  | <n X| S(   N(   R   R   R7   t   default(   R   R   R=   (    (    R   R&   t   s
    c         G   sy   t  |  d j o! t d t d t  |    n y |  | } Wn) t j
 o | o | d Sn   n X|  | =| S(   Ni   s&   pop expected at most 2 arguments, got i    (   R   R(   t	   TypeErrorR
   R   R   R.   R7   (   R   R   R(   R.   (    (    R   R'   z   s    !c         C   sL   y |  i   i   \ } } Wn t j
 o t d  n X|  | =| | f S(   Ns   container is empty(   R   R   t   nextR"   R#   t   StopIterationR7   (   R   R"   R#   (    (    R   R)      s    c         K   sΒ   | d  j o n t | d  o+ x | i   D] \ } } | |  | <q. Wn[ t | d  o) xG | i   D] } | | |  | <qi Wn" x | D] \ } } | |  | <q W| o |  i	 |  n d  S(   NR   R   (
   t   otherR   R!   R   R"   R#   R   R   R   R   (   R   RA   R   R"   R#   (    (    R   R      s       c         C   s*   y |  | SWn t j
 o | Sn Xd  S(   N(   R   R   R7   R=   (   R   R   R=   (    (    R   R%      s    c         C   s   t  t |  i     S(   N(   R
   R   R   R   (   R   (    (    R   R   ‘   s    c         C   sT   | d  j o d Sn t | t  o t | i    } n t t |  i    |  S(   Ni   (   RA   R   R   R6   R   R   R   R   (   R   RA   (    (    R   R   £   s
    c         C   s   t  |  i    S(   N(   R   R   R   (   R   (    (    R   R   ©   s    (   R0   R1   R5   R   R*   R   R   R   R   R   R   R   R&   R'   R)   R   R%   R   R   R   (    (    (    R   R6   M   s"   														N(   t   __doc__R    R3   R6   (   R    R6   R3   (    (    R   t   ?   s   F