File: //lib64/python2.7/weakref.pyc
�
zfc           @   s�   d  Z  d d l Z d d l m Z m Z m Z m Z m Z m Z m	 Z	 m
 Z
 d d l m Z m
 Z
 d d l m Z e e f Z d d d d	 d
 d d d
 d d d d g Z d e j f d �  �  YZ d e f d �  �  YZ d
 e j f d �  �  YZ d S(   s{   Weak reference support for Python.
This module is an implementation of PEP 205:
http://www.python.org/dev/peps/pep-0205/
i����N(   t   getweakrefcountt   getweakrefst   reft   proxyt   CallableProxyTypet	   ProxyTypet
   ReferenceTypet   _remove_dead_weakref(   t   WeakSett   _IterationGuard(   t   ReferenceErrorR   R   R    R   t   WeakKeyDictionaryR
   R   R   R   t
   ProxyTypest   WeakValueDictionaryR   c           B   s�   e  Z d  Z d �  Z d �  Z d �  Z d �  Z d �  Z d �  Z d �  Z	 d �  Z
 d	 �  Z d
 �  Z e Z
 d �  Z d d � Z d
 �  Z d �  Z d �  Z e Z d �  Z d �  Z d �  Z d �  Z d d � Z d �  Z 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          O   s�   |  s t  d � � n  |  d } |  d }  t |  � d k rT t  d t |  � � � n  t | � t d � } | | _ g  | _ t �  | _ t j j	 | |  | � d  S(   NsG   descriptor '__init__' of 'WeakValueDictionary' object needs an argumenti    i   s$   expected at most 1 arguments, got %dc         S   sN   | �  } | d  k	 rJ | j r4 | j j |  j � qJ | | j |  j � n  d  S(   N(   t   Nonet
   _iteratingt   _pending_removalst   appendt   keyt   data(   t   wrt   selfreft   _atomic_removalt   self(    (    s   /usr/lib64/python2.7/weakref.pyt   remove8   s
    		(
   t	   TypeErrort   lenR   R   t   _removeR   t   setR   t   UserDictt   __init__(   t   argst   kwR   R   (    (    s   /usr/lib64/python2.7/weakref.pyR   0   s    
			c         C   s<