a
´i8T ã @ sÎ d dl mZmZmZmZmZmZmZmZ d dl m
Z
mZ d dlZd dl
Z
d dlZeefZg d¢Zej e
¡ ej e
¡ G dd„ deƒZG dd„ dejƒZG d d
„ d
eƒZG dd„ dejƒZG d
d„ dƒZdS )é )ÚgetweakrefcountÚgetweakrefsÚrefÚproxyÚCallableProxyTypeÚ ProxyTypeÚ
ReferenceTypeÚ_remove_dead_weakref)ÚWeakSetÚ_IterationGuardN)
r r r r ÚWeakKeyDictionaryr r r Ú
ProxyTypesÚWeakValueDictionaryr
Ú
WeakMethodÚfinalizec s@ e Zd ZdZddd„Z‡ fdd„Zdd„ Zd d
„ Zej Z ‡ Z
S )r )Ú _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&