Your IP : 3.141.45.90
a
R�f8T � @ s� d Z ddlmZmZmZmZmZmZmZm Z ddl
mZmZ ddl
Z
ddlZddlZeefZg d�Ze
j�e� e
j�e� G dd� de�ZG dd � d e
j�ZG d
d� de�ZG dd
� d
e
j�ZG dd� d�ZdS )z|Weak reference support for Python.
This module is an implementation of PEP 205:
https://www.python.org/dev/peps/pep-0205/
� )�getweakrefcount�getweakrefs�ref�proxy�CallableProxyType� ProxyType�
ReferenceType�_remove_dead_weakref)�WeakSet�_IterationGuardN)
r r r r �WeakKeyDictionaryr r r �
ProxyTypes�WeakValueDictionaryr
�
WeakMethod�finalizec sD e Zd ZdZdZddd�Z� fdd�Zdd � Zd
d� Ze j
Z
� ZS )
r z�
A custom `weakref.ref` subclass which simulates a weak reference to
a bound method, working around the lifetime problem of bound methods.
)� _func_ref�
_meth_type�_alive�__weakref__Nc s| z|j }|j}W n& ty6 td�t|���d �Y n0 � �fdd�}t�| ||�}t||�|_t|�|_ d|_
t|��|S )Nz)argument should be a bound method, not {}c s&