3 \òO ã @ sÌ d dl mZmZmZmZmZmZmZmZ d dl m Z mZ d dlZd dl Z d dlZeefZdddddd d ddd dddg ZG dd„ deƒZG dd „ d ejƒZG dd„ deƒZG dd„ dejƒZG dd„ dƒZdS )é )ÚgetweakrefcountÚgetweakrefsÚrefÚproxyÚCallableProxyTypeÚ ProxyTypeÚ ReferenceTypeÚ_remove_dead_weakref)ÚWeakSetÚ_IterationGuardNr r r r ÚWeakKeyDictionaryr r r Ú ProxyTypesÚWeakValueDictionaryr Ú WeakMethodÚfinalizec s@ e Zd ZdZddd„Z‡ fdd „Zd d„ Zdd „ Zej Z ‡ Z S )r Ú _func_refÚ _meth_typeÚ_aliveÚ__weakref__Nc s~ y|j }|j}W n( tk r8 tdjt|ƒƒƒd ‚Y nX ‡ ‡fdd„}tj| ||ƒ}t||ƒ|_t|ƒ|_ d|_ t|ƒ‰|S )Nz)argument should be a bound method, not {}c s&