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)argselfcallbackZself_wr,/opt/alt/python39/lib64/python3.9/weakref.py_cb6s zWeakMethod.__new__.._cbT) __self____func__AttributeError TypeErrorformattyper__new__rrr)clsZmethrobjfuncrrrrrr#/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__rr.r/rrrr1Ss   zWeakMethod.__ne__)N) __name__ __module__ __qualname__ __slots__r#r)r-r1r__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 _remover9setr8r<update)rr0kwr@rrr__init__is  zWeakValueDictionary.__init__cCs>|jj}|j}z |}Wnty,YdS0|||qdSr')r9popr< IndexError)rr?rFdr;rrr_commit_removalszs  z$WeakValueDictionary._commit_removalscCs4|jr||j|}|dur,t|n|SdSr'r9rIr<KeyErrorrr;orrr __getitem__s   zWeakValueDictionary.__getitem__cCs|jr||j|=dSr')r9rIr<rr;rrr __delitem__szWeakValueDictionary.__delitem__cCs|jr|t|jSr')r9rIlenr<rrrr__len__szWeakValueDictionary.__len__cCs<|jr|z|j|}Wnty2YdS0|duSrrJrLrrr __contains__s z WeakValueDictionary.__contains__cCsd|jjt|fSNz <%s at %#x>r+r2idrRrrr__repr__szWeakValueDictionary.__repr__cCs&|jr|t||j||j|<dSr')r9rIKeyedRefrAr<rr;valuerrr __setitem__szWeakValueDictionary.__setitem__cCsj|jr|t}t|:|jD]\}}|}|dur(|||<q(Wdn1s\0Y|Sr')r9rIrr r<items)rnewr;r=rMrrrcopys (zWeakValueDictionary.copycCs~ddlm}|jr||}t|@|jD]$\}}|}|dur6|||||<q6Wdn1sp0Y|SNr)deepcopy)r_rar9rIr+r r<r])rmemorar^r;r=rMrrr __deepcopy__s  .z WeakValueDictionary.__deepcopy__NcCsN|jr|z|j|}Wnty2|YS0|}|durF|S|SdSr'rJ)rr;defaultr=rMrrrgets  zWeakValueDictionary.getccsf|jr|t|<|jD] \}}|}|dur"||fVq"Wdn1sX0YdSr'r9rIr r<r])rkr=vrrrr]s zWeakValueDictionary.itemsccs^|jr|t|4|jD]\}}|dur"|Vq"Wdn1sP0YdSr'rf)rrgr=rrrkeyss   zWeakValueDictionary.keysccsJ|jr|t| |jEdHWdn1s<0YdSr'r9rIr r<valuesrRrrr itervaluerefss  z!WeakValueDictionary.itervaluerefsccs^|jr|t|4|jD]}|}|dur"|Vq"Wdn1sP0YdSr'rjrr=r%rrrrks zWeakValueDictionary.valuescCs8|jr||j\}}|}|dur||fSqdSr')r9rIr<popitem)rr;r=rMrrrrns zWeakValueDictionary.popitemcGs^|jr|z|j|}Wnty6d}Yn0|durV|rL|dSt|n|SdS)Nr)r9rIr<rFrK)rr;argsrMrrrrFs   zWeakValueDictionary.popcCs^z|j|}Wnty&d}Yn0|durV|jr>|t||j||j|<|S|SdSr')r<rKr9rIrYrA)rr;rdrMrrr setdefaults  zWeakValueDictionary.setdefaultcKsz|jr||j}|durRt|ds.t|}|D]\}}t||j|||<q6|D]\}}t||j|||<qZdSNr])r9rIr<hasattrdictr]rYrA)rr0kwargsrHr;rMrrrrC"s zWeakValueDictionary.updatecCs|jr|t|jSr')r9rIlistr<rkrRrrr valuerefs.s zWeakValueDictionary.valuerefscCs|||Sr'rCr/rrr__ior__<s zWeakValueDictionary.__ior__cCs&t|tjr"|}|||StSr'r,_collections_abcMappingr_rCr.rr0crrr__or__@s   zWeakValueDictionary.__or__cCs0t|tjr,|}|||||StSr'r,rzr{r+rCr.r|rrr__ror__Gs    zWeakValueDictionary.__ror__)r)N)N)N)r2r3r4rEr rIrNrPrSrTrXr\r___copy__rcrer]ri__iter__rlrkrnrFrprCrvrxr~rrrrrr]s2          rcs(eZdZdZddZfddZZS)rYr;cCst|||}||_|Sr')rr#r;)r"obrr;rrrrr#\szKeyedRef.__new__cst||dSr')r(rE)rrrr;r*rrrEaszKeyedRef.__init__)r2r3r4r5r#rEr7rrr*rrYPs rYc@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')r8r9r:r<rK)rgr>rrrrr@rs  z*WeakKeyDictionary.__init__..removeF)r<rrAr9rBr8 _dirty_lenrC)rrsr@rrrrEps zWeakKeyDictionary.__init__cCsR|jj}|j}z |}Wnty,YdS0z ||=WqtyJYq0qdSr')r9rFr<rGrK)rrFrHr;rrrrIs    z"WeakKeyDictionary._commit_removalscs&|jfdd|jD|_d|_dS)Ncsg|]}|vr|qSrr).0rgrHrr z5WeakKeyDictionary._scrub_removals..F)r<r9rrRrrr_scrub_removalssz!WeakKeyDictionary._scrub_removalscCsd|_|jt|=dSNT)rr<rrOrrrrPszWeakKeyDictionary.__delitem__cCs|jt|Sr')r<rrOrrrrNszWeakKeyDictionary.__getitem__cCs(|jr|jr|t|jt|jSr')rr9rrQr<rRrrrrSs zWeakKeyDictionary.__len__cCsd|jjt|fSrUrVrRrrrrXszWeakKeyDictionary.__repr__cCs||jt||j<dSr')r<rrArZrrrr\szWeakKeyDictionary.__setitem__cCs\t}t|:|jD]\}}|}|dur|||<qWdn1sN0Y|Sr')r r r<r])rr^r;r[rMrrrr_s (zWeakKeyDictionary.copycCspddlm}|}t|@|jD]$\}}|}|dur(|||||<q(Wdn1sb0Y|Sr`)r_rar+r r<r])rrbrar^r;r[rMrrrrcs  .zWeakKeyDictionary.__deepcopy__cCs|jt||Sr')r<rerrr;rdrrrreszWeakKeyDictionary.getcCs,z t|}Wnty YdS0||jvSr)rr r<)rr;r=rrrrTs   zWeakKeyDictionary.__contains__ccsXt|<|jD] \}}|}|dur||fVqWdn1sJ0YdSr'r r<r])rr=r[r;rrrr]s  zWeakKeyDictionary.itemsccsLt|0|jD]}|}|dur|VqWdn1s>0YdSr')r r<rmrrrris   zWeakKeyDictionary.keysccsPt|4|jD]\}}|dur|VqWdn1sB0YdSr'r)rr=r[rrrrks  zWeakKeyDictionary.valuescCs t|jSr')rur<rRrrrkeyrefss zWeakKeyDictionary.keyrefscCs0d|_|j\}}|}|dur||fSqdSr)rr<rn)rr;r[rMrrrrns zWeakKeyDictionary.popitemcGsd|_|jjt|g|RSr)rr<rFr)rr;rorrrrFszWeakKeyDictionary.popcCs|jt||j|Sr')r<rprrArrrrrpszWeakKeyDictionary.setdefaultcKs\|j}|durFt|ds$ti|}|D]\}}||t||j<q,t|rX||dSrq)r<rrr"r]rrArQrC)rrsrtrHr;r[rrrrCs  zWeakKeyDictionary.updatecCs|||Sr'rwr/rrrrx s zWeakKeyDictionary.__ior__cCs&t|tjr"|}|||StSr'ryr|rrrr~ s   zWeakKeyDictionary.__or__cCs0t|tjr,|}|||||StSr'rr|rrrrs    zWeakKeyDictionary.__ror__)N)N)N)N)r2r3r4rErIrrPrNrSrXr\r_rrcrerTr]rirrkrrnrFrprCrxr~rrrrrr es2      r c@seZdZdZiZdZeZdZ dZ GdddZ ddZ ddd Z d d Zd d ZeddZeddZejddZddZeddZeddZdS)rrFc@seZdZdZdS)zfinalize._Info)weakrefr&rortatexitindexN)r2r3r4r5rrrr_Info6srcOsp|js ddl}||jdt_|}t|||_||_||_ |pFd|_ d|_t |j |_ ||j|<dt_dS)NrT)_registered_with_atexitrregister _exitfuncrrrrr&rortnext _index_iterr _registry_dirty)rr%r&rortrinforrrrE9s     zfinalize.__init__NcCs4|j|d}|r0|js0|j|ji|jp*iSdSr')rrF _shutdownr&rort)r_rrrrr)Js zfinalize.__call__cCsH|j|}|o|}|durD|j|drD||j|j|jp@ifSdSr')rrerrFr&rortrrr%rrrdetachQs  zfinalize.detachcCs:|j|}|o|}|dur6||j|j|jp2ifSdSr')rrerr&rortrrrrpeekYs  z finalize.peekcCs ||jvSr')rrRrrraliveaszfinalize.alivecCs|j|}t|o|jSr'rreboolr)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>)rrerr"r2rWrrrrrXrs  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)rgcZ isenabledZdisablerrrrF Exceptionsys excepthookexc_inforZenable)r$Z reenable_gcrZpendingrrrrrs2   zfinalize._exitfunc)N)r2r3r4r5rr itertoolscountrrrrrEr)rrpropertyrrsetterrX classmethodrrrrrrrs,      r)_weakrefrrrrrrrr Z _weakrefsetr r rzrrr __all__Setr MutableSetrMutableMappingrrYr rrrrr s(   6t9