ó
5Þ	Pc           @   sb   d  Z  d d	 d „  ƒ  YZ d e f d „  ƒ  YZ d d l Z e j j e ƒ d d
 d „  ƒ  YZ d S(   sG   A more or less complete user-defined wrapper around dictionary objects.t   UserDictc           B   sò   e  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 „  Z d d „ Z d d „ Z d d „ Z d „  Z d „  Z d „  Z e d d „ ƒ Z RS(   c         K   sE   i  |  _  | d  k	 r% |  j | ƒ n  t | ƒ rA |  j | ƒ n  d  S(   N(   t   datat   Nonet   updatet   len(   t   selft   dictt   kwargs(    (    s   /usr/lib/python2.7/UserDict.pyt   __init__   s
    	c         C   s   t  |  j ƒ S(   N(   t   reprR   (   R   (    (    s   /usr/lib/python2.7/UserDict.pyt   __repr__
   s    c         C   s6   t  | t ƒ r" t |  j | j ƒ St |  j | ƒ Sd  S(   N(   t
   isinstanceR    t   cmpR   (   R   R   (    (    s   /usr/lib/python2.7/UserDict.pyt   __cmp__   s    c         C   s   t  |  j ƒ S(   N(   R   R   (   R   (    (    s   /usr/lib/python2.7/UserDict.pyt   __len__   s    c         C   sO   | |  j  k r |  j  | St |  j d ƒ r? |  j j |  | ƒ St | ƒ ‚ d  S(   Nt   __missing__(   R   t   hasattrt	   __class__R   t   KeyError(   R   t   key(    (    s   /usr/lib/python2.7/UserDict.pyt   __getitem__   s
    c         C   s   | |  j  | <d  S(   N(   R   (   R   R   t   item(    (    s   /usr/lib/python2.7/UserDict.pyt   __setitem__   s    c         C   s   |  j  | =d  S(   N(   R   (   R   R   (    (    s   /usr/lib/python2.7/UserDict.pyt   __delitem__   s    c         C   s   |  j  j ƒ  d  S(   N(   R   t   clear(   R   (    (    s   /usr/lib/python2.7/UserDict.pyR      s    c         C   sq   |  j  t k r" t |  j j ƒ  ƒ Sd d  l } |  j } z i  |  _ | j |  ƒ } Wd  | |  _ X| j |  ƒ | S(   Niÿÿÿÿ(   R   R    R   t   copyR   (   R   R   R   t   c(    (    s   /usr/lib/python2.7/UserDict.pyR      s    		
c         C   s   |  j  j ƒ  S(   N(   R   t   keys(   R   (    (    s   /usr/lib/python2.7/UserDict.pyR   '   s    c         C   s   |  j  j ƒ  S(   N(   R   t   items(   R   (    (    s   /usr/lib/python2.7/UserDict.pyR   (   s    c         C   s   |  j  j ƒ  S(   N(   R   t	   iteritems(   R   (    (    s   /usr/lib/python2.7/UserDict.pyR   )   s    c         C   s   |  j  j ƒ  S(   N(   R   t   iterkeys(   R   (    (    s   /usr/lib/python2.7/UserDict.pyR   *   s    c         C   s   |  j  j ƒ  S(   N(   R   t
   itervalues(   R   (    (    s   /usr/lib/python2.7/UserDict.pyR   +   s    c         C   s   |  j  j ƒ  S(   N(   R   t   values(   R   (    (    s   /usr/lib/python2.7/UserDict.pyR    ,   s    c         C   s   | |  j  k S(   N(   R   (   R   R   (    (    s   /usr/lib/python2.7/UserDict.pyt   has_key-   s    c         K   s¶   | d  k r n„ t | t ƒ r4 |  j j | j ƒ n_ t | t i  ƒ ƒ sY t | d ƒ rl |  j j | ƒ n' x$ | j ƒ  D] \ } } | |  | <qy Wt | ƒ r² |  j j | ƒ n  d  S(   NR   (	   R   R   R    R   R   t   typeR   R   R   (   R   R   R   t   kt   v(    (    s   /usr/lib/python2.7/UserDict.pyR   .   s    %c         C   s   | |  k r | S|  | S(   N(    (   R   R   t   failobj(    (    s   /usr/lib/python2.7/UserDict.pyt   get:   s    c         C   s!   | |  k r | |  | <n  |  | S(   N(    (   R   R   R%   (    (    s   /usr/lib/python2.7/UserDict.pyt
   setdefault>   s    c         G   s   |  j  j | | Œ S(   N(   R   t   pop(   R   R   t   args(    (    s   /usr/lib/python2.7/UserDict.pyR(   B   s    c         C   s   |  j  j ƒ  S(   N(   R   t   popitem(   R   (    (    s   /usr/lib/python2.7/UserDict.pyR*   D   s    c         C   s   | |  j  k S(   N(   R   (   R   R   (    (    s   /usr/lib/python2.7/UserDict.pyt   __contains__F   s    c         C   s(   |  ƒ  } x | D] } | | | <q W| S(   N(    (   t   clst   iterablet   valuet   dR   (    (    s   /usr/lib/python2.7/UserDict.pyt   fromkeysH   s    	N(   t   __name__t
   __module__R   R   R
   R   t   __hash__R   R   R   R   R   R   R   R   R   R   R   R    R!   R   R&   R'   R(   R*   R+   t   classmethodR0   (    (    (    s   /usr/lib/python2.7/UserDict.pyR       s2   																		t   IterableUserDictc           B   s   e  Z d  „  Z RS(   c         C   s   t  |  j ƒ S(   N(   t   iterR   (   R   (    (    s   /usr/lib/python2.7/UserDict.pyt   __iter__P   s    (   R1   R2   R7   (    (    (    s   /usr/lib/python2.7/UserDict.pyR5   O   s   iÿÿÿÿNt	   DictMixinc           B   sª   e  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(   c         c   s    x |  j  ƒ  D] } | Vq Wd  S(   N(   R   (   R   R#   (    (    s   /usr/lib/python2.7/UserDict.pyR7   `   s    c         C   s%   y |  | Wn t  k
 r  t SXt S(   N(   R   t   Falset   True(   R   R   (    (    s   /usr/lib/python2.7/UserDict.pyR!   c   s
    c         C   s   |  j  | ƒ S(   N(   R!   (   R   R   (    (    s   /usr/lib/python2.7/UserDict.pyR+   i   s    c         c   s$   x |  D] } | |  | f Vq Wd  S(   N(    (   R   R#   (    (    s   /usr/lib/python2.7/UserDict.pyR   m   s    c         C   s
   |  j  ƒ  S(   N(   R7   (   R   (    (    s   /usr/lib/python2.7/UserDict.pyR   p   s    c         c   s&   x |  j  ƒ  D] \ } } | Vq Wd  S(   N(   R   (   R   t   _R$   (    (    s   /usr/lib/python2.7/UserDict.pyR   t   s    c         C   s#   g  |  j  ƒ  D] \ } } | ^ q S(   N(   R   (   R   R;   R$   (    (    s   /usr/lib/python2.7/UserDict.pyR    w   s    c         C   s   t  |  j ƒ  ƒ S(   N(   t   listR   (   R   (    (    s   /usr/lib/python2.7/UserDict.pyR   y   s    c         C   s"   x |  j  ƒ  D] } |  | =q Wd  S(   N(   R   (   R   R   (    (    s   /usr/lib/python2.7/UserDict.pyR   {   s    c         C   s.   y |  | SWn t  k
 r) | |  | <n X| S(   N(   R   (   R   R   t   default(    (    s   /usr/lib/python2.7/UserDict.pyR'   ~   s
    c         G   sp   t  | ƒ d k r2 t d t d t  | ƒ ƒ ‚ n  y |  | } Wn" t k
 rd | r^ | d S‚  n X|  | =| S(   Ni   s&   pop expected at most 2 arguments, got i    (   R   t	   TypeErrorR	   R   (   R   R   R)   R.   (    (    s   /usr/lib/python2.7/UserDict.pyR(   „   s    c         C   sJ   y |  j  ƒ  j ƒ  \ } } Wn t k
 r8 t d ‚ n X|  | =| | f S(   Ns   container is empty(   R   t   nextt   StopIterationR   (   R   R#   R$   (    (    s   /usr/lib/python2.7/UserDict.pyR*      s    c         K   sº   | d  k r n‘ t | d ƒ rH x | j ƒ  D] \ } } | |  | <q+ WnX t | d ƒ r xF | j ƒ  D] } | | |  | <qd Wn! x | D] \ } } | |  | <q† W| r¶ |  j | ƒ n  d  S(   NR   R   (   R   R   R   R   R   (   R   t   otherR   R#   R$   (    (    s   /usr/lib/python2.7/UserDict.pyR   —   s    c         C   s%   y |  | SWn t  k
 r  | SXd  S(   N(   R   (   R   R   R=   (    (    s   /usr/lib/python2.7/UserDict.pyR&   ¦   s    c         C   s   t  t |  j ƒ  ƒ ƒ S(   N(   R	   R   R   (   R   (    (    s   /usr/lib/python2.7/UserDict.pyR
   «   s    c         C   sM   | d  k r d St | t ƒ r4 t | j ƒ  ƒ } n  t t |  j ƒ  ƒ | ƒ S(   Ni   (   R   R   R8   R   R   R   (   R   RA   (    (    s   /usr/lib/python2.7/UserDict.pyR   ­   s
    c         C   s   t  |  j ƒ  ƒ S(   N(   R   R   (   R   (    (    s   /usr/lib/python2.7/UserDict.pyR   ³   s    N(   R1   R2   R7   R!   R+   R   R   R   R    R   R   R   R'   R(   R*   R   R&   R
   R   R   (    (    (    s   /usr/lib/python2.7/UserDict.pyR8   W   s"   														(    (    (   t   __doc__R    R5   t   _abcollt   MutableMappingt   registerR8   (    (    (    s   /usr/lib/python2.7/UserDict.pyt   <module>   s
   L