grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026B i�ržè¹çã @sÌddlmZmZmZmZmZmZmZmZddl m Z m Z ddl Z ddl Z ddlZeefZdddddd d d d d dddg ZGdd„deƒZGdd „d e jƒZGdd„deƒZGdd„de jƒZGdd„dƒZdS)é)ÚgetweakrefcountÚ getweakrefsÚrefÚproxyÚCallableProxyTypeÚ ProxyTypeÚ ReferenceTypeÚ_remove_dead_weakref)ÚWeakSetÚ_IterationGuardNrrrrÚWeakKeyDictionaryrrrÚ ProxyTypesÚWeakValueDictionaryr Ú WeakMethodÚfinalizecs@eZdZdZd dd„Z‡fdd„Zdd„Zd d „Zej Z ‡Z S) r)Ú _func_refÚ _meth_typeÚ_aliveÚ __weakref__Ncs~y|j}|j}Wn(tk r8td t|ƒ¡ƒd‚YnX‡‡fdd„}t |||¡}t||ƒ|_t|ƒ|_ d|_ t|ƒ‰|S)Nz)argument should be a bound method, not {}cs&ˆƒ}|jr"d|_ˆdk r"ˆ|ƒdS)NF)r)ÚargÚself)ÚcallbackÚself_wr©ú,/opt/alt/python37/lib64/python3.7/weakref.pyÚ_cb3s zWeakMethod.__new__.._cbT) Ú__self__Ú__func__ÚAttributeErrorÚ TypeErrorÚformatÚtyperÚ__new__rrr)ÚclsZmethrÚobjÚfuncrrr)rrrr",s   zWeakMethod.__new__cs2tƒ ¡}| ¡}|dks"|dkr&dS| ||¡S)N)ÚsuperÚ__call__rr)rr$r%)Ú __class__rrr'Bs  zWeakMethod.__call__cCs:t|tƒr6|jr|js||kSt ||¡o4|j|jkSdS)NF)Ú isinstancerrrÚ__eq__r)rÚotherrrrr*Is   zWeakMethod.__eq__cCs:t|tƒr6|jr|js||k St ||¡p4|j|jkSdS)NT)r)rrrÚ__ne__r)rr+rrrr,Ps   zWeakMethod.__ne__)N) Ú__name__Ú __module__Ú __qualname__Ú __slots__r"r'r*r,rÚ__hash__Ú __classcell__rr)r(rr$s   c@s¸eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z e Z dd„Z d*dd„Zdd„Zdd„ZeZdd„Zdd„Zd d!„Zd"d#„Zd+d$d%„Zd&d'„Zd(d)„ZdS),rcOsl|s tdƒ‚|^}}t|ƒdkr0tdt|ƒƒ‚t|ƒtfdd„}||_g|_tƒ|_i|_|j ||ŽdS)NzGdescriptor '__init__' of 'WeakValueDictionary' object needs an argumentéz$expected at most 1 arguments, got %dcSs6|ƒ}|dk r2|jr$|j |j¡n||j|jƒdS)N)Ú _iteratingÚ_pending_removalsÚappendÚkeyÚdata)ÚwrÚselfrefZ_atomic_removalrrrrÚremovems z,WeakValueDictionary.__init__..remove) rÚlenrr Ú_remover5Úsetr4r8Úupdate)ÚargsÚkwrr;rrrÚ__init__fs  zWeakValueDictionary.__init__cCs,|j}|j}x|r&| ¡}t||ƒqWdS)N)r5r8Úpopr )rÚlÚdr7rrrÚ_commit_removals}s z$WeakValueDictionary._commit_removalscCs4|jr| ¡|j|ƒ}|dkr,t|ƒ‚n|SdS)N)r5rFr8ÚKeyError)rr7ÚorrrÚ __getitem__†s   zWeakValueDictionary.__getitem__cCs|jr| ¡|j|=dS)N)r5rFr8)rr7rrrÚ __delitem__�szWeakValueDictionary.__delitem__cCs|jr| ¡t|jƒS)N)r5rFr<r8)rrrrÚ__len__”szWeakValueDictionary.__len__cCs<|jr| ¡y|j|ƒ}Wntk r2dSX|dk S)NF)r5rFr8rG)rr7rHrrrÚ __contains__™sz WeakValueDictionary.__contains__cCsd|jjt|ƒfS)Nz <%s at %#x>)r(r-Úid)rrrrÚ__repr__¢szWeakValueDictionary.__repr__cCs&|jr| ¡t||j|ƒ|j|<dS)N)r5rFÚKeyedRefr=r8)rr7ÚvaluerrrÚ __setitem__¥szWeakValueDictionary.__setitem__c CsZ|jr| ¡tƒ}t|ƒ�4x,|j ¡D]\}}|ƒ}|dk r*|||<q*WWdQRX|S)N)r5rFrr r8Úitems)rÚnewr7r9rHrrrÚcopyªs zWeakValueDictionary.copyc Csnddlm}|jr| ¡| ¡}t|ƒ�:x2|j ¡D]$\}}|ƒ}|dk r8|||||ƒ<q8WWdQRX|S)Nr)Údeepcopy)rTrUr5rFr(r r8rR)rÚmemorUrSr7r9rHrrrÚ __deepcopy__·s  z WeakValueDictionary.__deepcopy__NcCsL|jr| ¡y|j|}Wntk r0|SX|ƒ}|dkrD|S|SdS)N)r5rFr8rG)rr7Údefaultr9rHrrrÚgetÃszWeakValueDictionary.getc csV|jr| ¡t|ƒ�6x.|j ¡D] \}}|ƒ}|dk r$||fVq$WWdQRXdS)N)r5rFr r8rR)rÚkr9ÚvrrrrRÒs zWeakValueDictionary.itemsc csN|jr| ¡t|ƒ�.x&|j ¡D]\}}|ƒdk r$|Vq$WWdQRXdS)N)r5rFr r8rR)rrZr9rrrÚkeysÛs   zWeakValueDictionary.keysc cs6|jr| ¡t|ƒ�|j ¡EdHWdQRXdS)N)r5rFr r8Úvalues)rrrrÚ itervaluerefsås  z!WeakValueDictionary.itervaluerefsc csN|jr| ¡t|ƒ�.x&|j ¡D]}|ƒ}|dk r$|Vq$WWdQRXdS)N)r5rFr r8r])rr9r$rrrr]ôs zWeakValueDictionary.valuescCs<|jr| ¡x(|j ¡\}}|ƒ}|dk r||fSqWdS)N)r5rFr8Úpopitem)rr7r9rHrrrr_ýszWeakValueDictionary.popitemcGs`|jr| ¡y|j |¡ƒ}Wntk r8d}YnX|dkrX|rN|dSt|ƒ‚n|SdS)Nr)r5rFr8rCrG)rr7r@rHrrrrCs  zWeakValueDictionary.popcCs`y|j|ƒ}Wntk r(d}YnX|dkrX|jr@| ¡t||j|ƒ|j|<|S|SdS)N)r8rGr5rFrOr=)rr7rXrHrrrÚ setdefaults zWeakValueDictionary.setdefaultcOs°|s tdƒ‚|^}}t|ƒdkr0tdt|ƒƒ‚|r<|dnd}|jrN| ¡|j}|dk ršt|dƒsrtiƒ|ƒ}x&| ¡D]\}}t||j |ƒ||<q|Wt|ƒr¬|  |¡dS)NzEdescriptor 'update' of 'WeakValueDictionary' object needs an argumentr3z$expected at most 1 arguments, got %drrR) rr<r5rFr8Úhasattrr!rRrOr=r?)r@ÚkwargsrÚdictrEr7rHrrrr?"s    zWeakValueDictionary.updatecCs|jr| ¡t|j ¡ƒS)N)r5rFÚlistr8r])rrrrÚ valuerefs5s zWeakValueDictionary.valuerefs)N)N)r-r.r/rBrFrIrJrKrLrNrQrTÚ__copy__rWrYrRr\Ú__iter__r^r]r_rCr`r?rerrrrrZs,          cs(eZdZdZdd„Z‡fdd„Z‡ZS)rO)r7cCst |||¡}||_|S)N)rr"r7)r!Úobrr7rrrrr"PszKeyedRef.__new__cstƒ ||¡dS)N)r&rB)rrhrr7)r(rrrBUszKeyedRef.__init__)r-r.r/r0r"rBr2rr)r(rrODs rOc@s¼eZdZd*dd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z e Z dd„Z d+dd„Zdd„Zdd„Zdd„ZeZdd„Zd d!„Zd"d#„Zd$d%„Zd,d&d'„Zd-d(d)„ZdS).r NcCsFi|_t|ƒfdd„}||_g|_tƒ|_d|_|dk rB| |¡dS)NcSs.|ƒ}|dk r*|jr"|j |¡n|j|=dS)N)r4r5r6r8)rZr:rrrrr;fs z*WeakKeyDictionary.__init__..removeF)r8rr=r5r>r4Ú _dirty_lenr?)rrcr;rrrrBdszWeakKeyDictionary.__init__cCs>|j}|j}x,|r8y|| ¡=Wqtk r4YqXqWdS)N)r5r8rCrG)rrDrErrrrFusz"WeakKeyDictionary._commit_removalscs&|j‰‡fdd„|jDƒ|_d|_dS)Ncsg|]}|ˆkr|‘qSrr)Ú.0rZ)rErrú „sz5WeakKeyDictionary._scrub_removals..F)r8r5ri)rr)rErÚ_scrub_removals‚sz!WeakKeyDictionary._scrub_removalscCsd|_|jt|ƒ=dS)NT)rir8r)rr7rrrrJ‡szWeakKeyDictionary.__delitem__cCs|jt|ƒS)N)r8r)rr7rrrrI‹szWeakKeyDictionary.__getitem__cCs(|jr|jr| ¡t|jƒt|jƒS)N)rir5rlr<r8)rrrrrKŽs zWeakKeyDictionary.__len__cCsd|jjt|ƒfS)Nz <%s at %#x>)r(r-rM)rrrrrN•szWeakKeyDictionary.__repr__cCs||jt||jƒ<dS)N)r8rr=)rr7rPrrrrQ˜szWeakKeyDictionary.__setitem__c CsLtƒ}t|ƒ�4x,|j ¡D]\}}|ƒ}|dk r|||<qWWdQRX|S)N)r r r8rR)rrSr7rPrHrrrrT›s zWeakKeyDictionary.copyc Cs`ddlm}| ¡}t|ƒ�:x2|j ¡D]$\}}|ƒ}|dk r*|||ƒ||<q*WWdQRX|S)Nr)rU)rTrUr(r r8rR)rrVrUrSr7rPrHrrrrW¦s  zWeakKeyDictionary.__deepcopy__cCs|j t|ƒ|¡S)N)r8rYr)rr7rXrrrrY°szWeakKeyDictionary.getcCs,y t|ƒ}Wntk r dSX||jkS)NF)rrr8)rr7r9rrrrL³s  zWeakKeyDictionary.__contains__c csHt|ƒ�6x.|j ¡D] \}}|ƒ}|dk r||fVqWWdQRXdS)N)r r8rR)rr9rPr7rrrrRºs  zWeakKeyDictionary.itemsc cs<t|ƒ�*x"|jD]}|ƒ}|dk r|VqWWdQRXdS)N)r r8)rr9r$rrrr\Ás   zWeakKeyDictionary.keysc cs@t|ƒ�.x&|j ¡D]\}}|ƒdk r|VqWWdQRXdS)N)r r8rR)rr9rPrrrr]Ês  zWeakKeyDictionary.valuescCs t|jƒS)N)rdr8)rrrrÚkeyrefsÐs zWeakKeyDictionary.keyrefscCs4d|_x(|j ¡\}}|ƒ}|dk r||fSqWdS)NT)rir8r_)rr7rPrHrrrr_Üs zWeakKeyDictionary.popitemcGsd|_|jjt|ƒf|žŽS)NT)rir8rCr)rr7r@rrrrCäszWeakKeyDictionary.popcCs|j t||jƒ|¡S)N)r8r`rr=)rr7rXrrrr`èszWeakKeyDictionary.setdefaultcKs`|j}|dk rJt|dƒs$tiƒ|ƒ}x$| ¡D]\}}||t||jƒ<q.Wt|ƒr\| |¡dS)NrR)r8rar!rRrr=r<r?)rrcrbrEr7rPrrrr?ës  zWeakKeyDictionary.update)N)N)N)N)r-r.r/rBrFrlrJrIrKrNrQrTrfrWrYrLrRr\rgr]rmr_rCr`r?rrrrr Ys,      c@sžeZdZdZiZdZe ¡ZdZ dZ Gdd„dƒZ dd„Z ddd „Z d d „Zd d „Zedd„ƒZedd„ƒZejdd„ƒZdd„Zedd„ƒZedd„ƒZdS)rrFc@seZdZdZdS)zfinalize._Info)Úweakrefr%r@rbÚatexitÚindexN)r-r.r/r0rrrrÚ_InfosrqcOs t|ƒdkr|^}}}}nz|s(tdƒ‚nld|krDtdt|ƒdƒ‚| d¡}t|ƒdkrf|^}}}n.d|kr‚tdt|ƒdƒ‚| d¡}|^}}t|ƒ}|js¼ddl}| |j¡d t_|  ¡}t ||ƒ|_ ||_ ||_ |pâd|_d |_t|jƒ|_||j|<d t_dS) Nézs  zfinalize.detachcCs:|j |¡}|o| ¡}|dk r6||j|j|jp2ifSdS)N)rzrYrnr%r@rb)rr|r$rrrÚpeekFs  z finalize.peekcCs ||jkS)N)rz)rrrrÚaliveNszfinalize.alivecCs|j |¡}t|ƒo|jS)N)rzrYÚboolro)rr|rrrroSs zfinalize.atexitcCs|j |¡}|rt|ƒ|_dS)N)rzrYr‚ro)rrPr|rrrroYs cCs^|j |¡}|o| ¡}|dkr6dt|ƒjt|ƒfSdt|ƒjt|ƒt|ƒjt|ƒfSdS)Nz<%s object at %#x; dead>z!<%s object at %#x; for %r at %#x>)rzrYrnr!r-rM)rr|r$rrrrN_s   zfinalize.__repr__cCs2dd„|j ¡Dƒ}|jdd„d�dd„|DƒS)NcSsg|]\}}|jr||f‘qSr)ro)rjÚfÚirrrrkksz-finalize._select_for_exit..cSs |djS)Nr3)rp)ÚitemrrrÚlóz+finalize._select_for_exit..)r7cSsg|] \}}|‘qSrr)rjrƒr„rrrrkms)rzrRÚsort)r#ÚLrrrÚ_select_for_exithszfinalize._select_for_exitcCs¦d}zˆ|jrŠddl}| ¡r(d}| ¡d}x\|dks s (  6k