a DOg8T@sddlmZmZmZmZmZmZmZmZddl m Z m Z ddl Z ddl Z ddlZeefZgdZe je e je GdddeZGddde jZGd d d eZGd d d e jZGd ddZdS))getweakrefcount getweakrefsrefproxyCallableProxyType ProxyType ReferenceType_remove_dead_weakref)WeakSet_IterationGuardN) rrrrWeakKeyDictionaryrrr ProxyTypesWeakValueDictionaryr WeakMethodfinalizecs@eZdZdZd ddZfddZddZd d Zej Z Z S) r) _func_ref _meth_type_alive __weakref__Ncs|z|j}|j}Wn&ty6tdt|dYn0fdd}t|||}t|||_t||_ d|_ t||S)Nz)argument should be a bound method, not {}cs&}|jr"d|_dur"|dSNF)r)argselfcallbackself_wr/usr/lib64/python3.9/weakref.py_cb6s zWeakMethod.__new__.._cbT) __self____func__AttributeError TypeErrorformattyper__new__rrr)clsmethrobjfuncrrrrrr$/s     zWeakMethod.__new__cs2t}|}|dus"|dur&dS|||SN)super__call__rr)rr'r( __class__rrr+Es  zWeakMethod.__call__cCs:t|tr6|jr|js||uSt||o4|j|jkStSr)) isinstancerrr__eq__rNotImplementedrotherrrrr/Ls   zWeakMethod.__eq__cCs:t|tr6|jr|js||uSt||p4|j|jkStSr))r.rrr__ne__rr0r1rrrr3Ss   zWeakMethod.__ne__)N) __name__ __module__ __qualname__ __slots__r$r+r/r3r__hash__ __classcell__rrr,rr's   rc@seZdZd1ddZefddZddZdd Zd d Zd d Z ddZ ddZ ddZ e Z ddZd2ddZddZddZeZddZdd Zd!d"Zd#d$Zd3d%d&Zd4d'd(Zd)d*Zd+d,Zd-d.Zd/d0ZdS)5rrcKsBt|tfdd}||_g|_t|_i|_|j|fi|dS)NcSs6|}|dur2|jr$|j|jn||j|jdSr)) _iterating_pending_removalsappendkeydata)wrselfref_atomic_removalrrrrremovejs z,WeakValueDictionary.__init__..remove)rr _remover;setr:r>update)rr2kwrBrrr__init__is  zWeakValueDictionary.__init__cCs>|jj}|j}z |}Wnty,YdS0|||qdSr))r;popr> IndexError)rrArHdr=rrr_commit_removalszs  z$WeakValueDictionary._commit_removalscCs4|jr||j|}|dur,t|n|SdSr)r;rKr>KeyErrorrr=orrr __getitem__s   zWeakValueDictionary.__getitem__cCs|jr||j|=dSr))r;rKr>rr=rrr __delitem__szWeakValueDictionary.__delitem__cCs|jr|t|jSr))r;rKlenr>rrrr__len__szWeakValueDictionary.__len__cCs<|jr|z|j|}Wnty2YdS0|duSrrLrNrrr __contains__s z WeakValueDictionary.__contains__cCsd|jjt|fSNz <%s at %#x>r-r4idrTrrr__repr__szWeakValueDictionary.__repr__cCs&|jr|t||j||j|<dSr))r;rKKeyedRefrCr>rr=valuerrr __setitem__szWeakValueDictionary.__setitem__cCsj|jr|t}t|:|jD]\}}|}|dur(|||<q(Wdn1s\0Y|Sr))r;rKrr r>items)rnewr=r?rOrrrcopys (zWeakValueDictionary.copycCs~ddlm}|jr||}t|@|jD]$\}}|}|dur6|||||<q6Wdn1sp0Y|SNr)deepcopy)rarcr;rKr-r r>r_)rmemorcr`r=r?rOrrr __deepcopy__s  .z WeakValueDictionary.__deepcopy__NcCsN|jr|z|j|}Wnty2|YS0|}|durF|S|SdSr)rL)rr=defaultr?rOrrrgets  zWeakValueDictionary.getccsf|jr|t|<|jD] \}}|}|dur"||fVq"Wdn1sX0YdSr)r;rKr r>r_)rkr?vrrrr_s zWeakValueDictionary.itemsccs^|jr|t|4|jD]\}}|dur"|Vq"Wdn1sP0YdSr)rh)rrir?rrrkeyss   zWeakValueDictionary.keysccsJ|jr|t| |jEdHWdn1s<0YdSr)r;rKr r>valuesrTrrr itervaluerefss  z!WeakValueDictionary.itervaluerefsccs^|jr|t|4|jD]}|}|dur"|Vq"Wdn1sP0YdSr)rlrr?r'rrrrms zWeakValueDictionary.valuescCs8|jr||j\}}|}|dur||fSqdSr))r;rKr>popitem)rr=r?rOrrrrps zWeakValueDictionary.popitemcGs^|jr|z|j|}Wnty6d}Yn0|durV|rL|dSt|n|SdS)Nr)r;rKr>rHrM)rr=argsrOrrrrHs   zWeakValueDictionary.popcCs^z|j|}Wnty&d}Yn0|durV|jr>|t||j||j|<|S|SdSr))r>rMr;rKr[rC)rr=rfrOrrr setdefaults  zWeakValueDictionary.setdefaultcKsz|jr||j}|durRt|ds.t|}|D]\}}t||j|||<q6|D]\}}t||j|||<qZdSNr_)r;rKr>hasattrdictr_r[rC)rr2kwargsrJr=rOrrrrE"s zWeakValueDictionary.updatecCs|jr|t|jSr))r;rKlistr>rmrTrrr valuerefs.s zWeakValueDictionary.valuerefscCs|||Sr)rEr1rrr__ior__<s zWeakValueDictionary.__ior__cCs&t|tjr"|}|||StSr)r._collections_abcMappingrarEr0rr2crrr__or__@s   zWeakValueDictionary.__or__cCs0t|tjr,|}|||||StSr)r.r|r}r-rEr0r~rrr__ror__Gs    zWeakValueDictionary.__ror__)r)N)N)N)r4r5r6rGr rKrPrRrUrVrZr^ra__copy__rergr_rk__iter__rnrmrprHrrrErxrzrrrrrrr]s2          rcs(eZdZdZddZfddZZS)r[r=cCst|||}||_|Sr))rr$r=)r#obrr=rrrrr$\szKeyedRef.__new__cst||dSr))r*rG)rrrr=r,rrrGaszKeyedRef.__init__)r4r5r6r7r$rGr9rrr,rr[Ps r[c@seZdZd0ddZddZddZdd Zd d Zd d ZddZ ddZ ddZ e Z ddZ d1ddZddZddZddZeZddZd d!Zd"d#Zd$d%Zd2d&d'Zd3d(d)Zd*d+Zd,d-Zd.d/ZdS)4r NcCsFi|_t|fdd}||_g|_t|_d|_|durB||dS)NcSsF|}|durB|jr"|j|n z |j|=Wnty@Yn0dSr))r:r;r<r>rM)rir@rrrrrBrs  z*WeakKeyDictionary.__init__..removeF)r>rrCr;rDr: _dirty_lenrE)rrurBrrrrGps zWeakKeyDictionary.__init__cCsR|jj}|j}z |}Wnty,YdS0z ||=WqtyJYq0qdSr))r;rHr>rIrM)rrHrJr=rrrrKs    z"WeakKeyDictionary._commit_removalscs&|jfdd|jD|_d|_dS)Ncsg|]}|vr|qSrr).0rirJrr z5WeakKeyDictionary._scrub_removals..F)r>r;rrTrrr_scrub_removalssz!WeakKeyDictionary._scrub_removalscCsd|_|jt|=dSNT)rr>rrQrrrrRszWeakKeyDictionary.__delitem__cCs|jt|Sr))r>rrQrrrrPszWeakKeyDictionary.__getitem__cCs(|jr|jr|t|jt|jSr))rr;rrSr>rTrrrrUs zWeakKeyDictionary.__len__cCsd|jjt|fSrWrXrTrrrrZszWeakKeyDictionary.__repr__cCs||jt||j<dSr))r>rrCr\rrrr^szWeakKeyDictionary.__setitem__cCs\t}t|:|jD]\}}|}|dur|||<qWdn1sN0Y|Sr))r r r>r_)rr`r=r]rOrrrras (zWeakKeyDictionary.copycCspddlm}|}t|@|jD]$\}}|}|dur(|||||<q(Wdn1sb0Y|Srb)rarcr-r r>r_)rrdrcr`r=r]rOrrrres  .zWeakKeyDictionary.__deepcopy__cCs|jt||Sr))r>rgrrr=rfrrrrgszWeakKeyDictionary.getcCs,z t|}Wnty YdS0||jvSr)rr!r>)rr=r?rrrrVs   zWeakKeyDictionary.__contains__ccsXt|<|jD] \}}|}|dur||fVqWdn1sJ0YdSr)r r>r_)rr?r]r=rrrr_s  zWeakKeyDictionary.itemsccsLt|0|jD]}|}|dur|VqWdn1s>0YdSr))r r>rorrrrks   zWeakKeyDictionary.keysccsPt|4|jD]\}}|dur|VqWdn1sB0YdSr)r)rr?r]rrrrms  zWeakKeyDictionary.valuescCs t|jSr))rwr>rTrrrkeyrefss zWeakKeyDictionary.keyrefscCs0d|_|j\}}|}|dur||fSqdSr)rr>rp)rr=r]rOrrrrps zWeakKeyDictionary.popitemcGsd|_|jjt|g|RSr)rr>rHr)rr=rqrrrrHszWeakKeyDictionary.popcCs|jt||j|Sr))r>rrrrCrrrrrrszWeakKeyDictionary.setdefaultcKs\|j}|durFt|ds$ti|}|D]\}}||t||j<q,t|rX||dSrs)r>rtr#r_rrCrSrE)rrurvrJr=r]rrrrEs  zWeakKeyDictionary.updatecCs|||Sr)ryr1rrrrz s zWeakKeyDictionary.__ior__cCs&t|tjr"|}|||StSr)r{r~rrrr s   zWeakKeyDictionary.__or__cCs0t|tjr,|}|||||StSr)rr~rrrrs    zWeakKeyDictionary.__ror__)N)N)N)N)r4r5r6rGrKrrRrPrUrZr^rarrergrVr_rkrrmrrprHrrrErzrrrrrrr es2      r c@seZdZdZiZdZeZdZ dZ GdddZ ddZ ddd Z d d Zd d ZeddZeddZejddZddZeddZeddZdS)rrFc@seZdZdZdS)zfinalize._Info)weakrefr(rqrvatexitindexN)r4r5r6r7rrrr_Info6srcOsp|js ddl}||jdt_|}t|||_||_||_ |pFd|_ d|_t |j |_ ||j|<dt_dS)NrT)_registered_with_atexitrregister _exitfuncrrrrr(rqrvnext _index_iterr _registry_dirty)rr'r(rqrvrinforrrrG9s     zfinalize.__init__NcCs4|j|d}|r0|js0|j|ji|jp*iSdSr))rrH _shutdownr(rqrv)r_rrrrr+Js zfinalize.__call__cCsH|j|}|o|}|durD|j|drD||j|j|jp@ifSdSr))rrgrrHr(rqrvrrr'rrrdetachQs  zfinalize.detachcCs:|j|}|o|}|dur6||j|j|jp2ifSdSr))rrgrr(rqrvrrrrpeekYs  z finalize.peekcCs ||jvSr))rrTrrraliveaszfinalize.alivecCs|j|}t|o|jSr)rrgboolr)rrrrrrfs zfinalize.atexitcCs|j|}|rt||_dSr)r)rr]rrrrrls cCs^|j|}|o|}|dur6dt|jt|fSdt|jt|t|jt|fSdS)Nz<%s object at %#x; dead>z!<%s object at %#x; for %r at %#x>)rrgrr#r4rYrrrrrZrs  zfinalize.__repr__cCs2dd|jD}|jddddd|DS)NcSsg|]\}}|jr||fqSr)rrfirrrr~rz-finalize._select_for_exit..cSs |djS)N)r)itemrrrrz+finalize._select_for_exit..rcSsg|] \}}|qSrrrrrrrr)rr_sort)r%Lrrr_select_for_exit{szfinalize._select_for_exitcCsd}z|jrddl}|r(d}|d}|dus:tjrH|}dt_|sNq|}z |Wq,tyt j t Yq,0q,Wdt_ |r| ndt_ |r| 0dS)NFrT)rgc isenableddisablerrrrH Exceptionsys excepthookexc_inforenable)r% reenable_gcrpendingrrrrrs2   zfinalize._exitfunc)N)r4r5r6r7rr itertoolscountrrrrrGr+rrpropertyrrsetterrZ classmethodrrrrrrrs,      r)_weakrefrrrrrrrr _weakrefsetr r r|rrr __all__Setr MutableSetrMutableMappingrr[r rrrrr s(   6t9