î
h f¸K ã
@ s" d Z d d l m Z m Z m Z m Z m Z m Z m Z d d l m
Z
m Z d d l Z d d l
Z
d d l Z e e f Z d d d d d d
d d d
d d d d g
Z Gd d „ d e ƒ Z Gd d „ d e j ƒ Z Gd d „ d e ƒ Z Gd d „ d e j ƒ Z Gd d „ d ƒ Z d S)z{Weak reference support for Python.
This module is an implementation of PEP 205:
http://www.python.org/dev/peps/pep-0205/
é )ÚgetweakrefcountÚgetweakrefsÚrefÚproxyÚCallableProxyTypeÚ ProxyTypeÚ
ReferenceType)ÚWeakSetÚ_IterationGuardNr r r r ÚWeakKeyDictionaryr r r Ú
ProxyTypesÚWeakValueDictionaryr Ú
WeakMethodÚfinalizec s^ e Z d Z d Z d Z d d d „ Z ‡ f d d
† Z d d „ Z d
d „ Z e j
Z
‡ S)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 y | j } | j } Wn0 t k
rH t d j t | ƒ ƒ ƒ d ‚ Yn X‡ ‡ f d d † } t j | | | ƒ } t | | ƒ | _ t | ƒ | _ d | _
t | ƒ ‰ | S)Nz)argument should be a bound method, not {}c s; ˆ ƒ } | j r7 d | _ ˆ d k r7 ˆ | ƒ q7 n d S)NF)r )ÚargÚself)ÚcallbackÚself_wr© ú,/opt/alt/python34/lib64/python3.4/weakref.pyÚ_cb2 s
zWeakMethod.__new__.