-í
è¶<c    
   sN    d  Z    d k Z  d k l Z l Z l Z l Z l Z l Z l	 Z	  d k
 l Z  e e f Z  d d d d d d	 d
 d d d g
 Z ! d e i f d „  ƒ  YZ † d e i f d „  ƒ  YZ æ d f  d „  ƒ  YZ ë d e f d „  ƒ  YZ ÷ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ [ d S(   sƒ   Weak reference support for Python.

This module is an implementation of PEP 205:

http://python.sourceforge.net/peps/pep-0205.html
N(   s   getweakrefcounts   getweakrefss   refs   proxys   CallableProxyTypes	   ProxyTypes   ReferenceType(   s   ReferenceErrors   refs   proxys   getweakrefcounts   getweakrefss   WeakKeyDictionarys   ReferenceTypes	   ProxyTypes   CallableProxyTypes
   ProxyTypess   WeakValueDictionaryc      sÈ   ! t  Z d  Z & - d „  Z 4 d „  Z 7 d „  Z : d „  Z B e d „ Z O d „  Z	 W d „  Z
 Z d „  Z \ e Z ^ d	 „  Z a d
 „  Z h d „  Z q d „  Z v d „  Z ~ d „  Z RS(   s›   Mapping class that references values weakly.

    Entries in the dictionary will be discarded when no strong
    reference to the value exists anymore
    c    sA   - . |  i | ƒ  } / | t j o 0 t | ‚ n 2 | Sd  S(   N(   s   selfs   datas   keys   os   Nones   KeyError(   s   selfs   keys   o(    (    s   /usr/lib/python2.2/weakref.pys   __getitem__- s   c    s   4 5 d t  |  ƒ Sd  S(   Ns   <WeakValueDictionary at %s>(   s   ids   self(   s   self(    (    s   /usr/lib/python2.2/weakref.pys   __repr__4 s   c    s)   7 8 t  | |  i | ƒ ƒ |  i | <d  S(   N(   s   refs   values   selfs    _WeakValueDictionary__makeremoves   keys   data(   s   selfs   keys   value(    (    s   /usr/lib/python2.2/weakref.pys   __setitem__7 s   c    sm   : ; t  ƒ  } < xM |  i i ƒ  D< ]9 \ } } = | ƒ  } > | t j	 o ? | | | <n q" W@ | Sd  S(   N(	   s   WeakValueDictionarys   news   selfs   datas   itemss   keys   wrs   os   None(   s   selfs   wrs   keys   news   o(    (    s   /usr/lib/python2.2/weakref.pys   copy: s    c    sl   B C y D |  i | } Wn E t j
 o F | Sn0 XH | ƒ  } I | t j o K | Sn M | Sd  S(   N(   s   selfs   datas   keys   wrs   KeyErrors   defaults   os   None(   s   selfs   keys   defaults   wrs   o(    (    s   /usr/lib/python2.2/weakref.pys   getB s   c    ss   O P g  } Q xV |  i i ƒ  DQ ]B \ } } R | ƒ  } S | t j	 o T | i | | f ƒ n q WU | Sd  S(   N(	   s   Ls   selfs   datas   itemss   keys   wrs   os   Nones   append(   s   selfs   wrs   keys   Ls   o(    (    s   /usr/lib/python2.2/weakref.pys   itemsO s   	 c    s   W X t  |  ƒ Sd  S(   N(   s   WeakValuedItemIterators   self(   s   self(    (    s   /usr/lib/python2.2/weakref.pys	   iteritemsW s   c    s   Z [ |  i i ƒ  Sd  S(   N(   s   selfs   datas   iterkeys(   s   self(    (    s   /usr/lib/python2.2/weakref.pys   iterkeysZ s   c    s   ^ _ t  |  ƒ Sd  S(   N(   s   WeakValuedValueIterators   self(   s   self(    (    s   /usr/lib/python2.2/weakref.pys
   itervalues^ s   c    sa   a b xT b d oI c |  i i ƒ  \ } } d | ƒ  } e | t j	 o f | | f Sn q	 Wd  S(   Ni   (   s   selfs   datas   popitems   keys   wrs   os   None(   s   selfs   os   wrs   key(    (    s   /usr/lib/python2.2/weakref.pys   popitema s    
c    sj   h i y j |  i | } Wn? k t j
 o0 l t | |  i | ƒ ƒ |  i | <m | Sn Xo | ƒ  Sd  S(   N(   s   selfs   datas   keys   wrs   KeyErrors   refs   defaults    _WeakValueDictionary__makeremove(   s   selfs   keys   defaults   wr(    (    s   /usr/lib/python2.2/weakref.pys
   setdefaulth s   "c    sU   q r |  i } s x< | i ƒ  Ds ]+ \ } } t t | |  i | ƒ ƒ | | <q Wd  S(   N(	   s   selfs   datas   ds   dicts   itemss   keys   os   refs    _WeakValueDictionary__makeremove(   s   selfs   dicts   ds   keys   o(    (    s   /usr/lib/python2.2/weakref.pys   updateq s    c    sg   v w g  } x xJ |  i i ƒ  Dx ]6 } y | ƒ  } z | t j	 o { | i | ƒ n q W| | Sd  S(   N(   s   Ls   selfs   datas   valuess   wrs   os   Nones   append(   s   selfs   Ls   os   wr(    (    s   /usr/lib/python2.2/weakref.pys   valuesv s   	 	c    s&   ~  t  |  ƒ | d „ } ƒ | Sd  S(   Nc    s4    € | ƒ  }  | t j	 o ‚ | i | =n d  S(   N(   s   selfrefs   selfs   Nones   datas   key(   s   os   selfrefs   keys   self(    (    s   /usr/lib/python2.2/weakref.pys   remove s   (   s   refs   selfs   keys   remove(   s   selfs   keys   remove(    (    s   /usr/lib/python2.2/weakref.pys   __makeremove~ s   (   s   __name__s
   __module__s   __doc__s   __getitem__s   __repr__s   __setitem__s   copys   Nones   gets   itemss	   iteritemss   iterkeyss   __iter__s
   itervaluess   popitems
   setdefaults   updates   valuess    _WeakValueDictionary__makeremove(    (    (    s   /usr/lib/python2.2/weakref.pys   WeakValueDictionary! s    		c      sã   † t  Z d  Z  ‘ e d „ Z š d „  Z ¡ d „  Z ¤ d „  Z § d „  Z ª d „  Z	 ² e d „ Z
 µ d „  Z ¼ d	 „  Z Ä d
 „  Z Ç d „  Z É e Z Ë d „  Z Î d „  Z Ö d „  Z Ý d „  Z à d „  Z RS(   s‰   Mapping class that references keys weakly.

    Entries in the dictionary will be discarded when there is no
    longer a strong reference to the key. This can be used to
    associate additional data with an object owned by other parts of
    an application without adding attributes to those objects. This
    can be especially useful with objects that override attribute
    accesses.
    c    sX   ‘ ’ h  |  _ “ | t j	 o “ |  i | ƒ n ” t |  ƒ d „ } ˜ | |  _ d  S(   Nc    s4   ” • | ƒ  } – | t j	 o — | i |  =n d  S(   N(   s   selfrefs   selfs   Nones   datas   k(   s   ks   selfrefs   self(    (    s   /usr/lib/python2.2/weakref.pys   remove” s   (   s   selfs   datas   dicts   Nones   updates   refs   removes   _remove(   s   selfs   dicts   remove(    (    s   /usr/lib/python2.2/weakref.pys   __init__‘ s
    c    s[   š › xN |  i i ƒ  D› ]: } œ | ƒ  }  | | j o ž |  i | =Ÿ d  Sn q Wd  S(   N(   s   selfs   datas   iterkeyss   refs   os   key(   s   selfs   keys   refs   o(    (    s   /usr/lib/python2.2/weakref.pys   __delitem__š s    	c    s   ¡ ¢ |  i t | ƒ Sd  S(   N(   s   selfs   datas   refs   key(   s   selfs   key(    (    s   /usr/lib/python2.2/weakref.pys   __getitem__¡ s   c    s   ¤ ¥ d t  |  ƒ Sd  S(   Ns   <WeakKeyDictionary at %s>(   s   ids   self(   s   self(    (    s   /usr/lib/python2.2/weakref.pys   __repr__¤ s   c    s#   § ¨ | |  i t | |  i ƒ <d  S(   N(   s   values   selfs   datas   refs   keys   _remove(   s   selfs   keys   value(    (    s   /usr/lib/python2.2/weakref.pys   __setitem__§ s   c    sm   ª « t  ƒ  } ¬ xM |  i i ƒ  D¬ ]9 \ } } ­ | ƒ  } ® | t j	 o ¯ | | | <n q" W° | Sd  S(   N(	   s   WeakKeyDictionarys   news   selfs   datas   itemss   keys   values   os   None(   s   selfs   os   keys   news   value(    (    s   /usr/lib/python2.2/weakref.pys   copyª s    c    s#   ² ³ |  i i t | ƒ | ƒ Sd  S(   N(   s   selfs   datas   gets   refs   keys   default(   s   selfs   keys   default(    (    s   /usr/lib/python2.2/weakref.pys   get² s   c    sP   µ ¶ y · t  | ƒ } Wn ¸ t j
 o ¹ d Sn Xº |  i i | ƒ Sd  S(   Ni    (   s   refs   keys   wrs	   TypeErrors   selfs   datas   has_key(   s   selfs   keys   wr(    (    s   /usr/lib/python2.2/weakref.pys   has_keyµ s
   c    ss   ¼ ½ g  } ¾ xV |  i i ƒ  D¾ ]B \ } } ¿ | ƒ  } À | t j	 o Á | i | | f ƒ n q WÂ | Sd  S(   N(	   s   Ls   selfs   datas   itemss   keys   values   os   Nones   append(   s   selfs   os   keys   Ls   value(    (    s   /usr/lib/python2.2/weakref.pys   items¼ s   	 c    s   Ä Å t  |  ƒ Sd  S(   N(   s   WeakKeyedItemIterators   self(   s   self(    (    s   /usr/lib/python2.2/weakref.pys	   iteritemsÄ s   c    s   Ç È t  |  ƒ Sd  S(   N(   s   WeakKeyedKeyIterators   self(   s   self(    (    s   /usr/lib/python2.2/weakref.pys   iterkeysÇ s   c    s   Ë Ì |  i i ƒ  Sd  S(   N(   s   selfs   datas
   itervalues(   s   self(    (    s   /usr/lib/python2.2/weakref.pys
   itervaluesË s   c    sg   Î Ï g  } Ð xJ |  i i ƒ  DÐ ]6 } Ñ | ƒ  } Ò | t j	 o Ó | i | ƒ n q WÔ | Sd  S(   N(   s   Ls   selfs   datas   keyss   wrs   os   Nones   append(   s   selfs   Ls   os   wr(    (    s   /usr/lib/python2.2/weakref.pys   keysÎ s   	 	c    sa   Ö × xT × d oI Ø |  i i ƒ  \ } } Ù | ƒ  } Ú | t j	 o Û | | f Sn q	 Wd  S(   Ni   (   s   selfs   datas   popitems   keys   values   os   None(   s   selfs   os   values   key(    (    s   /usr/lib/python2.2/weakref.pys   popitemÖ s    
c    s)   Ý Þ |  i i t | |  i ƒ | ƒ Sd  S(   N(   s   selfs   datas
   setdefaults   refs   keys   _removes   default(   s   selfs   keys   default(    (    s   /usr/lib/python2.2/weakref.pys
   setdefaultÝ s   c    sO   à á |  i } â x6 | i ƒ  Dâ ]% \ } } ã | | t | |  i ƒ <q Wd  S(   N(	   s   selfs   datas   ds   dicts   itemss   keys   values   refs   _remove(   s   selfs   dicts   ds   keys   value(    (    s   /usr/lib/python2.2/weakref.pys   updateà s    (   s   __name__s
   __module__s   __doc__s   Nones   __init__s   __delitem__s   __getitem__s   __repr__s   __setitem__s   copys   gets   has_keys   itemss	   iteritemss   iterkeyss   __iter__s
   itervaluess   keyss   popitems
   setdefaults   update(    (    (    s   /usr/lib/python2.2/weakref.pys   WeakKeyDictionary† s$   			s   BaseIterc      s   æ t  Z ç d „  Z RS(   Nc    s   ç è |  Sd  S(   N(   s   self(   s   self(    (    s   /usr/lib/python2.2/weakref.pys   __iter__ç s   (   s   __name__s
   __module__s   __iter__(    (    (    s   /usr/lib/python2.2/weakref.pys   BaseIteræ s   	s   WeakKeyedKeyIteratorc      s#   ë t  Z ì d „  Z ï d „  Z RS(   Nc    s   ì í | i i ƒ  i |  _ d  S(   N(   s   weakdicts   datas   iterkeyss   nexts   selfs   _next(   s   selfs   weakdict(    (    s   /usr/lib/python2.2/weakref.pys   __init__ì s   c    sR   ï ð xE ð d o: ñ |  i ƒ  } ò | ƒ  } ó | t j	 o ô | Sn q	 Wd  S(   Ni   (   s   selfs   _nexts   wrs   objs   None(   s   selfs   objs   wr(    (    s   /usr/lib/python2.2/weakref.pys   nextï s    
(   s   __name__s
   __module__s   __init__s   next(    (    (    s   /usr/lib/python2.2/weakref.pys   WeakKeyedKeyIteratorë s   	s   WeakKeyedItemIteratorc      s#   ÷ t  Z ø d „  Z û d „  Z RS(   Nc    s   ø ù | i i ƒ  i |  _ d  S(   N(   s   weakdicts   datas	   iteritemss   nexts   selfs   _next(   s   selfs   weakdict(    (    s   /usr/lib/python2.2/weakref.pys   __init__ø s   c    s^   û ü xQ ü d oF ý |  i ƒ  \ } } þ | ƒ  } ÿ | t j	 o  | | f Sn q	 Wd  S(   Ni   (   s   selfs   _nexts   wrs   values   keys   None(   s   selfs   keys   wrs   value(    (    s   /usr/lib/python2.2/weakref.pys   nextû s    
(   s   __name__s
   __module__s   __init__s   next(    (    (    s   /usr/lib/python2.2/weakref.pys   WeakKeyedItemIterator÷ s   	s   WeakValuedValueIteratorc      s#   t  Z d „  Z d „  Z RS(   Nc    s   | i i ƒ  i |  _ d  S(   N(   s   weakdicts   datas
   itervaluess   nexts   selfs   _next(   s   selfs   weakdict(    (    s   /usr/lib/python2.2/weakref.pys   __init__s   c    sR   xE d o: 	|  i ƒ  } 
| ƒ  } | t j	 o | Sn q	 Wd  S(   Ni   (   s   selfs   _nexts   wrs   objs   None(   s   selfs   objs   wr(    (    s   /usr/lib/python2.2/weakref.pys   nexts    
(   s   __name__s
   __module__s   __init__s   next(    (    (    s   /usr/lib/python2.2/weakref.pys   WeakValuedValueIterators   	s   WeakValuedItemIteratorc      s#   t  Z d „  Z d „  Z RS(   Nc    s   | i i ƒ  i |  _ d  S(   N(   s   weakdicts   datas	   iteritemss   nexts   selfs   _next(   s   selfs   weakdict(    (    s   /usr/lib/python2.2/weakref.pys   __init__s   c    s^   xQ d oF |  i ƒ  \ } } | ƒ  } | t j	 o | | f Sn q	 Wd  S(   Ni   (   s   selfs   _nexts   keys   wrs   values   None(   s   selfs   values   wrs   key(    (    s   /usr/lib/python2.2/weakref.pys   nexts    
(   s   __name__s
   __module__s   __init__s   next(    (    (    s   /usr/lib/python2.2/weakref.pys   WeakValuedItemIterators   	(   s   __doc__s   UserDicts   _weakrefs   getweakrefcounts   getweakrefss   refs   proxys   CallableProxyTypes	   ProxyTypes   ReferenceTypes
   exceptionss   ReferenceErrors
   ProxyTypess   __all__s   WeakValueDictionarys   WeakKeyDictionarys   BaseIters   WeakKeyedKeyIterators   WeakKeyedItemIterators   WeakValuedValueIterators   WeakValuedItemIterator(   s   WeakKeyedItemIterators   CallableProxyTypes   WeakKeyDictionarys   BaseIters   __all__s
   ProxyTypess   UserDicts   ReferenceErrors   WeakValueDictionarys   getweakrefss   proxys   WeakValuedItemIterators   WeakKeyedKeyIterators   ReferenceTypes   getweakrefcounts   refs	   ProxyTypes   WeakValuedValueIterator(    (    s   /usr/lib/python2.2/weakref.pys   ? s   4	'e`