ó
jˆú\c           @@  sH   d  Z  d d l m Z d d l Z d d l Z d e f d „  ƒ  YZ d S(   s3   Proxy dictionary for objects stored in a container.i    (   t   absolute_importNt	   ProxyDictc           B@  sh   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z RS(   s?   A dictionary which uses a container object to store its values.c         C@  s   t  j | ƒ |  _ d  S(   N(   t   weakreft   reft   containerref(   t   selft	   container(    (    s4   lib/python2.7/site-packages/tables/misc/proxydict.pyt   __init__   s    c         C@  s1   | |  k r t  | ƒ ‚ n  |  j |  j ƒ  | ƒ S(   N(   t   KeyErrort   _get_value_from_containert   _get_container(   R   t   key(    (    s4   lib/python2.7/site-packages/tables/misc/proxydict.pyt   __getitem__#   s    c         C@  s   t  t |  ƒ j | d  ƒ d  S(   N(   t   superR   t   __setitem__t   None(   R   R   t   value(    (    s4   lib/python2.7/site-packages/tables/misc/proxydict.pyR   *   s    c         C@  s   t  j |  ƒ S(   N(   t   objectt   __repr__(   R   (    (    s4   lib/python2.7/site-packages/tables/misc/proxydict.pyR   .   s    c         C@  s=   d } g  t  j |  ƒ D] } | | ^ q } d d j | ƒ S(   Ns   %r: %rs   {%s}s   , (   t   sixt	   iteritemst   join(   R   t
   itemFormatt   itemt	   itemReprs(    (    s4   lib/python2.7/site-packages/tables/misc/proxydict.pyt   __str__1   s    &c         C@  s5   g  } x( t  j |  ƒ D] } | j |  | ƒ q W| S(   N(   R   t   iterkeyst   append(   R   t	   valueListR   (    (    s4   lib/python2.7/site-packages/tables/misc/proxydict.pyt   values7   s    c         c@  s-   x  t  j |  ƒ D] } |  | Vq Wt ‚ d  S(   N(   R   R   t   StopIteration(   R   R   (    (    s4   lib/python2.7/site-packages/tables/misc/proxydict.pyt
   itervalues>   s    c         C@  s;   g  } x. t  j |  ƒ D] } | j | |  | f ƒ q W| S(   N(   R   R   R   (   R   t   itemListR   (    (    s4   lib/python2.7/site-packages/tables/misc/proxydict.pyt   itemsD   s    c         c@  s3   x& t  j |  ƒ D] } | |  | f Vq Wt ‚ d  S(   N(   R   R   R   (   R   R   (    (    s4   lib/python2.7/site-packages/tables/misc/proxydict.pyR   K   s    c         C@  s+   |  j  ƒ  } | d  k r' t d ƒ ‚ n  | S(   Ns)   the container object does no longer exist(   R   R   t
   ValueError(   R   R   (    (    s4   lib/python2.7/site-packages/tables/misc/proxydict.pyR
   Q   s    (   t   __name__t
   __module__t   __doc__R   R   R   R   R   R   R   R!   R   R
   (    (    (    s4   lib/python2.7/site-packages/tables/misc/proxydict.pyR      s   	
								(   R%   t
   __future__R    R   R   t   dictR   (    (    (    s4   lib/python2.7/site-packages/tables/misc/proxydict.pyt   <module>   s   